55 push :
66 branches :
77 - main
8+ - diff-only-runs
89 paths :
910 - " perf-changelog.yaml"
1011
1112jobs :
12- get-configs :
13+ get-jobs :
1314 runs-on : ubuntu-latest
1415 outputs :
15- search-space-config : ${{ steps.get-configs .outputs.search-space-config }}
16+ search-space-config : ${{ steps.get-jobs .outputs.search-space-config }}
1617 steps :
1718 - name : Checkout code
1819 uses : actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
1920 with :
20- fetch-depth : 2
21+ fetch-depth : 0
2122
22- - id : get-configs
23+ - id : get-jobs
2324 run : |
2425 pip install pydantic
2526 CONFIG_JSON=$(python3 ${GITHUB_WORKSPACE}/utils/process_changelog.py \
2627 --changelog-file ${GITHUB_WORKSPACE}/perf-changelog.yaml \
27- --base-ref ${{ github.event.before }} \
28+ --base-ref origin/main \
2829 --head-ref ${{ github.sha }})
2930 echo "search-space-config=$CONFIG_JSON" >> $GITHUB_OUTPUT
3031
3132 test-sweep-multi-node :
32- needs : get-configs
33- if : ${{ needs.get-configs.outputs.search-space-config != '[]' && fromJson(needs.get-configs.outputs.search-space-config)[0].prefill != null }}
33+ needs : get-jobs
34+ # Use existence (or non-existence) of 'prefill' field as a proxy to determined multi-node tests.
35+ # We only need to check the first entry because by design, all entries in the matrix will be of the same type (there will
36+ # never be a mix of multi-node and single-node entries as output from generate_sweep_configs.py).
37+ if : ${{ needs.get-jobs.outputs.search-space-config != '[]' && fromJson(needs.get-jobs.outputs.search-space-config)[0].prefill != null }}
3438 uses : ./.github/workflows/benchmark-multinode-tmpl.yml
3539 name : multi-node
3640 strategy :
3741 fail-fast : false
3842 matrix :
39- config : ${{ fromJson(needs.get-configs .outputs.search-space-config) }}
43+ config : ${{ fromJson(needs.get-jobs .outputs.search-space-config) }}
4044 secrets : inherit
4145 with :
4246 isl : ${{ matrix.config.isl }}
@@ -66,14 +70,14 @@ jobs:
6670 decode-additional-settings : ${{ toJson(matrix.config.decode.additional-settings) }}
6771
6872 test-sweep-single-node :
69- needs : get-configs
70- if : ${{ needs.get-configs .outputs.search-space-config != '[]' && fromJson(needs.get-configs .outputs.search-space-config)[0].prefill == null }}
73+ needs : get-jobs
74+ if : ${{ needs.get-jobs .outputs.search-space-config != '[]' && fromJson(needs.get-jobs .outputs.search-space-config)[0].prefill == null }}
7175 uses : ./.github/workflows/benchmark-tmpl.yml
7276 name : single-node
7377 strategy :
7478 fail-fast : false
7579 matrix :
76- config : ${{ fromJson(needs.get-configs .outputs.search-space-config) }}
80+ config : ${{ fromJson(needs.get-jobs .outputs.search-space-config) }}
7781 secrets : inherit
7882 with :
7983 exp-name : ${{ matrix.config.exp-name }}
@@ -94,15 +98,13 @@ jobs:
9498 disagg : ${{ matrix.config.disagg }}
9599
96100 collect-results :
97- needs : [get-configs, test-sweep-multi-node, test-sweep-single-node]
98- if : ${{ always() && needs.get-configs.result == 'success' && needs.get-configs.outputs.search-space-config != '[]' }}
101+ needs : [test-sweep-multi-node, test-sweep-single-node]
102+ if : ${{ always() }}
99103 uses : ./.github/workflows/collect-results.yml
100104 secrets : inherit
101- with :
102- exp-name : " diff-run"
103105
104106 calc-success-rate :
105- needs : [ collect-results]
107+ needs : collect-results
106108 if : ${{ always() }}
107109 runs-on : ubuntu-latest
108110
0 commit comments