Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
45fa74f
Add sym::expr
pfultz2 Mar 20, 2026
3150f5a
Format
pfultz2 Mar 20, 2026
e1f4252
Move constructor inline
pfultz2 Mar 20, 2026
3e0d84b
Format
pfultz2 Mar 20, 2026
8752a2f
Move .cpp
pfultz2 Mar 20, 2026
31ca343
Format
pfultz2 Mar 20, 2026
a6552c1
Add comparison ops
pfultz2 Mar 20, 2026
e84dd47
Format
pfultz2 Mar 20, 2026
c2f3514
Add assign operators
pfultz2 Mar 21, 2026
0ba12f2
Add more functions
pfultz2 Mar 21, 2026
684d536
Format
pfultz2 Mar 21, 2026
90d30ac
Add to_string method
pfultz2 Mar 23, 2026
cecb90a
Format
pfultz2 Mar 23, 2026
3f83fef
Fix issues with dangling references in the test framework (#4670)
pfultz2 Mar 23, 2026
da3c0eb
Change gitignore (#4698)
CharlieL7 Mar 24, 2026
ac44f96
fix various typos in codebase (#4692)
kahmed10 Mar 24, 2026
828e681
Update onnxruntime main e3ebf8752e68347c4265041001e832b41139fcb4 (#4690)
github-actions[bot] Mar 24, 2026
0f429bf
Add option to skip benchmarking in compile_ops (#4628)
kahmed10 Mar 24, 2026
6803b14
Adding parser support for MatMulBnb4 operator (#4673)
urpetkov-amd Mar 24, 2026
bc80993
jit implementation for fill (#4666)
bdevorem Mar 24, 2026
791917a
Adding attention bias input to Multi Head Attention parser (#4680)
urpetkov-amd Mar 24, 2026
c399c54
Add call associative
pfultz2 Mar 24, 2026
d2fc809
Foramt
pfultz2 Mar 24, 2026
92c716e
Add implicit const folding
pfultz2 Mar 25, 2026
7cb021a
Format
pfultz2 Mar 25, 2026
169c34a
Normalize subtract
pfultz2 Mar 25, 2026
2b01317
Format
pfultz2 Mar 25, 2026
cfdd0b0
Normalize subtraction
pfultz2 Mar 25, 2026
ed58ec1
Format
pfultz2 Mar 25, 2026
aeba6af
Some cleanup
pfultz2 Mar 25, 2026
f9364dd
Format
pfultz2 Mar 25, 2026
03f6064
Add normalize_expr
pfultz2 Mar 25, 2026
063645e
Add normalization
pfultz2 Mar 25, 2026
db9720d
Format
pfultz2 Mar 25, 2026
81f845d
find_nop_reshapes: Remove extra assignments/inserts (#4696)
TedThemistokleous Mar 25, 2026
9ba5c4f
AIMIGRAPHX-824 Set basic graph optimization for ONNX sessions in accu…
kentqian Mar 25, 2026
8b19cfc
Add rewrite rules
pfultz2 Mar 25, 2026
c55d529
Format
pfultz2 Mar 25, 2026
c5e7884
Reset the Develop performance tests (#4705)
causten Mar 25, 2026
10793fb
Too many configs in the quick tune list (#4711)
mirza-halilcevic Mar 27, 2026
fa96d53
Support dynamic input values for range op (#4591)
klin2024 Mar 27, 2026
e104401
Bump requests from 2.32.4 to 2.33.0 in /docs/sphinx (#4706)
dependabot[bot] Mar 27, 2026
ba66b8c
Update onnxruntime main 1c05b13ddef3f40fcca7781d437029848d3b2fdb (#4715)
github-actions[bot] Mar 29, 2026
f33315d
Bump cryptography from 46.0.5 to 46.0.6 in /docs/sphinx (#4717)
dependabot[bot] Mar 29, 2026
11dc154
Fix bug in rewrite_resize with nhwc (#4713)
pfultz2 Mar 29, 2026
da2b950
Bump pygments from 2.18.0 to 2.20.0 in /docs/sphinx (#4719)
dependabot[bot] Mar 30, 2026
6d17854
Adjust allocation even when a fill is used on the allocation (#4582)
pfultz2 Apr 2, 2026
015ee15
JIT implementation for multinomial (#4721)
bdevorem Apr 2, 2026
fa18dd8
Use JIT Pooling by default and add tuning (#4646)
pfultz2 Apr 3, 2026
bdd4bd1
Remove MIGRAPHX_TIDY_CONST (#4722)
pfultz2 Apr 3, 2026
f6ca204
[AIRADSW-179] Fixing dimensions do not match issue with SD XL vae dec…
urpetkov-amd Apr 6, 2026
17969e4
[AIRADSW-167] Fix dimensions do not match issue with claa models (#4728)
urpetkov-amd Apr 6, 2026
47de35f
[AIMIGRAPHX-886] [AIMIGRAPHX-834] custom symbolic expression lib (#4700)
shivadbhavsar Apr 6, 2026
3b540cc
Add kernel for fp32 channelwise convolution (#4647)
pfultz2 Apr 6, 2026
042c62e
use latest cmake for ORT (#4741)
causten Apr 7, 2026
526f63c
Remove half dependency (#4736)
pfultz2 Apr 7, 2026
263e090
Update onnxruntime main a18e5b982f6c4b27bbc5ab3dcf55e23099d4d653 (#4740)
github-actions[bot] Apr 8, 2026
38868b4
[AIMIGRAPHX-801] Fix int convert bf16/fp16 (#4745)
TedThemistokleous Apr 8, 2026
19c27f6
fix win builds (#4749)
shivadbhavsar Apr 8, 2026
f43bad4
Move rocMLIR to capture QWEN updates (#4750)
causten Apr 8, 2026
b0577f6
[AIMIGRAPHX-143] Replace usages of cout/cerr with logger (#4732)
eddieliao Apr 8, 2026
56e1a32
[AIMIGRAPHX-408] Update intermediate ops to support dynamic shapes (#…
shivadbhavsar Apr 9, 2026
31c2464
Fix issue caused by configs with only 1 solution (#4762)
music-dino Apr 9, 2026
cddc3e7
Bump cryptography from 46.0.6 to 46.0.7 in /docs/sphinx (#4759)
dependabot[bot] Apr 9, 2026
fd2c803
Add parser
pfultz2 Apr 9, 2026
cfa99b6
Format
pfultz2 Apr 9, 2026
0d8b391
Add first_of
pfultz2 Apr 9, 2026
910a68d
Format
pfultz2 Apr 9, 2026
fa5a44e
Add more operators
pfultz2 Apr 10, 2026
dd6670e
Format
pfultz2 Apr 10, 2026
6036fd9
Securing CI: Splitting execution and reporting (#4769)
Muhamed-Husic Apr 10, 2026
3ebb6aa
Logger updates (#4758)
pfultz2 Apr 10, 2026
46cca0a
[AIMIGRAPHX-578] Use Eigen 3rd party library for ref GEMMs (#4631)
kahmed10 Apr 10, 2026
14f4267
Add mod operator
pfultz2 Apr 10, 2026
f5cb5a2
Format
pfultz2 Apr 10, 2026
8bcdac3
side branch for testing (#4774)
causten Apr 10, 2026
b50a9f0
Use call_function
pfultz2 Apr 10, 2026
1b18df4
Add lookup table
pfultz2 Apr 10, 2026
7526432
Format
pfultz2 Apr 10, 2026
07f5ba0
Add some missing methods
pfultz2 Apr 10, 2026
1120f04
Format
pfultz2 Apr 10, 2026
8476da0
Add print operators
pfultz2 Apr 10, 2026
6b3dfa0
Add to_value serialization
pfultz2 Apr 10, 2026
00a30e1
Format
pfultz2 Apr 10, 2026
e3fe11b
Adding past inputs to MultiHeadAttention parser for supporting new mo…
urpetkov-amd Apr 10, 2026
b5b7967
Add debug symbols for parsed and compiler pass replaced instructions …
CharlieL7 Apr 10, 2026
3877b76
Add symlib
pfultz2 Apr 10, 2026
a9acf1d
Merge branch 'sym-expr' into sym-expr2
pfultz2 Apr 10, 2026
704d17a
Fix cmake
pfultz2 Apr 10, 2026
cc9ac2f
Fix ambiguous overloads
pfultz2 Apr 10, 2026
8f80176
Format
pfultz2 Apr 10, 2026
bd5bf3e
Fix some failures
pfultz2 Apr 10, 2026
8641ff8
Throw on missing variable
pfultz2 Apr 10, 2026
c6b44e5
Fix eval tests
pfultz2 Apr 10, 2026
b6bf47a
Use generic eval
pfultz2 Apr 10, 2026
b28a46a
Format
pfultz2 Apr 10, 2026
ffa3753
Make generic apply
pfultz2 Apr 10, 2026
53835f6
Format
pfultz2 Apr 10, 2026
314e4f0
Use generic_eval for string conversion
pfultz2 Apr 10, 2026
7b3e3f2
Reduce parens
pfultz2 Apr 10, 2026
9207d08
Normalize div
pfultz2 Apr 12, 2026
b1583f6
Format:
pfultz2 Apr 12, 2026
73c3e9e
Fix expression comparison
pfultz2 Apr 12, 2026
4bf7f5f
Format
pfultz2 Apr 12, 2026
2d4ea2b
Reorder
pfultz2 Apr 12, 2026
e2f0571
Format
pfultz2 Apr 12, 2026
89ca294
Switch order for mul
pfultz2 Apr 12, 2026
d98514b
Rename to scalar
pfultz2 Apr 12, 2026
3cb28d9
Format
pfultz2 Apr 12, 2026
a2e83a8
Simplify tuple creation
pfultz2 Apr 12, 2026
9664f59
Format
pfultz2 Apr 12, 2026
9f355aa
Use index method
pfultz2 Apr 12, 2026
f09949a
Simplify further
pfultz2 Apr 12, 2026
641a139
FOrmat
pfultz2 Apr 12, 2026
78a1e7b
Add fold_associative_args
pfultz2 Apr 12, 2026
ad867c7
Format
pfultz2 Apr 12, 2026
efe0002
Add unit tests
pfultz2 Apr 12, 2026
6917f91
Fix bug
pfultz2 Apr 13, 2026
2eed238
Update algorithm
pfultz2 Apr 13, 2026
2d64c2a
Use algorithms
pfultz2 Apr 13, 2026
8e2a187
Format
pfultz2 Apr 13, 2026
ffafd58
Use std::transform
pfultz2 Apr 13, 2026
0f47989
Cleanup the nasty loop
pfultz2 Apr 13, 2026
165e52a
Reuse subs
pfultz2 Apr 13, 2026
4a4af17
Format
pfultz2 Apr 13, 2026
089d3be
Unify associative
pfultz2 Apr 13, 2026
9697905
Format
pfultz2 Apr 13, 2026
6f39c04
Move to .cpp file
pfultz2 Apr 13, 2026
ff69c50
Remove simplify overload
pfultz2 Apr 13, 2026
b830f48
Adjust namespaces
pfultz2 Apr 13, 2026
89a4dab
Format
pfultz2 Apr 13, 2026
bdce060
Handle empty better
pfultz2 Apr 13, 2026
463a33f
Format
pfultz2 Apr 13, 2026
9f10d13
Fix associative ops
pfultz2 Apr 13, 2026
b481482
Add optimials
pfultz2 Apr 13, 2026
a88234b
Format
pfultz2 Apr 13, 2026
41e3d95
Use fix point combinator
pfultz2 Apr 13, 2026
53b36bc
Update eval
pfultz2 Apr 13, 2026
f7e37af
Format
pfultz2 Apr 13, 2026
cf81114
Use std::visit
pfultz2 Apr 13, 2026
becd81e
Format
pfultz2 Apr 13, 2026
ff856c9
Use static functions
pfultz2 Apr 13, 2026
ea0e0b9
Add clipping to make_scalar
pfultz2 Apr 13, 2026
2d3aeda
Format
pfultz2 Apr 13, 2026
dce28c0
Add tests for ceil div
pfultz2 Apr 13, 2026
a75d129
Throw div by zero
pfultz2 Apr 13, 2026
f2e162f
Fix eval tests
pfultz2 Apr 13, 2026
10a95e5
Update tests
pfultz2 Apr 13, 2026
d79be30
Improve printing
pfultz2 Apr 13, 2026
563165d
Format
pfultz2 Apr 13, 2026
34d75cb
use cached hash
pfultz2 Apr 13, 2026
314b257
Format
pfultz2 Apr 13, 2026
629b76a
Update type trait
pfultz2 Apr 13, 2026
2ed8ce9
Format
pfultz2 Apr 13, 2026
7b48135
Move ordered_as
pfultz2 Apr 13, 2026
c0eb314
Move ordered_as
pfultz2 Apr 13, 2026
50c3b30
Simplify overload
pfultz2 Apr 13, 2026
e017090
Remvoe the extra overload
pfultz2 Apr 13, 2026
d3ff9a8
Use float_equal
pfultz2 Apr 13, 2026
aadd5d6
Check div by zero
pfultz2 Apr 13, 2026
60136b2
Tidy fixits
pfultz2 Apr 13, 2026
c093a79
Format
pfultz2 Apr 13, 2026
7c5fa40
More tidy fixes
pfultz2 Apr 13, 2026
a6632b2
Format
pfultz2 Apr 13, 2026
e7b1d9d
Avoid copying the map
pfultz2 Apr 13, 2026
7ebfd5b
Format
pfultz2 Apr 13, 2026
640baf0
Remove unused template
pfultz2 Apr 13, 2026
3a1929e
Format
pfultz2 Apr 13, 2026
d631f84
Update license
pfultz2 Apr 13, 2026
4a8df17
Format
pfultz2 Apr 13, 2026
4a9a55b
Fix
pfultz2 Apr 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ CheckOptions:
- key: bugprone-unused-return-value.AllowCastToVoid
value: true
- key: cppcoreguidelines-macro-usage.AllowedRegexp
value: 'DEBUG|ASSERT|ASSUME|UNREACHABLE|FALLTHROUGH|DEPRECATED|STRINGIZE|_HAS_|_THROW|_REQUIRES|_DECLARE_|_VISIT_|_REGISTER_|_GENERATE_|_DETAIL_|_TIDY_|_MANAGE_PTR|_MATCHER|DEVICE_SHARED|_WORKAROUND_|_PP_'
value: 'DEBUG|ASSERT|ASSUME|UNREACHABLE|FALLTHROUGH|DEPRECATED|STRINGIZE|_HAS_|_THROW|_REQUIRES|_DECLARE_|_DEFINE_|_VISIT_|_REGISTER_|_GENERATE_|_DETAIL_|_TIDY_|_MANAGE_PTR|_MATCHER|DEVICE_SHARED|_WORKAROUND_|_PP_'
- key: modernize-loop-convert.MinConfidence
value: risky
- key: modernize-loop-convert.NamingStyle
Expand Down
65 changes: 58 additions & 7 deletions .github/workflows/performance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: MIGraphX Performance Tests
on:
pull_request_target:
branches: [develop]
types: [opened, synchronize, closed]
types: [opened, synchronize, closed, labeled]
schedule:
- cron: "0 7 * * 1-6"

Expand Down Expand Up @@ -41,14 +41,37 @@ on:
description: -m for Max value; -s for Std dev; -r for Threshold file
required: true
default: '-r'
model_path:
description: Host path to NFS-backed models (ARC runner mount)
required: false
default: "/migraphx-models"
perf_workspace:
description: Writable NFS-backed workspace for reports/scratch (ARC runner mount)
required: false
default: "/mnt/migraphx-perf-work"
runner_label:
description: Self-hosted runner label (ARC scale set linux-migraphx-mi250-1)
required: false
default: "linux-migraphx-mi250-1"

concurrency:
group: "perftest-${{ github.head_ref || github.base_ref || 'schedule' }}"
group: "perftest-${{ github.head_ref || github.base_ref || 'schedule' }}"
cancel-in-progress: true

env:
# Defaults when not overridden by config.md or workflow_dispatch
MIGRAPHX_MODEL_PATH_DEFAULT: /migraphx-models
MIGRAPHX_PERF_WORKSPACE_DEFAULT: /mnt/migraphx-perf-work
MIGRAPHX_RUNNER_LABEL: linux-migraphx-mi250-1

jobs:
get_config:
runs-on: ubuntu-latest
if: >
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' ||
github.event.action == 'closed' ||
contains(github.event.pull_request.labels.*.name, 'ok-to-test')
outputs:
rocm_version: ${{ steps.read_config.outputs.rocm_version }}
utils_repo: ${{ steps.read_config.outputs.utils_repo }}
Expand All @@ -58,11 +81,18 @@ jobs:
perf_number: ${{ steps.read_config.outputs.perf_number }}
perf_flag: ${{ steps.read_config.outputs.perf_flag }}
perf_timeout: ${{ steps.read_config.outputs.perf_timeout }}
model_path: ${{ steps.read_config.outputs.model_path }}
perf_workspace: ${{ steps.read_config.outputs.perf_workspace }}
runner_label: ${{ steps.read_config.outputs.runner_label }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: read_config
id: read_config
env:
MIGRAPHX_MODEL_PATH_DEFAULT: ${{ env.MIGRAPHX_MODEL_PATH_DEFAULT }}
MIGRAPHX_PERF_WORKSPACE_DEFAULT: ${{ env.MIGRAPHX_PERF_WORKSPACE_DEFAULT }}
MIGRAPHX_RUNNER_LABEL_DEFAULT: ${{ env.MIGRAPHX_RUNNER_LABEL }}
run: |
ROCM_VERSION=$(grep 'ROCM_VERSION' .github/workflows/config.md | cut -d "'" -f2)
BENCHMARK_UTILS_REPO=$(grep 'BENCHMARK_UTILS_REPO' .github/workflows/config.md | cut -d "'" -f2)
Expand All @@ -72,6 +102,23 @@ jobs:
RESULTS_TO_COMPARE=$(grep 'RESULTS_TO_COMPARE' .github/workflows/config.md | cut -d "'" -f2)
CALCULATION_METHOD_FLAG=$(grep 'CALCULATION_METHOD_FLAG' .github/workflows/config.md | cut -d "'" -f2)
PERFORMANCE_TEST_TIMEOUT=$(grep 'PERFORMANCE_TEST_TIMEOUT' .github/workflows/config.md | cut -d "'" -f2)

MODEL_PATH=""
PERF_WS=""
if grep -q 'MIGRAPHX_MODEL_PATH' .github/workflows/config.md 2>/dev/null; then
MODEL_PATH=$(grep 'MIGRAPHX_MODEL_PATH' .github/workflows/config.md | cut -d "'" -f2)
fi
if grep -q 'MIGRAPHX_PERF_WORKSPACE' .github/workflows/config.md 2>/dev/null; then
PERF_WS=$(grep 'MIGRAPHX_PERF_WORKSPACE' .github/workflows/config.md | cut -d "'" -f2)
fi
RUNNER_LABEL=""
if grep -q 'MIGRAPHX_RUNNER_LABEL' .github/workflows/config.md 2>/dev/null; then
RUNNER_LABEL=$(grep 'MIGRAPHX_RUNNER_LABEL' .github/workflows/config.md | cut -d "'" -f2)
fi
MODEL_PATH="${MODEL_PATH:-$MIGRAPHX_MODEL_PATH_DEFAULT}"
PERF_WS="${PERF_WS:-$MIGRAPHX_PERF_WORKSPACE_DEFAULT}"
RUNNER_LABEL="${RUNNER_LABEL:-$MIGRAPHX_RUNNER_LABEL_DEFAULT}"

echo "rocm_version=$ROCM_VERSION"
echo "rocm_version=$ROCM_VERSION" >> $GITHUB_OUTPUT
echo "utils_repo=$BENCHMARK_UTILS_REPO" >> $GITHUB_OUTPUT
Expand All @@ -81,10 +128,13 @@ jobs:
echo "perf_number=$RESULTS_TO_COMPARE" >> $GITHUB_OUTPUT
echo "perf_flag=$CALCULATION_METHOD_FLAG" >> $GITHUB_OUTPUT
echo "perf_timeout=$PERFORMANCE_TEST_TIMEOUT" >> $GITHUB_OUTPUT

echo "model_path=$MODEL_PATH" >> $GITHUB_OUTPUT
echo "perf_workspace=$PERF_WS" >> $GITHUB_OUTPUT
echo "runner_label=$RUNNER_LABEL" >> $GITHUB_OUTPUT

call_reusable:
needs: get_config
uses: ROCm/migraphx-benchmark/.github/workflows/perf-test.yml@main
uses: ROCm/migraphx-benchmark/.github/workflows/perf-test.yml@testing
with:
rocm_release: ${{ github.event.inputs.rocm_release || needs.get_config.outputs.rocm_version }}
benchmark_utils_repo: ${{ github.event.inputs.benchmark_utils_repo || needs.get_config.outputs.utils_repo }}
Expand All @@ -94,7 +144,8 @@ jobs:
result_number: ${{ github.event.inputs.result_number || needs.get_config.outputs.perf_number }}
flags: ${{ github.event.inputs.flags || needs.get_config.outputs.perf_flag }}
model_timeout: ${{ github.event.inputs.model_timeout || needs.get_config.outputs.perf_timeout }}
model_path: ${{ github.event.inputs.model_path || needs.get_config.outputs.model_path }}
perf_workspace: ${{ github.event.inputs.perf_workspace || needs.get_config.outputs.perf_workspace }}
runs_on: ${{ github.event.inputs.runner_label || needs.get_config.outputs.runner_label }}
secrets:
gh_token: ${{ secrets.MIGRAPHX_BOT_TOKEN }}
mail_user: ${{ secrets.MAIL_USERNAME }}
mail_pass: ${{ secrets.MAIL_PASSWORD }}
BENCHMARK_UTILS_READ_TOKEN: ${{ secrets.BENCHMARK_UTILS_READ_TOKEN }}
209 changes: 209 additions & 0 deletions .github/workflows/report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
name: Generate Performance Report
on:
workflow_run:
workflows: ["MIGraphX Performance Tests"]
types: [completed]

env:
REPORTS_DIR: migraphx-reports
MAIL_TO: dl.dl-migraphx-perfrun@amd.com
MAIL_BODY: Scheduled Performance test run on develop branch
PERFORMANCE_DIR: performance-backup
REPORTS_PATH: temp_reports

jobs:
post-report:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Download artifacts
id: dl_art
uses: actions/download-artifact@v4
continue-on-error: true
with:
name: performance-run-data
path: test-results
github-token: ${{ secrets.MIGRAPHX_BOT_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}

- name: Extract context safely
if: steps.dl_art.outcome == 'success'
run: |
if [ -f test-results/pr_number.txt ]; then
PR_NUMBER=$(cat test-results/pr_number.txt)
if [[ "$PR_NUMBER" =~ ^[0-9]+$ ]]; then
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
fi
fi
if [ -f test-results/env_vars.env ]; then
RESULT_NUMBER=$(grep '^RESULT_NUMBER=' test-results/env_vars.env | cut -d= -f2)
if [[ "$RESULT_NUMBER" =~ ^[0-9]+$ ]]; then
echo "RESULT_NUMBER=$RESULT_NUMBER" >> $GITHUB_ENV
fi
FLAGS=$(grep '^FLAGS=' test-results/env_vars.env | cut -d= -f2)
case "$FLAGS" in
"-r"|"-m"|"-s")
echo "FLAGS=$FLAGS" >> $GITHUB_ENV
;;
*)
echo "FLAGS=-r" >> $GITHUB_ENV
;;
esac
ACCURACY_DIR=$(grep '^ACCURACY_DIR=' test-results/env_vars.env | cut -d= -f2)
if [[ "$ACCURACY_DIR" =~ ^accuracy ]]; then
echo "ACCURACY_DIR=$ACCURACY_DIR" >> $GITHUB_ENV
fi
GIT_SHA=$(grep '^GIT_SHA=' test-results/env_vars.env | cut -d= -f2)
if [[ "$GIT_SHA" =~ ^[A-Za-z0-9]+$ ]]; then
echo "GIT_SHA=$GIT_SHA" >> $GITHUB_ENV
fi
ORGANIZATION=$(grep '^ORGANIZATION=' test-results/env_vars.env | cut -d= -f2)
if [[ "$ORGANIZATION" =~ ^[A-Za-z0-9_-]+$ ]]; then
echo "ORGANIZATION=$ORGANIZATION" >> $GITHUB_ENV
else
echo "ORGANIZATION=AMD" >> $GITHUB_ENV
fi
fi

- name: Checkout report's repo
if: steps.dl_art.outcome == 'success'
uses: actions/checkout@v4.3.1
with:
repository: ROCm/${{ env.REPORTS_DIR }}
path: ${{ env.REPORTS_DIR }}
token: ${{ secrets.MIGRAPHX_BOT_TOKEN }}

- name: Checkout utils repo
if: steps.dl_art.outcome == 'success'
uses: actions/checkout@v4.3.1
with:
repository: ROCm/migraphx-benchmark-utils
path: benchmark-utils
token: ${{ secrets.MIGRAPHX_BOT_TOKEN }}

- name: Setup Python
if: steps.dl_art.outcome == 'success'
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install python libraries
if: steps.dl_art.outcome == 'success'
run: pip install tabulate==0.8.9 pandas==1.4.2 numpy==1.22.3 openpyxl==3.1.2

- name: Execute report script
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event == 'schedule'
run: |
mkdir -p ${{ env.REPORTS_PATH }}
python3 benchmark-utils/scripts/report.py -t 'test-results' -r ${{ env.REPORTS_PATH }}
python3 benchmark-utils/scripts/history.py -n -t 'test-results' -r ${{ env.REPORTS_PATH }}
mkdir -p ${{ env.REPORTS_DIR }}/nightly_reports
cp -r ${{ env.REPORTS_PATH }}/results-* ${{ env.REPORTS_DIR }}/nightly_reports/ || true

- name: Copy performance results to repo - PRs
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event != 'schedule' && env.PR_NUMBER && env.PR_NUMBER != ''
run: |
mkdir -p ${{ env.REPORTS_DIR }}/performance_results/PRs/PR-${{ env.PR_NUMBER }}/${{ env.GIT_SHA }}
cp -r test-results/perf-*/. ${{ env.REPORTS_DIR }}/performance_results/PRs/PR-${{ env.PR_NUMBER }}/${{ env.GIT_SHA }} || true
if [ "${{ env.ACCURACY_DIR }}" != "" ]; then
mkdir -p ${{ env.REPORTS_DIR }}/performance_results/PRs/PR-${{ env.PR_NUMBER }}/${{ env.GIT_SHA }}/accuracy_logs
cp -r test-results/${{ env.ACCURACY_DIR }}/. ${{ env.REPORTS_DIR }}/performance_results/PRs/PR-${{ env.PR_NUMBER }}/${{ env.GIT_SHA }}/accuracy_logs || true
fi

- name: Copy performance results to repo - develop - nightly or manual
if: steps.dl_art.outcome == 'success' && (github.event.workflow_run.event == 'schedule' || github.event.workflow_run.event == 'workflow_dispatch')
run: |
mkdir -p ${{ env.REPORTS_DIR }}/performance_results/develop/${{ env.GIT_SHA }}
cp -r test-results/perf-*/. ${{ env.REPORTS_DIR }}/performance_results/develop/${{ env.GIT_SHA }} || true
if [ "${{ env.ACCURACY_DIR }}" != "" ]; then
mkdir -p ${{ env.REPORTS_DIR }}/performance_results/develop/${{ env.GIT_SHA }}/accuracy_logs
cp -r test-results/${{ env.ACCURACY_DIR }}/. ${{ env.REPORTS_DIR }}/performance_results/develop/${{ env.GIT_SHA }}/accuracy_logs || true
fi

- name: Push results to repo
if: steps.dl_art.outcome == 'success'
continue-on-error: true
run: |
cd ${{ env.REPORTS_DIR }}
git add .
git config --local user.email github-actions@github.com
git config --local user.name github-actions
git commit -m "Performance results run https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" -a || true
git push

- name: Execute comment script
if: steps.dl_art.outcome == 'success' && env.PR_NUMBER && env.PR_NUMBER != ''
run: |
if [ "${{ env.FLAGS }}" == "-r" ]; then
flagoptions="-r benchmark-utils/scripts/"
else
flagoptions="${{ env.FLAGS }}"
fi
python3 benchmark-utils/scripts/comment.py -t 'test-results' -n "${{ env.RESULT_NUMBER }}" $flagoptions -p

- name: Create a comment on PR
if: steps.dl_art.outcome == 'success' && env.PR_NUMBER && env.PR_NUMBER != ''
uses: marocchino/sticky-pull-request-comment@v2.9.0
with:
header: performance
number: ${{ env.PR_NUMBER }}
GITHUB_TOKEN: ${{ secrets.MIGRAPHX_BOT_TOKEN }}
path: test-results/temp.md
recreate: true

- name: Create accuracy comment on PR
if: steps.dl_art.outcome == 'success' && env.PR_NUMBER && env.PR_NUMBER != ''
uses: marocchino/sticky-pull-request-comment@v2.9.0
with:
header: accuracy
number: ${{ env.PR_NUMBER }}
GITHUB_TOKEN: ${{ secrets.MIGRAPHX_BOT_TOKEN }}
path: test-results/${{ env.ACCURACY_DIR }}/results.md
recreate: true

- name : Checkout for backup
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event == 'schedule'
uses: actions/checkout@v4.3.1
with:
repository: migraphx-benchmark/${{ env.PERFORMANCE_DIR }}
path: ${{ env.PERFORMANCE_DIR }}
token: ${{ secrets.MIGRAPHX_BOT_TOKEN }}

- name: Backup
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event == 'schedule'
run : |
mkdir -p ${{ env.PERFORMANCE_DIR }}/${{ env.ORGANIZATION }}
cp -r test-results/perf-* ${{ env.PERFORMANCE_DIR }}/${{ env.ORGANIZATION }} || true
cd ${{ env.PERFORMANCE_DIR }}
git add .
git status
git config --local user.email github-actions@github.com
git config --local user.name github-actions
git commit -m "Backup latest perf results" -a || true
git push


- name: Get latest report
id: last_report
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event == 'schedule'
run: |
cd ${{ env.REPORTS_DIR }}/nightly_reports
latest="$(readlink -f $(ls -tp | grep -v /$ | head -1))"
echo "latest=$latest" >> $GITHUB_OUTPUT

- name: Send mail
if: steps.dl_art.outcome == 'success' && github.event.workflow_run.event == 'schedule'
uses: dawidd6/action-send-mail@v3
with:
server_address: smtp.gmail.com
server_port: 465
username: ${{ secrets.MAIL_USERNAME }}
password: ${{ secrets.MAIL_PASSWORD }}
subject: "Nightly Performance run"
to: ${{ env.MAIL_TO }}
from: "GH Actions"
secure: true
body: ${{ env.MAIL_BODY }}
ignore_cert: true
attachments: ${{ steps.last_report.outputs.latest}}
priority: normal
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,18 @@ _toc.yml
# Directories to ignore (do not add trailing '/'s, they skip symlinks).
#==============================================================================#
# Nested build directory
/build*
/build

# Downloaded models
test/onnx/models

# Python virtual env
venv_rbuild

# ONNX test generated files
test/onnx/load_save_arg.msgpack
test/onnx/migraphx_api_load_save_argument.msgpack

# VS2017 and VSCode config files.
.vscode
.vs
Expand Down
Loading
Loading