| # 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 ONNX |
| on: |
| workflow_call: |
| inputs: |
| artifact_run_id: |
| type: string |
| default: "" |
| workflow_dispatch: |
| inputs: |
| artifact_run_id: |
| type: string |
| default: "" |
| |
| jobs: |
| test_onnx_ops: |
| name: "test_onnx_ops :: ${{ matrix.name }}" |
| runs-on: ${{ matrix.runs-on }} |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| # CPU |
| - name: cpu_llvm_sync |
| config-file: onnx_ops_cpu_llvm_sync.json |
| numprocesses: auto |
| runs-on: ubuntu-20.04 |
| |
| # AMD GPU |
| - name: amdgpu_rocm_rdna3 |
| numprocesses: 1 |
| config-file: onnx_ops_gpu_rocm_rdna3.json |
| runs-on: nodai-amdgpu-w7900-x86-64 |
| - name: amdgpu_vulkan |
| numprocesses: 4 |
| config-file: onnx_ops_gpu_vulkan.json |
| runs-on: nodai-amdgpu-w7900-x86-64 |
| |
| # NVIDIA GPU |
| # TODO(#18238): migrate to new runner cluster |
| # - name: nvidiagpu_cuda |
| # config-file: onnx_ops_gpu_cuda.json |
| # numprocesses: 4 |
| # runs-on: |
| # - self-hosted # must come first |
| # - runner-group=${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }} |
| # - environment=prod |
| # - gpu # TODO(scotttodd): qualify further with vendor/model |
| # - os-family=Linux |
| # - name: nvidiagpu_vulkan |
| # config-file: onnx_ops_gpu_vulkan.json |
| # numprocesses: 4 |
| # runs-on: |
| # - self-hosted # must come first |
| # - runner-group=${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }} |
| # - environment=prod |
| # - gpu # TODO(scotttodd): qualify further with vendor/model |
| # - os-family=Linux |
| env: |
| PACKAGE_DOWNLOAD_DIR: ${{ github.workspace }}/.packages |
| CONFIG_FILE_PATH: tests/external/iree-test-suites/onnx_ops/${{ matrix.config-file }} |
| NUMPROCESSES: ${{ matrix.numprocesses }} |
| LOG_FILE_PATH: /tmp/test_onnx_ops_${{ matrix.name }}_logs.json |
| VENV_DIR: ${{ github.workspace }}/venv |
| steps: |
| - name: Checking out IREE repository |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 |
| with: |
| submodules: false |
| - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.1.0 |
| with: |
| # Must match the subset of versions built in pkgci_build_packages. |
| python-version: "3.11" |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 |
| with: |
| name: linux_x86_64_release_packages |
| path: ${{ env.PACKAGE_DOWNLOAD_DIR }} |
| - name: Setup venv |
| run: | |
| ./build_tools/pkgci/setup_venv.py ${VENV_DIR} \ |
| --artifact-path=${PACKAGE_DOWNLOAD_DIR} \ |
| --fetch-gh-workflow=${{ inputs.artifact_run_id }} |
| |
| - name: Checkout test suites repository |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 |
| with: |
| repository: iree-org/iree-test-suites |
| ref: 3a0ea13cbdc954365d653a48cc99cc63a9ff09b3 |
| path: iree-test-suites |
| - name: Install ONNX ops test suite requirements |
| run: | |
| source ${VENV_DIR}/bin/activate |
| python -m pip install -r iree-test-suites/onnx_ops/requirements.txt |
| - name: Run ONNX ops test suite |
| run: | |
| source ${VENV_DIR}/bin/activate |
| pytest iree-test-suites/onnx_ops/ \ |
| -rpfE \ |
| --numprocesses ${NUMPROCESSES} \ |
| --timeout=30 \ |
| --durations=20 \ |
| --config-files=${CONFIG_FILE_PATH} \ |
| --report-log=${LOG_FILE_PATH} |
| - name: "Updating config file with latest XFAIL lists" |
| if: failure() |
| run: | |
| source ${VENV_DIR}/bin/activate |
| python iree-test-suites/onnx_ops/update_config_xfails.py \ |
| --log-file=${LOG_FILE_PATH} \ |
| --config-file=${CONFIG_FILE_PATH} |
| cat ${CONFIG_FILE_PATH} |
| - name: "Uploading new config file" |
| if: failure() |
| uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 |
| with: |
| name: ${{ matrix.config-file }} |
| path: ${{ env.CONFIG_FILE_PATH }} |
| |
| test_onnx_models: |
| name: "test_onnx_models :: ${{ matrix.name }}" |
| runs-on: ${{ matrix.runs-on }} |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| # CPU |
| - name: cpu_llvm_task |
| runs-on: ubuntu-20.04 |
| |
| # TODO(scotttodd): test other backends (parameterize the test suite) |
| env: |
| VENV_DIR: ${{ github.workspace }}/venv |
| steps: |
| - name: Checking out IREE repository |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 |
| with: |
| submodules: false |
| - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.1.0 |
| with: |
| # Must match the subset of versions built in pkgci_build_packages. |
| python-version: "3.11" |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 |
| with: |
| name: linux_x86_64_release_packages |
| path: ${{ env.PACKAGE_DOWNLOAD_DIR }} |
| - name: Setup venv |
| run: | |
| ./build_tools/pkgci/setup_venv.py ${VENV_DIR} \ |
| --artifact-path=${PACKAGE_DOWNLOAD_DIR} \ |
| --fetch-gh-workflow=${{ inputs.artifact_run_id }} |
| |
| - name: Checkout test suites repository |
| uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 |
| with: |
| repository: iree-org/iree-test-suites |
| ref: 3a0ea13cbdc954365d653a48cc99cc63a9ff09b3 |
| path: iree-test-suites |
| - name: Install ONNX models test suite requirements |
| run: | |
| source ${VENV_DIR}/bin/activate |
| python -m pip install -r iree-test-suites/onnx_models/requirements.txt |
| - name: Run ONNX models test suite |
| run: | |
| source ${VENV_DIR}/bin/activate |
| pytest iree-test-suites/onnx_models/ \ |
| -rA \ |
| --log-cli-level=info \ |
| --override-ini=xfail_strict=false \ |
| --timeout=120 \ |
| --durations=0 |