Skip to content

Triton wheels

Triton wheels #321

name: Triton wheels
on:
workflow_dispatch:
schedule:
- cron: "5 23 * * *"
permissions: read-all
env:
USE_AOT_DEVLIST: pvc
jobs:
build:
name: Build
runs-on:
- max1100
- rolling
- runner-0.0.20
strategy:
matrix:
python:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
fail-fast: false
max-parallel: 2
defaults:
run:
shell: bash -noprofile --norc -eo pipefail -c "source /opt/intel/oneapi/setvars.sh > /dev/null; source {0}"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install Python build dependencies
run: |
# cmake 3.22.1 does not work with the recent torchaudio: https://github.com/intel/intel-xpu-backend-for-triton/issues/2079
pip install wheel cmake
- name: Setup PyTorch
uses: ./.github/actions/setup-pytorch
with:
repository: pytorch/pytorch
- name: Identify pinned versions
run: |
cd pytorch
echo "TORCHVISION_COMMIT_ID=$(<.github/ci_commit_pins/vision.txt)" | tee -a $GITHUB_ENV
echo "TORCHTEXT_COMMIT_ID=$(<.github/ci_commit_pins/text.txt)" | tee -a $GITHUB_ENV
echo "TORCHAUDIO_COMMIT_ID=$(<.github/ci_commit_pins/audio.txt)" | tee -a $GITHUB_ENV
echo "TRANSFORMERS_VERSION=$(<.ci/docker/ci_commit_pins/huggingface.txt)" | tee -a $GITHUB_ENV
echo "TIMM_COMMIT_ID=$(<.ci/docker/ci_commit_pins/timm.txt)" | tee -a $GITHUB_ENV
- name: Identify Triton commit id
run: |
echo "TRITON_COMMIT_ID=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Generate Triton cache key
id: triton-key
run: |
COMPOSITE_KEY=$(echo ${{ matrix.python }} $PYTORCH_VERSION $TRITON_COMMIT_ID | sha256sum - | cut -d\ -f1)
echo "key=triton-$COMPOSITE_KEY" >> $GITHUB_OUTPUT
- name: Load Triton wheels from a cache
id: triton-cache
uses: ./.github/actions/load
with:
path: python/dist
key: ${{ steps.triton-key.outputs.key }}
- name: Build Triton wheels
if: ${{ steps.triton-cache.outputs.status == 'miss' }}
uses: ./.github/actions/setup-triton
with:
command: >
DEBUG=1
python setup.py bdist_wheel && pip install dist/*.whl
- name: Save Triton wheels to a cache
if: ${{ steps.triton-cache.outputs.status == 'miss' }}
uses: ./.github/actions/save
with:
path: ${{ steps.triton-cache.outputs.path }}
dest: ${{ steps.triton-cache.outputs.dest }}
- name: Install torchvision package
uses: ./.github/actions/install-dependency
with:
package: torchvision
repository: pytorch/vision
ref: ${{ env.TORCHVISION_COMMIT_ID }}
extra-cache-key: ${{ env.PYTORCH_VERSION }}
- name: Install torchtext package
uses: ./.github/actions/install-dependency
with:
package: torchtext
repository: pytorch/text
ref: ${{ env.TORCHTEXT_COMMIT_ID }}
extra-cache-key: ${{ env.PYTORCH_VERSION }}
- name: Install torchaudio package
uses: ./.github/actions/install-dependency
with:
package: torchaudio
repository: pytorch/audio
ref: ${{ env.TORCHAUDIO_COMMIT_ID }}
extra-cache-key: ${{ env.PYTORCH_VERSION }}
- name: Install timm package
uses: ./.github/actions/install-dependency
with:
package: timm
repository: huggingface/pytorch-image-models
ref: ${{ env.TIMM_COMMIT_ID }}
extra-cache-key: ${{ env.PYTORCH_VERSION }}
- name: Install transformers package
uses: ./.github/actions/install-dependency
with:
package: transformers
repository: huggingface/transformers
ref: ${{ env.TRANSFORMERS_VERSION }}
try-tag-prefix: v
extra-cache-key: ${{ env.PYTORCH_VERSION }}
- name: Prepare wheels for upload
run: |
mkdir -p wheels
cp -L pytorch/dist/*.whl wheels/
cp -L python/dist/*.whl wheels/
cp -L torchvision*/dist/*.whl wheels/
cp -L torchtext*/dist/*.whl wheels/
cp -L torchaudio*/dist/*.whl wheels/
cp -L timm*/dist/*.whl wheels/
cp -L transformers*/dist/*.whl wheels/
ls -lh wheels/
- name: Report environment details
run: |
TIMESTAMP=$(date '+%Y%m%d')
echo "TIMESTAMP=$TIMESTAMP" >> "${GITHUB_ENV}"
cat <<EOF | tee wheels/.env
TIMESTAMP=$TIMESTAMP
GITHUB_RUN_ID=$GITHUB_RUN_ID
GITHUB_RUN_NUMBER=$GITHUB_RUN_NUMBER
GITHUB_RUN_ATTEMPT=$GITHUB_RUN_ATTEMPT
PYTHON_VERSION=$PYTHON_VERSION
PYTORCH_REPO=$PYTORCH_REPO
PYTORCH_COMMIT_ID=$PYTORCH_COMMIT_ID
LLVM_REPO=llvm/llvm-project
LLVM_COMMIT_ID=$LLVM_COMMIT_ID
TRITON_REPO=intel/intel-xpu-backend-for-triton
TRITON_COMMIT_ID=$TRITON_COMMIT_ID
TORCHVISION_COMMIT_ID=$TORCHVISION_COMMIT_ID
TORCHTEXT_COMMIT_ID=$TORCHTEXT_COMMIT_ID
TORCHAUDIO_COMMIT_ID=$TORCHAUDIO_COMMIT_ID
EOF
- name: Upload PyTorch wheels to artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-pytorch-py${{ matrix.python }}-${{ env.TIMESTAMP }}
path: wheels
include-hidden-files: true