Skip to content

DEBUG: revert cleaning cache changes on Windows #50

DEBUG: revert cleaning cache changes on Windows

DEBUG: revert cleaning cache changes on Windows #50

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*