Skip to content

Add opencl other platforms #4

Add opencl other platforms

Add opencl other platforms #4

---
# Github Actions workflow to check CmdStanR
# yamllint disable rule:line-length
name: Unit tests
'on':
push:
branches:
- opencl-check
pull_request:
branches:
- master
jobs:
R-CMD-check:
if: "! contains(github.event.head_commit.message, '[ci skip]')"
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
strategy:
fail-fast: false
matrix:
config:
- {os: macOS-latest, r: 'release', rtools: ''}
- {os: ubuntu-latest, r: 'release', rtools: ''}
- {os: windows-latest, r: 'release', rtools: '44'}
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
NOT_CRAN: true
CMDSTANR_OPENCL_TESTS: true
steps:
- name: cmdstan env vars
run: |
echo "CMDSTAN_PATH=${HOME}/.cmdstan" >> $GITHUB_ENV
shell: bash
- uses: actions/checkout@v4
- uses: r-lib/actions/[email protected]
with:
r-version: ${{ matrix.config.r }}
rtools-version: ${{ matrix.config.rtools }}
- uses: r-lib/actions/[email protected]
- uses: r-lib/actions/[email protected]
with:
extra-packages: any::rcmdcheck, local::.
- name: Install POCL (MacOS)
if: matrix.config.os == 'macOS-latest'
run: brew install pocl
- name: Install POCL (Ubuntu)
if: matrix.config.os == 'ubuntu-latest'
run: sudo apt-get install -y pocl-opencl-icd ocl-icd-opencl-dev
- name: Install POCL (Windows)
if: matrix.config.os == 'windows-latest'
run: choco install pocl
- name: Install cmdstan
run: |
cmdstanr::check_cmdstan_toolchain(fix = TRUE)
cmdstanr::install_cmdstan(cores = 2)
shell: Rscript {0}
- name: CmdStan Config OpenCL
run: |
ocl_icd_lib <- ""
# MacOS
if (Sys.info()["sysname"] == "Darwin") {
ocl_icd_lib <- "-L/opt/homebrew/opt/opencl-icd-loader/lib"
}
cpp_opts <- list(
LDLIBS_OPENCL = paste0(ocl_icd_lib, " -lOpenCL")
)
cmdstanr::cmdstan_make_local(cpp_options = cpp_opts)
cmdstanr::rebuild_cmdstan(cores = 2)
shell: Rscript {0}
- name: Session info
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
shell: Rscript {0}
- uses: r-lib/actions/[email protected]
env:
_R_CHECK_CRAN_INCOMING_: false
- name: Show testthat output
if: always()
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash
- name: Upload check results
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
path: check