forked from nod-ai/SHARK-TestSuite
-
Notifications
You must be signed in to change notification settings - Fork 0
150 lines (141 loc) · 5.32 KB
/
test_iree.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Copyright 2024 Advanced Micro Devices, Inc.
#
# 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: IREE Test Suite
on:
pull_request:
paths:
# This file itself.
- ".github/workflows/test_iree.yml"
# The iree_tests subproject.
- "iree_tests/**"
# The iree_special_models subproject.
- "iree_special_models/**"
workflow_dispatch:
schedule:
# Runs at 3:00 PM UTC, which is 8:00 AM PST
- cron: "0 15 * * *"
concurrency:
# A PR number if a pull request and otherwise the commit hash. This cancels
# queued and in-progress runs for the same PR (presubmit) or commit
# (postsubmit). The workflow name is prepended to avoid conflicts between
# different workflows.
group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
jobs:
models:
name: "Models :: ${{ matrix.name }} :: ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
include:
- name: cpu_llvm_task
runs-on: nodai-amdgpu-mi250-x86-64
models-config-file: models_cpu_llvm_task.json
backend: cpu
- name: gpu_mi250_rocm
runs-on: nodai-amdgpu-mi250-x86-64
models-config-file: models_gpu_rocm_gfx90a.json
backend: rocm
env:
VENV_DIR: ${{ github.workspace }}/.venv
ROCM_CHIP: gfx90a
IREE_TEST_FILES: /groups/aig_sharks/iree-tests-cache-nod
IREE_TEST_PATH_EXTENSION: ${{ github.workspace }}/iree_tests/specs
MODELS_CONFIG_FILE_PATH: iree_tests/configs/${{ matrix.models-config-file }}
TEST_SUITE_REPO_ROOT: ${{ github.workspace }}
steps:
- name: "Checking out repository"
uses: actions/checkout@v4
with:
submodules: false
lfs: true
# Install Python packages.
# Note: skipping actions/setup-python since these self-hosted runners already have Python.
- name: "Setup Python venv"
run: python3 -m venv ${VENV_DIR}
- name: "Installing IREE nightly release Python packages"
run: |
source ${VENV_DIR}/bin/activate
python3 -m pip install \
--find-links https://iree.dev/pip-release-links.html \
--upgrade \
iree-compiler \
iree-runtime
- name: "Installing Python test requirements"
run: |
source ${VENV_DIR}/bin/activate
python3 -m pip install -r iree_tests/requirements.txt
python3 -m pip install -r iree_special_models/requirements.txt
pip install --no-compile --pre --upgrade -e common_tools
# Download remote files.
- name: "Downloading remote files for real weight model tests"
run: |
source ${VENV_DIR}/bin/activate
python3 iree_tests/download_remote_files.py --root-dir iree_special_models
python3 iree_tests/download_remote_files.py --root-dir iree_tests/pytorch/models
python3 iree_tests/download_remote_files.py --root-dir iree_tests/sharktank
- name: "Running real weight model tests"
if: "matrix.models-config-file != '' && !cancelled()"
run: |
source ${VENV_DIR}/bin/activate
pytest \
iree_tests/pytorch/models \
iree_tests/sharktank \
-n 4 \
-rA \
-k real_weights \
--no-skip-tests-missing-files \
--capture=no \
--log-cli-level=info \
--timeout=1200 \
--durations=0 \
--config-files=${MODELS_CONFIG_FILE_PATH}
- name: "Running SDXL special model tests"
id: special_models_sdxl
if: ${{ !cancelled() }}
run: |
source ${VENV_DIR}/bin/activate
pytest iree_special_models/sdxl \
-k ${{ matrix.backend }} \
-rpfE \
--capture=no \
--log-cli-level=info \
--timeout=1200 \
--durations=0
- name: "Running SD3 special model tests"
id: special_models_sd3
if: ${{ !cancelled() }}
run: |
source ${VENV_DIR}/bin/activate
pytest iree_special_models/sd3 \
-k ${{ matrix.backend }} \
-rpfE \
--capture=no \
--log-cli-level=info \
--timeout=1200 \
--durations=0
- name: "Running SDXL ROCm pipeline benchmark"
if: |
contains(matrix.name, 'rocm') &&
steps.special_models_sdxl.outcome == 'success'
run: |
source ${VENV_DIR}/bin/activate
pytest iree_tests/benchmarks/sdxl/benchmark_sdxl_rocm.py \
--goldentime-rocm-e2e-ms 1450.0 \
--goldentime-rocm-unet-ms 370.0 \
--goldentime-rocm-clip-ms 18.5 \
--goldentime-rocm-vae-ms 315.0 \
--goldendispatch-rocm-unet 1714 \
--goldendispatch-rocm-clip 1569 \
--goldendispatch-rocm-vae 248 \
--goldensize-rocm-unet-bytes 2280000 \
--goldensize-rocm-clip-bytes 860000 \
--goldensize-rocm-vae-bytes 840000 \
--gpu-number 6 \
--rocm-chip gfx90a \
--log-cli-level=info
echo "$(<job_summary.md )" >> $GITHUB_STEP_SUMMARY