1515
1616jobs :
1717 build_linux :
18- name : Build and run linux
19- runs-on : ubuntu-latest
18+ name : Build and run
2019
2120 strategy :
2221 fail-fast : false
2322 matrix :
23+ os : ["ubuntu-latest", "windows-latest"]
2424 python : ["3.9", "3.10"]
2525 sycl : ["sycl","no-sycl"]
26+ install : ["pip", "setup.py"]
2627 include :
2728 - sycl : sycl
29+ os : ubuntu-latest
30+ cc : icx
31+ cxx : icpx
2832 environment : conda-linux-sycl.yml
33+ - sycl : sycl
34+ os : windows-latest
35+ cc : icx
36+ cxx : icx
37+ environment : conda-win-sycl.yml
2938 - sycl : no-sycl
3039 environment : conda.yml
3140
41+ runs-on : ${{matrix.os}}
42+
3243 steps :
3344 - name : Cancel Previous Runs
34455566 conda info
5667 conda list
5768
58- - name : Sycl
59- if : matrix.sycl == 'sycl'
60- shell : bash -el {0}
61- run : |
62- sycl-ls
63- echo "CC=icx" >> "$GITHUB_ENV"
64- echo "CXX=icpx" >> "$GITHUB_ENV"
65- echo "DPBENCH_SYCL=1" >> "$GITHUB_ENV"
66- echo "WORKLOADS=$WORKLOADS,sycl" >> "$GITHUB_ENV"
67-
68- - name : Build dpbench
69- shell : bash -el {0}
70- run : |
71- pip install \
72- --no-index --no-deps --no-build-isolation -e . -v
73-
74- - name : Run benchmarks
75- shell : bash -el {0}
76- run : |
77- export OCL_ICD_FILENAMES=libintelocl.so
78- export NUMBA_MLIR_GPU_RUNTIME=sycl
79- # Turn off numba-dpex autofall back
80- export NUMBA_DPEX_FALLBACK_ON_CPU=0
81- # Make sure numba-dpex is using native atomics in github CI
82- export NUMBA_DPEX_ACTIVATE_ATOMICS_FP_NATIVE=1
83-
84- dpbench -i ${WORKLOADS} run -r2 --no-print-results || exit 1
85-
86- - name : Generate report
87- shell : bash -el {0}
88- run : |
89- dpbench -i ${WORKLOADS} report || exit 1
90-
91- build-windows :
92- name : Build and run windows
93- runs-on : windows-latest
94-
95- strategy :
96- fail-fast : false
97- matrix :
98- python : ["3.9", "3.10"]
99- sycl : ["sycl","no-sycl"]
100- include :
101- - sycl : sycl
102- environment : conda-win-sycl.yml
103- - sycl : no-sycl
104- environment : conda.yml
105-
106- steps :
107- - name : Checkout dpbench
108- uses : actions/checkout@v3
109- with :
110- fetch-depth : 0
111-
112- - name : Setup conda
113- uses : conda-incubator/setup-miniconda@v2
114- with :
115- auto-update-conda : true
116- python-version : ${{ matrix.python }}
117- activate-environment : dpbench-dev
118- environment-file : environments/${{ matrix.environment }}
119-
120- - name : Conda info
121- shell : pwsh
122- run : |
123- conda info
124- conda list
125-
12669 - name : Configure Intel OpenCL CPU RT
70+ if : matrix.os == 'windows-latest'
12771 shell : pwsh
12872 run : |
12973 $script_path="$env:CONDA_PREFIX\Scripts\set-intel-ocl-icd-registry.ps1"
@@ -135,38 +79,57 @@ jobs:
13579 $cl_cfg="$env:CONDA_PREFIX\Library\lib\cl.cfg"
13680 Get-Content -Tail 5 -Path $cl_cfg
13781
138- - name : Sycl
139- if : matrix.sycl == 'sycl '
82+ - name : Configure Python
83+ if : matrix.os == 'windows-latest '
14084 shell : pwsh
85+ run : |
86+ # Set python encoding to support utf-8 symblos like ms.
87+ echo "PYTHONIOENCODING=utf-8" >> $env:GITHUB_ENV
88+
89+ - name : Patch IntelLLVM cmake
90+ if : matrix.os == 'windows-latest' && matrix.sycl == 'sycl'
91+ shell : pwsh
92+ run : |
93+ $env:PATCHED_CMAKE_VERSION="3.26"
94+ $env:PLATFORM_DIR="${env:CONDA_PREFIX}\Library\share\cmake-${env:PATCHED_CMAKE_VERSION}\Modules\Platform"
95+ $env:FN="Windows-IntelLLVM.cmake"
96+ Copy-Item ".github\workflows\Windows-IntelLLVM_${env:PATCHED_CMAKE_VERSION}.cmake" "${env:PLATFORM_DIR}\${env:FN}"
97+
98+ - name : Configure Sycl
99+ if : matrix.sycl == 'sycl'
100+ shell : bash -el {0}
141101 run : |
142102 sycl-ls
143- echo "CC=icx " >> $env: GITHUB_ENV
144- echo "CXX=icx " >> $env: GITHUB_ENV
145- echo "DPBENCH_SYCL=1" >> $env: GITHUB_ENV
146- echo "WORKLOADS=$env: WORKLOADS,sycl" >> $env: GITHUB_ENV
103+ echo "CC=${{matrix.cc}} " >> "$ GITHUB_ENV"
104+ echo "CXX=${{matrix.cxx}} " >> "$ GITHUB_ENV"
105+ echo "DPBENCH_SYCL=1" >> "$ GITHUB_ENV"
106+ echo "WORKLOADS=$WORKLOADS,sycl" >> "$ GITHUB_ENV"
147107
148108 - name : Build dpbench
149- shell : pwsh
109+ if : matrix.install == 'pip'
110+ shell : bash -el {0}
111+ run : |
112+ pip install \
113+ --no-index --no-deps --no-build-isolation -e . -v
114+
115+ - name : Build dpbench
116+ if : matrix.install == 'setup.py'
117+ shell : bash -el {0}
150118 run : |
151119 python setup.py develop
152- # pip install `
153- # --no-index --no-deps --no-build-isolation -e . -v
154120
155121 - name : Run benchmarks
156- shell : pwsh
122+ shell : bash -el {0}
157123 run : |
158- $env: NUMBA_MLIR_GPU_RUNTIME=" sycl"
124+ export NUMBA_MLIR_GPU_RUNTIME=sycl
159125 # Turn off numba-dpex autofall back
160- $env: NUMBA_DPEX_FALLBACK_ON_CPU=0
126+ export NUMBA_DPEX_FALLBACK_ON_CPU=0
161127 # Make sure numba-dpex is using native atomics in github CI
162- $env:NUMBA_DPEX_ACTIVATE_ATOMICS_FP_NATIVE=1
163-
164- $env:PYTHONIOENCODING="utf-8"
165- # $env:PYTHONLEGACYWINDOWSSTDIO=utf-8
128+ export NUMBA_DPEX_ACTIVATE_ATOMICS_FP_NATIVE=1
166129
167- dpbench -i $env: WORKLOADS run -r2 --no-print-results
130+ dpbench -i ${ WORKLOADS} run -r2 --no-print-results || exit 1
168131
169132 - name : Generate report
170- shell : pwsh
133+ shell : bash -el {0}
171134 run : |
172- dpbench -i $env: WORKLOADS report
135+ dpbench -i ${ WORKLOADS} report || exit 1
0 commit comments