Add versioneer #1206
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: 2022 - 2023 Intel Corporation | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
name: build and run | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
env: | |
# sycl is not included. Add it manually if you need | |
# WORKLOADS: python,numpy,dpnp,numba_n,numba_np,numba_npr,numba_dpex_k,numba_dpex_n,numba_dpex_p,numba_mlir_k,numba_mlir_n,numba_mlir_p | |
WORKLOADS: python,numpy,dpnp,numba_n,numba_np,numba_npr,numba_dpex_k,numba_dpex_n,numba_dpex_p | |
jobs: | |
build: | |
name: Build and run | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest", "windows-latest"] | |
python: ["3.9", "3.10", "3.11"] | |
sycl: ["sycl","no-sycl"] | |
install: ["pip", "setup.py"] | |
include: | |
- sycl: sycl | |
os: ubuntu-latest | |
cc: icx | |
cxx: icpx | |
environment: conda-linux-sycl.yml | |
- sycl: sycl | |
os: windows-latest | |
cc: icx | |
cxx: icx | |
environment: conda-win-sycl.yml | |
- sycl: no-sycl | |
environment: conda.yml | |
runs-on: ${{matrix.os}} | |
defaults: | |
run: | |
shell: ${{ matrix.os == 'windows-latest' && 'cmd /C CALL {0}' || 'bash -el {0}' }} | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout dpbench | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# intel:numpy for python 3.11 is not upstreamed yet | |
- name: Patch numpy dependency for Python 3.11 | |
if: matrix.python == '3.11' | |
shell: bash -l {0} | |
run: | | |
find ./environments -type f | xargs sed -i 's/intel::numpy/numpy/' | |
find ./environments -type f | xargs sed -i '/numba-mlir/d' | |
- name: Setup miniconda | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
miniforge-variant: Mambaforge | |
miniforge-version: latest | |
activate-environment: "build" | |
channel-priority: "disabled" | |
environment-file: environments/${{ matrix.environment }} | |
run-post: false | |
- name: Conda info | |
run: | | |
conda info | |
conda list | |
- name: Configure Python | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
# Set python encoding to support utf-8 symblos like ms. | |
echo "PYTHONIOENCODING=utf-8" >> $env:GITHUB_ENV | |
- name: Patch IntelLLVM cmake | |
if: runner.os == 'Windows' && matrix.sycl == 'sycl' | |
shell: pwsh | |
run: | | |
$env:PATCHED_CMAKE_VERSION="3.26" | |
$env:PLATFORM_DIR="${env:CONDA_PREFIX}\Library\share\cmake-${env:PATCHED_CMAKE_VERSION}\Modules\Platform" | |
$env:FN="Windows-IntelLLVM.cmake" | |
Copy-Item ".github\workflows\Windows-IntelLLVM_${env:PATCHED_CMAKE_VERSION}.cmake" "${env:PLATFORM_DIR}\${env:FN}" | |
- name: Remove vs env | |
if: runner.os == 'Windows' && matrix.sycl == 'sycl' | |
run: | | |
conda remove --force vs2017_win-64 | |
- name: Configure MSBuild | |
if: runner.os == 'Windows' && matrix.sycl == 'sycl' | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
toolset: 14.35 | |
- name: Configure Sycl | |
if: matrix.sycl == 'sycl' | |
shell: bash -el {0} | |
run: | | |
sycl-ls | |
echo "CC=${{matrix.cc}}" >> "$GITHUB_ENV" | |
echo "CXX=${{matrix.cxx}}" >> "$GITHUB_ENV" | |
echo "DPBENCH_SYCL=1" >> "$GITHUB_ENV" | |
echo "WORKLOADS=$WORKLOADS,sycl" >> "$GITHUB_ENV" | |
- name: Configure compiler | |
run: | | |
echo "CMAKE_GENERATOR=Ninja" >> "$GITHUB_ENV" | |
- name: Configure OneAPI | |
run: | | |
echo "ONEAPI_DEVICE_SELECTOR=opencl:cpu" >> "$GITHUB_ENV" | |
- name: List activate | |
run: | | |
ls -al $CONDA_PREFIX/etc/conda/activate.d | |
- name: Compiler config | |
if: runner.os == 'Linux' && matrix.sycl == 'sycl' | |
run: | | |
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CONDA_PREFIX}/lib" >> "$GITHUB_ENV" | |
# echo "--gcc-toolchain=${CONDA_PREFIX} --sysroot=${CONDA_PREFIX}/${HOST}/sysroot -target ${HOST}" > icpx_for_conda.cfg | |
echo "--gcc-toolchain=${CONDA_PREFIX} --sysroot=${CONDA_PREFIX}/${HOST}/sysroot -target ${HOST}" > $ICXCFG | |
# echo "ICPXCFG=$(pwd)/icpx_for_conda.cfg" >> "$GITHUB_ENV" | |
# echo "ICXCFG=$(pwd)/icpx_for_conda.cfg" >> "$GITHUB_ENV" | |
- name: Check icx | |
if: runner.os == 'Linux' && matrix.sycl == 'sycl' | |
run: | | |
cat $ICXCFG | |
icx --version | |
- name: Populate conda environment paths | |
shell: pwsh | |
if: runner.os == 'Windows' | |
run: | | |
echo "LIB=$env:CONDA_PREFIX\Library\lib;$env:CONDA_PREFIX\compiler\lib;$env:LIB" >> $env:GITHUB_ENV | |
echo "INCLUDE=$env:CONDA_PREFIX\include;$env:INCLUDE" >> $env:GITHUB_ENV | |
# echo "LIB=$CONDA_PREFIX/Library/lib;$CONDA_PREFIX/compiler/lib;$LIB" >> "$GITHUB_ENV" | |
# echo "INCLUDE=$CONDA_PREFIX/include;$INCLUDE" >> "$GITHUB_ENV" | |
- name: Build dpbench | |
if: matrix.install == 'pip' | |
run: pip install --no-index --no-deps --no-build-isolation -e . -v | |
- name: Build dpbench | |
if: matrix.install == 'setup.py' | |
run: python setup.py develop | |
- name: Configure dpbench | |
shell: bash -el {0} | |
run: | | |
export NUMBA_MLIR_GPU_RUNTIME=sycl | |
# Turn off numba-dpex autofall back | |
export NUMBA_DPEX_FALLBACK_ON_CPU=0 | |
- name: Setup OpenCL CPU device | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
$script_path="$env:CONDA_PREFIX\Scripts\set-intel-ocl-icd-registry.ps1" | |
&$script_path | |
echo "OCL_ICD_FILENAMES=$env:CONDA_PREFIX\Library\lib\intelocl64.dll" >> $env:GITHUB_ENV | |
# echo "LIB=$env:CONDA_PREFIX\Library\lib;$env:CONDA_PREFIX\compiler\lib;$env:LIB" >> $env:GITHUB_ENV | |
# echo "INCLUDE=$env:CONDA_PREFIX\include;$env:INCLUDE" >> $env:GITHUB_ENV | |
# # Check the variable assisting OpenCL CPU driver to find TBB DLLs which are not located where it expects them by default | |
# $cl_cfg="$env:CONDA_PREFIX\Library\lib\cl.cfg" | |
# Get-Content -Tail 5 -Path $cl_cfg | |
- name: Show auto acitvates | |
shell: bash -el {0} | |
run: ls -al $CONDA_PREFIX/etc/conda/activate.d | |
- name: Show OCL_ICD bash | |
shell: bash -el {0} | |
run: echo $OCL_ICD_FILENAMES | |
- name: Show OCL_ICD | |
run: echo %OCL_ICD_FILENAMES% | |
# - name: List Sycl | |
# run: sycl-ls | |
# - name: List Sycl Bash | |
# shell: bash -el {0} | |
# run: sycl-ls | |
- name: Run benchmarks | |
run: dpbench -i ${{env.WORKLOADS}} run -r2 --no-print-results || exit 1 | |
- name: Generate report | |
run: dpbench -i ${{env.WORKLOADS}} report || exit 1 |