blob: 776ee8c8833539fcfc8458fb159eb4271ea946bf [file] [log] [blame]
# Copyright 2024 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
name: PkgCI Test PJRT plugin
on:
workflow_call:
inputs:
artifact_run_id:
type: string
default: ""
write-caches:
required: true
type: string
workflow_dispatch:
inputs:
artifact_run_id:
type: string
default: ""
write-caches:
required: true
type: string
jobs:
build_and_test:
strategy:
matrix:
include:
- runner: ubuntu-24.04
pjrt_platform: cpu
- runner: ubuntu-24.04
pjrt_platform: cuda
# TODO: enable these AMD runners
# - runner: nodai-amdgpu-w7900-x86-64
# pjrt_platform: rocm
# - runner: nodai-amdgpu-w7900-x86-64
# pjrt_platform: vulkan
name: Build and test
runs-on: ${{ matrix.runner }}
env:
PACKAGE_DOWNLOAD_DIR: ${{ github.workspace }}/.packages
VENV_DIR: ${{ github.workspace }}/.venv
GH_TOKEN: ${{ github.token }}
steps:
- name: Checking out repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: true
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
# Must match the subset of versions built in pkgci_build_packages.
python-version: "3.11"
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
if: ${{ inputs.artifact_run_id == '' }}
with:
name: linux_x86_64_release_packages
path: ${{ env.PACKAGE_DOWNLOAD_DIR }}
- name: Setup base venv
run: |
./build_tools/pkgci/setup_venv.py ${VENV_DIR} \
--artifact-path=${PACKAGE_DOWNLOAD_DIR} \
--fetch-gh-workflow=${{ inputs.artifact_run_id }}
- name: ccache
uses: hendrikmuhs/ccache-action@63069e3931dedbf3b63792097479563182fe70d1 # v1.2.18
with:
key: ${{ github.job }}-${{ matrix.pjrt_platform }}
save: ${{ inputs.write-caches == 1 }}
- name: Build and install
run: |
# install editable into venv
source ${VENV_DIR}/bin/activate
export CMAKE_C_COMPILER_LAUNCHER=ccache
export CMAKE_CXX_COMPILER_LAUNCHER=ccache
python -m pip install -v --no-deps -e integrations/pjrt/python_packages/iree_${{ matrix.pjrt_platform }}_plugin
# install
python -m pip install jax==0.6.1
# TODO: We can only run on CPU for now, as the CUDA runner
# is not available yet, refer to #18814.
- name: Run tests
if: ${{ matrix.pjrt_platform == 'cpu' }}
run: |
source ${VENV_DIR}/bin/activate
build_tools/testing/run_jax_tests.sh ${{ matrix.pjrt_platform }}