-
Notifications
You must be signed in to change notification settings - Fork 612
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run all framework sanity check tests and organize jobs. #18420
Changes from all commits
33f792e
ec5d5a5
2235340
b118ee6
670c433
4e1efae
5f274d0
462612d
feb5926
2f31de4
e78c998
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,108 +18,6 @@ on: | |
default: "" | ||
|
||
jobs: | ||
test_onnx: | ||
name: "test_onnx :: ${{ 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 | ||
- 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/[email protected] | ||
with: | ||
submodules: false | ||
- uses: actions/[email protected] | ||
with: | ||
# Must match the subset of versions built in pkgci_build_packages. | ||
python-version: "3.11" | ||
- uses: actions/[email protected] | ||
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/[email protected] | ||
with: | ||
repository: iree-org/iree-test-suites | ||
ref: 9e921d0ea271a85f772eee22965585461c9b14c2 | ||
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/[email protected] | ||
with: | ||
name: ${{ matrix.config-file }} | ||
path: ${{ env.CONFIG_FILE_PATH }} | ||
|
||
test_models: | ||
name: "test_models :: ${{ matrix.name }}" | ||
runs-on: ${{ matrix.runs-on }} | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Agreed. Currently, some large chunks of code are copy/pasted, and grouping by platform would make that worse. I had ideas for making that easier on nod-ai/SHARK-TestSuite#288. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# 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 :: ${{ 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 | ||
- 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/[email protected] | ||
with: | ||
submodules: false | ||
- uses: actions/[email protected] | ||
with: | ||
# Must match the subset of versions built in pkgci_build_packages. | ||
python-version: "3.11" | ||
- uses: actions/[email protected] | ||
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/[email protected] | ||
with: | ||
repository: iree-org/iree-test-suites | ||
ref: 9e921d0ea271a85f772eee22965585461c9b14c2 | ||
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/[email protected] | ||
with: | ||
name: ${{ matrix.config-file }} | ||
path: ${{ env.CONFIG_FILE_PATH }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed that the Android and RISCV cross compile jobs are sharing a cache (named "cross_compile") when they shouldn't. Pushed another commit that gives each a unique cache key.