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
name: oneDAL DPCPP nightly sklearnex | |
on: | |
workflow_dispatch: | |
env: | |
PYTHON_VERSION: 3.9 | |
SKLEARN_VERSION: 1.1 | |
TBB_VERSION: 2021.13 | |
DPCPP_VERSION: 2024.2 | |
DPCTL_VERSION: 0.16.0 | |
DPNP_VERSION: 0.15.0 | |
jobs: | |
sklearn_lnx: | |
name: lnx_Python3.9_Sklearn1.1 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Get run ID of "build_oneDAL" workflow | |
id: get-run-id | |
run: | | |
OTHER_REPO="${{ github.repository }}" | |
WF_NAME="oneDAL nightly build" | |
RUN_ID=`gh run --repo ${OTHER_REPO} list --workflow "${WF_NAME}" --json databaseId --status completed --jq .[0].databaseId` | |
echo "Detected latest run id of ${RUN_ID} for workflow ${WF_NAME}" | |
echo "run-id=${RUN_ID}" >> "$GITHUB_OUTPUT" | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Download artifact from "build_oneDAL" workflow | |
uses: actions/download-artifact@v4 | |
with: | |
name: __release_lnx | |
github-token: ${{ github.token }} | |
repository: ${{ github.repository }} | |
run-id: ${{ steps.get-run-id.outputs.run-id }} | |
path: ./__release_lnx | |
- name: apt-get | |
run: sudo apt-get update && sudo apt-get install -y clang-format | |
- name: dpcpp installation | |
run: bash .ci/scripts/install_dpcpp.sh | |
- name: describe system | |
run: bash .ci/scripts/describe_system.sh | |
- name: Install develop requirements | |
run: | | |
python -m venv env2 | |
source ./env2/bin/activate | |
pip install -r dependencies-dev | |
pip list | |
echo "DPCPPROOT=/opt/intel/oneapi/compiler/latest" >> "$GITHUB_ENV" | |
echo "NO_DIST=1" >> "$GITHUB_ENV" | |
- name: Build daal4py/sklearnex | |
run: | | |
source ./env2/bin/activate | |
source /opt/intel/oneapi/compiler/latest/env/vars.sh # prepare icpx | |
source /opt/intel/oneapi/tbb/latest/env/vars.sh # prepare tbb | |
source ./__release_lnx/daal/latest/env/vars.sh # prepare oneDAL | |
python setup.py install --single-version-externally-managed --record=record.txt | |
python setup_sklearnex.py install --single-version-externally-managed --record=record_sklearnex.txt | |
- name: Install testing requirements | |
run: | | |
source ./env2/bin/activate | |
source /opt/intel/oneapi/compiler/latest/env/vars.sh # prepare icpx | |
source /opt/intel/oneapi/tbb/latest/env/vars.sh # prepare tbb | |
source ./__release_lnx/daal/latest/env/vars.sh # prepare oneDAL | |
bash .ci/scripts/setup_sklearn.sh ${{ env.SKLEARN_VERSION }} | |
pip install --upgrade -r requirements-test.txt | |
pip install $(python .ci/scripts/get_compatible_scipy_version.py) pyyaml | |
if [ $(echo ${{ env.PYTHON_VERSION }} | grep '3.9\|3.11') ]; then pip install dpctl==${{ env.DPCTL_VERSION }} dpnp==${{ env.DPNP_VERSION }}; fi | |
pip list | |
- name: Sklearnex testing | |
working-directory: ./.ci | |
run: | | |
source ../env2/bin/activate | |
source /opt/intel/oneapi/compiler/latest/env/vars.sh # prepare icpx | |
source /opt/intel/oneapi/tbb/latest/env/vars.sh # prepare tbb | |
source ../__release_lnx/daal/latest/env/vars.sh # prepare oneDAL | |
../conda-recipe/run_test.sh | |
- name: Sklearn testing | |
run: | | |
source env2/bin/activate | |
source /opt/intel/oneapi/compiler/latest/env/vars.sh # prepare icpx | |
source /opt/intel/oneapi/tbb/latest/env/vars.sh # prepare tbb | |
source __release_lnx/daal/latest/env/vars.sh # prepare oneDAL | |
bash .ci/scripts/run_sklearn_tests.sh cpu | |
- name: Sklearn testing [preview] | |
run: | | |
source env2/bin/activate | |
source /opt/intel/oneapi/compiler/latest/env/vars.sh # prepare icpx | |
source /opt/intel/oneapi/tbb/latest/env/vars.sh # prepare tbb | |
source __release_lnx/daal/latest/env/vars.sh # prepare oneDAL | |
export SKLEARNEX_PREVIEW='1' | |
bash .ci/scripts/run_sklearn_tests.sh cpu | |
sklearn_win: | |
name: win_Python3.9_Sklearn1.1 | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Get run ID of "build_oneDAL" workflow | |
id: get-run-id | |
shell: bash | |
run: | | |
OTHER_REPO="${{ github.repository }}" | |
WF_NAME="oneDAL nightly build" | |
RUN_ID=`gh run --repo ${OTHER_REPO} list --workflow "${WF_NAME}" --json databaseId --status completed --jq .[0].databaseId` | |
echo "Detected latest run id of ${RUN_ID} for workflow ${WF_NAME}" | |
echo "run-id=${RUN_ID}" >> "$GITHUB_OUTPUT" | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Download artifact from "build_oneDAL" workflow | |
uses: actions/download-artifact@v4 | |
with: | |
name: __release_win | |
github-token: ${{ github.token }} | |
repository: ${{ github.repository }} | |
run-id: ${{ steps.get-run-id.outputs.run-id }} | |
path: .\__release_win | |
- name: Download compiler | |
uses: actions/download-artifact@v4 | |
with: | |
name: icx_compiler | |
github-token: ${{ github.token }} | |
repository: ${{ github.repository }} | |
run-id: ${{ steps.get-run-id.outputs.run-id }} | |
path: . | |
- name: Unzip compiler | |
run: | | |
$env:PATH="C:\msys64\usr\bin;$env:PATH" | |
echo $env:PATH=C:\msys64\usr\bin;$env:PATH >> $env.GITHUB_ENV | |
pip install cpufeature | |
pacman -S -y --noconfirm zip dos2unix tree wget gcc | |
echo "Download intel DPC++ compiler" | |
wget -q -O dpcpp_installer.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7991e201-ca0f-4689-bdb6-1ed73a8246fd/w_dpcpp-cpp-compiler_p_2024.2.0.491_offline.exe | |
echo "Unpacking DPC++ installer" | |
Start-Process ".\dpcpp_installer.exe" -ArgumentList "--s --x --f oneAPI" -Wait | |
echo "Installing DPC++ compiler" | |
Start-Process ".\oneAPI\bootstrapper.exe" -ArgumentList "-s --eula=accept --install-dir=dpcpp" -Wait | |
# This can take 20 minutes... | |
echo "DPC++ install complete" | |
# tar -xvzf icx.zip | |
- name: Install dependencies | |
shell: cmd | |
run: | | |
python -m venv env2 | |
call .\env2\Scripts\activate.bat | |
pip install --upgrade setuptools | |
pip install cpufeature clang-format pyyaml | |
pip install -r dependencies-dev | |
- name: System info | |
shell: cmd | |
run: | | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\bin\sycl-ls.exe | |
dir . | |
set PATH=C:\msys64\usr\bin;%PATH% | |
bash .ci/scripts/describe_system.sh | |
- name: Build daal4py/sklearnex | |
shell: cmd | |
run: | | |
call .\env2\Scripts\activate.bat | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall" x64 | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat # prepare icx | |
call .\dpcpp\tbb\${{ env.TBB_VERSION }}\env\vars.bat # prepare tbb | |
call .\__release_win\daal\latest\env\vars.bat # prepare oneDAL | |
set PREFIX=. | |
set NO_DIST=1 | |
set PYTHON=python | |
call .\conda-recipe\bld.bat | |
IF %ERRORLEVEL% neq 0 EXIT /b %ERRORLEVEL% | |
set CONDA_PREFIX=%DALROOT% | |
python setup_sklearnex.py install --single-version-externally-managed --record=record_sklearnex.txt | |
- name: Install testing requirements | |
shell: cmd | |
run: | | |
set PATH=C:\msys64\usr\bin;%PATH% | |
call .\env2\Scripts\activate.bat | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall" x64 | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat # prepare icx | |
call .\dpcpp\tbb\${{ env.TBB_VERSION }}\env\vars.bat # prepare tbb | |
call .\__release_win\daal\latest\env\vars.bat # prepare oneDAL | |
bash .ci/scripts/setup_sklearn.sh ${{ env.SKLEARN_VERSION }} | |
pip install --upgrade -r requirements-test.txt | |
for /f "delims=" %%c in ('python .ci\scripts\get_compatible_scipy_version.py') do set SCIPY_VERSION=%%c | |
pip install %SCIPY_VERSION% | |
set DPCTL_SUPPORTED=3.9 3.11 | |
FOR %%i IN (%DPCTL_SUPPORTED%) DO if ${{ env.PYTHON_VERSION }}==%%i pip install dpctl==${{ env.DPCTL_VERSION }} dpnp==${{ env.DPNP_VERSION }} | |
python -c "import os, os.path, site; path_to_env = site.getsitepackages()[0]; path_to_libs = os.path.join(path_to_env, 'Library', 'bin'); temp=os.add_dll_directory(path_to_libs) if os.path.exists(path_to_libs) else None; import dpctl; print(dpctl.get_devices())" | |
pip list | |
- name: DPCTL test | |
shell: cmd | |
run: | | |
set PATH=C:\msys64\usr\bin;%PATH% | |
call .\env2\Scripts\activate.bat | |
python -c "import os, site; path_to_env = site.getsitepackages()[0]; path_to_libs = os.path.join(path_to_env, 'Library', 'bin'); os.add_dll_directory(path_to_libs); import dpctl; print(dpctl.get_devices())" | |
pip list | |
- name: Sklearnex testing | |
shell: cmd | |
run: | | |
call .\env2\Scripts\activate.bat | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall" x64 | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat # prepare icx | |
call .\dpcpp\tbb\${{ env.TBB_VERSION }}\env\vars.bat # prepare tbb | |
call .\__release_win\daal\latest\env\vars.bat # prepare oneDAL | |
set PYTHON=python | |
cd .. | |
call scikit-learn-intelex\conda-recipe\run_test.bat scikit-learn-intelex | |
- name: Sklearn testing | |
shell: cmd | |
run: | | |
call .\env2\Scripts\activate.bat | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall" x64 | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat # prepare icx | |
call .\dpcpp\tbb\${{ env.TBB_VERSION }}\env\vars.bat # prepare tbb | |
call .\__release_win\daal\latest\env\vars.bat # prepare oneDAL | |
bash .ci/scripts/run_sklearn_tests.sh | |
- name: Sklearn testing [preview] | |
shell: cmd | |
run: | | |
call .\env2\Scripts\activate.bat | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall" x64 | |
call .\dpcpp\compiler\${{ env.DPCPP_VERSION }}\env\vars.bat # prepare icx | |
call .\dpcpp\tbb\${{ env.TBB_VERSION }}\env\vars.bat # prepare tbb | |
call .\__release_win\daal\latest\env\vars.bat # prepare oneDAL | |
set SKLEARNEX_PREVIEW=YES | |
bash .ci/scripts/run_sklearn_tests.sh | |
dpctl: | |
name: dpctl_test | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install intel opencl_rt | |
run: | | |
echo "Download intel opencl runtime" | |
wget -q -O opencl_installer.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d9883ab0-0e26-47fd-9612-950b95460d72/w_opencl_runtime_p_2024.2.0.980.exe | |
echo "Unpacking opencl runtime installer" | |
Start-Process ".\opencl_installer.exe" -ArgumentList "--s --x --f ocl" -Wait | |
echo "Installing opencl runtime" | |
Start-Process "msiexec.exe" -ArgumentList "/i ocl\w_opencl_runtime_p_2024.2.0.980.msi /qn" --Wait | |
echo "opencl installed" | |
dir "C:\Program Files (x86)\Common Files\Intel\Shared Libraries\" | |
- name: Install dpctl pip venv | |
shell: cmd | |
run: | | |
set PATH=C:\msys64\usr\bin;%PATH% | |
python -m venv env2 | |
call .\env2\Scripts\activate.bat | |
set DPCTL_SUPPORTED=3.9 3.11 | |
set CONDA_PREFIX=.\env2 | |
FOR %%i IN (%DPCTL_SUPPORTED%) DO if ${{ env.PYTHON_VERSION }}==%%i pip install opencl_rt dpctl==${{ env.DPCTL_VERSION }} dpnp==${{ env.DPNP_VERSION }} | |
call Powershell.exe -executionpolicy bypass -File .\env2\Scripts\set-intel-ocl-icd-registry.ps1 | |
python -c "import os, os.path, site; path_to_env = site.getsitepackages()[0]; path_to_libs = os.path.join(path_to_env, 'Library', 'bin'); temp=os.add_dll_directory(path_to_libs) if os.path.exists(path_to_libs) else None; import dpctl; print(dpctl.get_devices())" | |
python -c "import dpctl; print(dpctl.get_devices())" | |
pip list | |
- name: Install dpctl conda | |
shell: cmd | |
run: | | |
set PATH=C:\msys64\usr\bin;%PATH% | |
call C:\Miniconda\condabin\conda.bat create --name dpctl_env --channel https://software.repos.intel.com/python/conda/ dpctl | |
dir . | |
call C:\Miniconda\condabin\conda.bat activate dpctl_env | |
python -c "import os, os.path, site; path_to_env = site.getsitepackages()[0]; path_to_libs = os.path.join(path_to_env, 'Library', 'bin'); temp=os.add_dll_directory(path_to_libs) if os.path.exists(path_to_libs) else None; import dpctl; print(dpctl.get_devices())" | |
python -c "import dpctl; print(dpctl.get_devices())" |