| # 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: iree-w7900x2 |
| # pjrt_platform: rocm |
| # - runner: iree-w7900x2 |
| # 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@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 |
| with: |
| submodules: true |
| - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 |
| with: |
| # Must match the subset of versions built in pkgci_build_packages. |
| python-version: "3.11" |
| - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.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 }} |
| env: |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| - name: ccache |
| uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20 |
| 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 }} |