-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
33 changed files
with
964 additions
and
151 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,4 +8,5 @@ exclude = | |
__pycache__ | ||
./dist | ||
./setup.py | ||
./dpbench/_version.py | ||
max-complexity = 10 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# SPDX-FileCopyrightText: 2022 - 2023 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
dpbench/_version.py export-subst |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,17 +11,18 @@ on: | |
|
||
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,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_linux: | ||
build: | ||
name: Build and run | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: ["ubuntu-latest", "windows-latest"] | ||
python: ["3.9", "3.10"] | ||
python: ["3.9", "3.10", "3.11"] | ||
sycl: ["sycl","no-sycl"] | ||
install: ["pip", "setup.py"] | ||
include: | ||
|
@@ -40,6 +41,10 @@ jobs: | |
|
||
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] | ||
|
@@ -51,6 +56,14 @@ jobs: | |
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: | ||
|
@@ -63,25 +76,10 @@ jobs: | |
run-post: false | ||
|
||
- name: Conda info | ||
shell: bash -el {0} | ||
run: | | ||
conda info | ||
conda list | ||
- 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: Configure Python | ||
if: runner.os == 'Windows' | ||
shell: pwsh | ||
|
@@ -98,6 +96,12 @@ jobs: | |
$env:FN="Windows-IntelLLVM.cmake" | ||
Copy-Item ".github\workflows\Windows-IntelLLVM_${env:PATCHED_CMAKE_VERSION}.cmake" "${env:PLATFORM_DIR}\${env:FN}" | ||
# - name: Configure MSBuild | ||
# if: runner.os == 'Windows' | ||
# uses: ilammy/msvc-dev-cmd@v1 | ||
# with: | ||
# toolset: 14.35 | ||
|
||
- name: Configure Sycl | ||
if: matrix.sycl == 'sycl' | ||
shell: bash -el {0} | ||
|
@@ -108,31 +112,71 @@ jobs: | |
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: 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' | ||
shell: bash -el {0} | ||
run: | | ||
pip install \ | ||
--no-index --no-deps --no-build-isolation -e . -v | ||
run: pip install --no-index --no-deps --no-build-isolation -e . -v | ||
|
||
- name: Build dpbench | ||
if: matrix.install == 'setup.py' | ||
shell: bash -el {0} | ||
run: | | ||
python setup.py develop | ||
run: python setup.py develop | ||
|
||
- name: Run benchmarks | ||
- 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 | ||
# Make sure numba-dpex is using native atomics in github CI | ||
export NUMBA_DPEX_ACTIVATE_ATOMICS_FP_NATIVE=1 | ||
dpbench -i ${WORKLOADS} run -r2 --no-print-results || exit 1 | ||
- 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: Generate report | ||
- name: Show OCL_ICD bash | ||
shell: bash -el {0} | ||
run: | | ||
dpbench -i ${WORKLOADS} report || exit 1 | ||
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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,7 @@ env: | |
PACKAGE_NAME: dpbench | ||
MODULE_NAME: dpbench | ||
# There is a separate action that removes defaults. | ||
CHANNELS: 'dppy/label/dev,conda-forge,intel' | ||
CHANNELS: 'dppy/label/dev,conda-forge,intel,nodefaults' | ||
VER_JSON_NAME: 'version.json' | ||
VER_SCRIPT1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); " | ||
VER_SCRIPT2: "d = j['dpbench'][0]; print('='.join((d[s] for s in ('version', 'build'))))" | ||
|
@@ -26,14 +26,14 @@ jobs: | |
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['3.9', '3.10'] | ||
python: ['3.9', '3.10', '3.11'] | ||
os: [ubuntu-latest, windows-latest] | ||
|
||
runs-on: ${{ matrix.os }} | ||
|
||
defaults: | ||
run: | ||
shell: bash -l {0} | ||
shell: ${{ matrix.os == 'windows-latest' && 'cmd /C CALL {0}' || 'bash -l {0}' }} | ||
|
||
continue-on-error: false | ||
|
||
|
@@ -63,12 +63,19 @@ jobs: | |
run: conda config --remove channels defaults | ||
|
||
- name: Store conda paths as envs | ||
shell: bash -l {0} | ||
run: echo "CONDA_BLD=$CONDA_PREFIX/conda-bld/${{ runner.os == 'Linux' && 'linux' || 'win' }}-64/" | tr "\\" '/' >> $GITHUB_ENV | ||
|
||
# boa is an extention to conda so we can use mamba resolver in conda build | ||
- name: Install conda-build | ||
run: mamba install boa | ||
|
||
- name: Configure MSBuild | ||
if: runner.os == 'Windows' | ||
uses: microsoft/[email protected] | ||
with: | ||
vs-version: '14.35' | ||
|
||
- name: Build conda package | ||
run: conda mambabuild --no-test --python ${{ matrix.python }} conda-recipe | ||
|
||
|
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,38 @@ | ||
#!/bin/bash | ||
#!/bin/bash -x | ||
|
||
# SPDX-FileCopyrightText: 2022 - 2023 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Intel LLVM must cooperate with compiler and sysroot from conda | ||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${BUILD_PREFIX}/lib" | ||
|
||
echo "--gcc-toolchain=${BUILD_PREFIX} --sysroot=${BUILD_PREFIX}/${HOST}/sysroot -target ${HOST}" > icpx_for_conda.cfg | ||
export ICPXCFG="$(pwd)/icpx_for_conda.cfg" | ||
export ICXCFG="$(pwd)/icpx_for_conda.cfg" | ||
|
||
export CMAKE_GENERATOR="Ninja" | ||
export DPBENCH_SYCL=1 | ||
export CMAKE_GENERATOR="Ninja" | ||
export CC=icx | ||
export CXX=icpx | ||
|
||
if [ -e "_skbuild" ]; then | ||
${PYTHON} setup.py clean --all | ||
fi | ||
|
||
SKBUILD_ARGS="-- -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON" | ||
# declare -a ARGS=(install --single-version-externally-managed --record=record.txt) | ||
|
||
# Build wheel package | ||
if [ "$CONDA_PY" == "36" ]; then | ||
WHEELS_BUILD_ARGS="-p manylinux1_x86_64" | ||
else | ||
WHEELS_BUILD_ARGS="-p manylinux2014_x86_64" | ||
fi | ||
if [ -n "${WHEELS_OUTPUT_FOLDER}" ]; then | ||
$PYTHON setup.py install bdist_wheel ${WHEELS_BUILD_ARGS} ${SKBUILD_ARGS} | ||
cp dist/dpnp*.whl ${WHEELS_OUTPUT_FOLDER} | ||
else | ||
$PYTHON setup.py install ${SKBUILD_ARGS} | ||
fi | ||
# if [[ -v WHEELS_OUTPUT_FOLDER ]]; then | ||
# ARGS+=(bdist_wheel -p manylinux2014_x86_64) | ||
# fi | ||
|
||
# ARGS+=(-G Ninja -- -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON) | ||
|
||
# echo "${ARGS[*]}" | ||
|
||
# $PYTHON setup.py ${ARGS[@]} | ||
$PYTHON -m pip install --no-index --no-deps --no-build-isolation . -v | ||
|
||
# if [[ -v WHEELS_OUTPUT_FOLDER ]]; then | ||
# cp dist/numba_dpex*.whl "${WHEELS_OUTPUT_FOLDER[@]}" | ||
# fi |
Oops, something went wrong.