DEBUG: revert cleaning cache changes on Windows #51
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: Test with pip on Windows | |
on: | |
workflow_dispatch: | |
# run workflow on changes to the driver, which handles the libraries logic | |
pull_request: | |
branches: | |
- main | |
paths: | |
- third_party/intel/backend/driver.py | |
push: | |
branches: | |
- main | |
paths: | |
- third_party/intel/backend/driver.py | |
schedule: | |
- cron: "3 5 * * *" | |
permissions: read-all | |
env: | |
NEW_WORKSPACE: C:\gh${{ github.run_id }} | |
ZE_PATH: C:\level_zero | |
PYTEST_MAX_PROCESSES: 8 | |
TRITON_TEST_CMD: bash -x scripts/test-triton.sh --skip-pytorch-install --skip-pip-install --skip-list scripts/skiplist/a770 --reports-dir reports --ignore-errors | |
jobs: | |
build: | |
name: Build and test | |
runs-on: win-a770 | |
steps: | |
- name: Enable long paths | |
run: | | |
git config --system core.longPaths true | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
# Copy workspace to a temporary location with a shorter name. | |
- name: Copy workspace | |
run: | | |
Copy-Item -Path ${{ github.workspace }} -Destination ${{ env.NEW_WORKSPACE }} -Recurse | |
- name: Create venv | |
run: | |
python -m venv .venv | |
- name: Install PyTorch (wheels) | |
run: | | |
.venv\Scripts\activate.ps1 | |
# The latest wheel does not work, see https://github.com/intel/intel-xpu-backend-for-triton/issues/3177#issuecomment-2599817729 | |
# Use the latest good one | |
pip install torch==2.7.0.dev20250110+xpu --index-url https://download.pytorch.org/whl/nightly/xpu | |
- name: PyTorch version | |
run: | | |
.venv\Scripts\activate.ps1 | |
python -c 'import torch;print(torch.__version__)' | |
- name: Clean up Triton cache | |
shell: bash | |
run: | | |
rm -rf ~/.triton/cache | |
# We need ninja >= 1.12.0 to support long names on Windows. At the moment there is no required | |
# version in pypi, so instead of installing ninja with pip we use a preinstalled 1.12.1 on the | |
# runner. | |
- name: Setup Triton | |
run: | | |
.venv\Scripts\activate.ps1 | |
Invoke-BatchFile "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 | |
cd ${{ env.NEW_WORKSPACE }} | |
cd python | |
pip install -U wheel pybind11 cython cmake 'setuptools>=65.6.1' | |
python setup.py -v bdist_wheel | |
pip install (Get-Item ${{ env.NEW_WORKSPACE }}\python\dist\*.whl) | |
- name: Triton version | |
run: | | |
.venv\Scripts\activate.ps1 | |
python -c 'import triton; print(triton.__version__)' | |
- name: Install test dependencies | |
run: | | |
.venv\Scripts\activate.ps1 | |
pip install -r scripts\requirements-test.txt | |
pip uninstall pytest_forked -y | |
- name: Show installed pip packages | |
run: | | |
.venv\Scripts\activate.ps1 | |
pip list -v | |
- name: Run core tests | |
run: | | |
.venv\Scripts\activate.ps1 | |
Invoke-BatchFile "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 | |
${{ env.TRITON_TEST_CMD }} --core | |
- name: Run interpreter tests | |
run: | | |
.venv\Scripts\activate.ps1 | |
Invoke-BatchFile "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 | |
${{ env.TRITON_TEST_CMD }} --interpreter | |
- name: Pass rate | |
run: | | |
.venv\Scripts\activate.ps1 | |
pip install defusedxml | |
bash -c "\ | |
source ./scripts/capture-hw-details.sh; \ | |
python scripts/pass_rate.py --reports reports ${{ env.SKIPLIST }}; \ | |
python scripts/pass_rate.py --reports reports --json ${{ env.SKIPLIST }} > pass_rate.json; \ | |
python scripts/pass_rate.py --reports reports --suite tutorials --json ${{ env.SKIPLIST }} > pass_rate_tutorials.json; \ | |
" | |
- name: Upload pass rate report | |
# upload reports only for the default branch | |
if: github.ref_name == 'main' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pass_rate | |
path: pass_rate*.json | |
- name: Clean up workspace | |
if: ${{ always() }} | |
run: | | |
Remove-Item -LiteralPath ${{ env.NEW_WORKSPACE }} -Force -Recurse -ErrorAction Ignore | |
- name: Clean up temporary files | |
shell: bash | |
run: | | |
rm -rf rm -rf /tmp/triton-* /tmp/tmp* |