Skip to content

Commit 0bf4094

Browse files
committed
util: migrate spec06 benchmark_type to gcc12/gcc15
- gem5-perf-template.yml: renamed SPEC06 baseline benchmark keys from spec06-{0.3c,0.8c,1.0c} to gcc12-spec06-{0.3c,0.8c,1.0c}; added gcc15-spec06-{0.3c,0.8c,1.0c} mappings with dedicated checkpoint_list/checkpoint_root_node/score_script/cluster_config/artifact_name/comment outputs; updated benchmark_type input description and Invalid benchmark_type error list to the new full option set. - gem5-perf.yml: updated benchmark_type from spec06-0.8c to gcc12-spec06-0.8c. - gem5-ideal-btb-perf.yml: updated benchmark_type from spec06-0.8c to gcc12-spec06-0.8c. - gem5-ideal-btb-0.3c.yml: updated benchmark_type from spec06-0.3c to gcc12-spec06-0.3c. - gem5-ideal-btb-perf-weekly.yml: switched both SPEC06 jobs to gcc15-spec06-1.0c; kept SPEC17 jobs unchanged. - manual-perf.yml: changed benchmark_type default to gcc12-spec06-0.8c; replaced SPEC06 options with explicit gcc12/gcc15 variants (gcc12-spec06-{0.3c,0.8c,1.0c} and gcc15-spec06-{0.3c,0.8c,1.0c}); kept spec17/rvv options. - on-demand-spec.yml: migrated on-demand SPEC06 naming to gcc12-only scope (default/options/label-trigger default/comment text), without adding gcc15 options. 可直接使用的命令 Change-Id: Ie086b2fca06178f9dc47338da93a3af6f0f7327e
1 parent ace3fd5 commit 0bf4094

File tree

9 files changed

+60
-34
lines changed

9 files changed

+60
-34
lines changed

.github/workflows/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@
3939

4040
**目标**: 在合入前,按需检查有性能风险的 PR
4141

42-
**触发**: 在 PR 上添加 `perf` 标签(默认跑 spec06-0.8c),或手动触发 workflow 选择 benchmark
42+
**触发**: 在 PR 上添加 `perf` 标签(默认跑 gcc12-spec06-0.8c),或手动触发 workflow 选择 benchmark
4343

4444
### 支持的命令
4545

4646
```bash
47-
/run-spec # 默认:SPEC06 INT 80%覆盖率 (~500 checkpoints)
48-
/run-spec spec06-1.0c # SPEC06 100%覆盖率
47+
/run-spec # 默认:gcc12 SPEC06 INT 80%覆盖率 (~500 checkpoints)
48+
/run-spec gcc12-spec06-1.0c # gcc12 SPEC06 100%覆盖率
4949
/run-spec spec17-1.0c # SPEC17 100%覆盖率
5050
/run-spec spec06-rvv-1.0c # SPEC06 RVV扩展 100%
5151
/run-spec spec06int-rvv-0.8c # SPEC06 INT RVV 80%
@@ -57,7 +57,7 @@
5757

5858
### 当前实现
5959

60-
- 添加 `perf` 标签会自动触发 spec06-0.8c,workflow 会记录标签创建时 PR 的 head SHA 确保结果对应正确的 commit
60+
- 添加 `perf` 标签会自动触发 gcc12-spec06-0.8c,workflow 会记录标签创建时 PR 的 head SHA 确保结果对应正确的 commit
6161
- 需要其他 benchmark 时,可通过 Actions -> On-Demand SPEC workflow 手动输入 PR 号和类型
6262

6363
### 性能结果
@@ -139,8 +139,8 @@ git push origin xs-dev
139139
# 只需要通过 Tier 1 快速检查即可
140140

141141
# 场景2: 性能相关改动
142-
/run-spec # 标准性能测试
143-
/run-spec spec06-1.0c # 完整覆盖率测试
142+
/run-spec # 标准性能测试(默认 gcc12-spec06-0.8c)
143+
/run-spec gcc12-spec06-1.0c # 完整覆盖率测试
144144

145145
# 或者把当前分支改名为*-perf, 这样每次push 会自动运行v3 的性能。
146146
```

.github/workflows/gem5-ideal-btb-0.3c.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ jobs:
1212
uses: ./.github/workflows/gem5-perf-template.yml
1313
with:
1414
config_path: configs/example/kmhv3.py
15-
benchmark_type: "spec06-0.3c"
15+
benchmark_type: "gcc12-spec06-0.3c"

.github/workflows/gem5-ideal-btb-perf-weekly.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
uses: ./.github/workflows/gem5-perf-template.yml
1313
with:
1414
config_path: configs/example/kmhv3.py
15-
benchmark_type: "spec06-1.0c"
15+
benchmark_type: "gcc15-spec06-1.0c"
1616

1717
align_test_spec17:
1818
uses: ./.github/workflows/gem5-perf-template.yml
@@ -24,11 +24,10 @@ jobs:
2424
uses: ./.github/workflows/gem5-perf-template.yml
2525
with:
2626
config_path: configs/example/idealkmhv3.py
27-
benchmark_type: "spec06-1.0c"
27+
benchmark_type: "gcc15-spec06-1.0c"
2828

2929
perf_test_spec17:
3030
uses: ./.github/workflows/gem5-perf-template.yml
3131
with:
3232
config_path: configs/example/idealkmhv3.py
33-
benchmark_type: "spec17-1.0c"
34-
33+
benchmark_type: "spec17-1.0c"

.github/workflows/gem5-ideal-btb-perf.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ jobs:
1414
uses: ./.github/workflows/gem5-perf-template.yml
1515
with:
1616
config_path: configs/example/idealkmhv3.py
17-
benchmark_type: "spec06-0.8c"
17+
benchmark_type: "gcc12-spec06-0.8c"

.github/workflows/gem5-perf-template.yml

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ on:
1515
benchmark_type:
1616
required: true
1717
type: string
18-
description: "Benchmark type: spec06-0.3c, spec06-0.8c, spec06-1.0c, spec17-1.0c, spec06-rvv-1.0c or spec06int-rvv-0.8c"
18+
description: "Benchmark type: gcc12-spec06-0.3c, gcc12-spec06-0.8c, gcc12-spec06-1.0c, gcc15-spec06-0.3c, gcc15-spec06-0.8c, gcc15-spec06-1.0c, spec17-1.0c, spec06-rvv-1.0c or spec06int-rvv-0.8c"
1919
vector_type:
2020
required: false
2121
type: string
@@ -43,30 +43,54 @@ jobs:
4343
id: config
4444
run: |
4545
case "${{ inputs.benchmark_type }}" in
46-
"spec06-0.3c")
46+
"gcc12-spec06-0.3c")
4747
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/spec06_0.3c_int.lst" >> $GITHUB_OUTPUT
4848
echo "checkpoint_root_node=/nfs/home/share/jiaxiaoyu/simpoint_checkpoint_zstd_format/spec06_rv64gcb_O3_20m_gcc12.2.0-intFpcOff-jeMalloc" >> $GITHUB_OUTPUT
4949
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
5050
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/cluster-0-0.json" >> $GITHUB_OUTPUT
51-
echo "artifact_name=performance-score-spec06-0.3c" >> $GITHUB_OUTPUT
51+
echo "artifact_name=performance-score-gcc12-spec06-0.3c" >> $GITHUB_OUTPUT
5252
echo "comment=run 30% coverage spec06 checkpoints, 148 checkpoints" >> $GITHUB_OUTPUT
5353
;;
54-
"spec06-0.8c")
54+
"gcc12-spec06-0.8c")
5555
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/spec_0.8c_int.lst" >> $GITHUB_OUTPUT
5656
echo "checkpoint_root_node=/nfs/home/share/jiaxiaoyu/simpoint_checkpoint_zstd_format/spec06_rv64gcb_O3_20m_gcc12.2.0-intFpcOff-jeMalloc" >> $GITHUB_OUTPUT
5757
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
5858
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/cluster-0-0.json" >> $GITHUB_OUTPUT
59-
echo "artifact_name=performance-score-spec06-0.8c" >> $GITHUB_OUTPUT
59+
echo "artifact_name=performance-score-gcc12-spec06-0.8c" >> $GITHUB_OUTPUT
6060
echo "comment=run 80% coverage spec06 checkpoints, 500+ checkpoints" >> $GITHUB_OUTPUT
6161
;;
62-
"spec06-1.0c")
62+
"gcc12-spec06-1.0c")
6363
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/checkpoint-0-0-0.lst" >> $GITHUB_OUTPUT
6464
echo "checkpoint_root_node=/nfs/home/share/jiaxiaoyu/simpoint_checkpoint_zstd_format/spec06_rv64gcb_O3_20m_gcc12.2.0-intFpcOff-jeMalloc" >> $GITHUB_OUTPUT
6565
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
6666
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/cluster-0-0.json" >> $GITHUB_OUTPUT
67-
echo "artifact_name=performance-score-spec06-1.0c" >> $GITHUB_OUTPUT
67+
echo "artifact_name=performance-score-gcc12-spec06-1.0c" >> $GITHUB_OUTPUT
6868
echo "comment=run 100% coverage spec06 checkpoints" >> $GITHUB_OUTPUT
6969
;;
70+
"gcc15-spec06-0.3c")
71+
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/spec06_0.3c.lst" >> $GITHUB_OUTPUT
72+
echo "checkpoint_root_node=/nfs/home/share/checkpoints_profiles/spec06_gcc15_rv64gcb_base_260122/checkpoint-0-0-0" >> $GITHUB_OUTPUT
73+
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
74+
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/gcc15-spec06-0.3.json" >> $GITHUB_OUTPUT
75+
echo "artifact_name=performance-score-gcc15-spec06-0.3c" >> $GITHUB_OUTPUT
76+
echo "comment=run 30% coverage spec06 checkpoints, 148 checkpoints" >> $GITHUB_OUTPUT
77+
;;
78+
"gcc15-spec06-0.8c")
79+
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/spec06_0.8c.lst" >> $GITHUB_OUTPUT
80+
echo "checkpoint_root_node=/nfs/home/share/checkpoints_profiles/spec06_gcc15_rv64gcb_base_260122/checkpoint-0-0-0" >> $GITHUB_OUTPUT
81+
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
82+
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/gcc15-spec06-0.8.json" >> $GITHUB_OUTPUT
83+
echo "artifact_name=performance-score-gcc15-spec06-0.8c" >> $GITHUB_OUTPUT
84+
echo "comment=run 80% coverage spec06 checkpoints, 148 checkpoints" >> $GITHUB_OUTPUT
85+
;;
86+
"gcc15-spec06-1.0c")
87+
echo "checkpoint_list=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/checkpoint.lst" >> $GITHUB_OUTPUT
88+
echo "checkpoint_root_node=/nfs/home/share/checkpoints_profiles/spec06_gcc15_rv64gcb_base_260122/checkpoint-0-0-0" >> $GITHUB_OUTPUT
89+
echo "score_script=gem5-score-ci.sh" >> $GITHUB_OUTPUT
90+
echo "cluster_config=/nfs/home/share/gem5_ci/spec06_cpts/gcc15/cluster-0-0.json" >> $GITHUB_OUTPUT
91+
echo "artifact_name=performance-score-gcc15-spec06-1.0c" >> $GITHUB_OUTPUT
92+
echo "comment=run 100% coverage spec06 checkpoints, 148 checkpoints" >> $GITHUB_OUTPUT
93+
;;
7094
"spec17-1.0c")
7195
echo "checkpoint_list=/nfs/home/yanyue/spec17_cpts/checkpoint-0-0-0/checkpoint.lst" >> $GITHUB_OUTPUT
7296
echo "checkpoint_root_node=/nfs/home/yanyue/spec17_cpts/checkpoint-0-0-0/" >> $GITHUB_OUTPUT
@@ -92,7 +116,7 @@ jobs:
92116
echo "comment=run 80% coverage spec06 int rvv checkpoints" >> $GITHUB_OUTPUT
93117
;;
94118
*)
95-
echo "Error: Invalid benchmark_type '${{ inputs.benchmark_type }}'. Must be one of: spec06-0.8c, spec06-1.0c, spec17-1.0c, spec06-rvv-1.0c or spec06int-rvv-0.8c"
119+
echo "Error: Invalid benchmark_type '${{ inputs.benchmark_type }}'. Must be one of: gcc12-spec06-0.3c, gcc12-spec06-0.8c, gcc12-spec06-1.0c, gcc15-spec06-0.3c, gcc15-spec06-0.8c, gcc15-spec06-1.0c, spec17-1.0c, spec06-rvv-1.0c or spec06int-rvv-0.8c"
96120
exit 1
97121
;;
98122
esac

.github/workflows/gem5-perf.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ jobs:
1111
uses: ./.github/workflows/gem5-perf-template.yml
1212
with:
1313
config_path: configs/example/kmhv2.py
14-
benchmark_type: "spec06-0.8c"
14+
benchmark_type: "gcc12-spec06-0.8c"

.github/workflows/manual-perf.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@ on:
1616
description: 'Benchmark coverage type'
1717
required: true
1818
type: choice
19-
default: 'spec06-0.8c'
19+
default: 'gcc12-spec06-0.8c'
2020
options:
21-
- spec06-0.3c
22-
- spec06-0.8c
23-
- spec06-1.0c
21+
- gcc12-spec06-0.3c
22+
- gcc12-spec06-0.8c
23+
- gcc12-spec06-1.0c
24+
- gcc15-spec06-0.3c
25+
- gcc15-spec06-0.8c
26+
- gcc15-spec06-1.0c
2427
- spec17-1.0c
2528
- spec06-rvv-1.0c
2629
- spec06int-rvv-0.8c

.github/workflows/on-demand-spec.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: On-Demand SPEC Test (Tier 1.5)
22

33
on:
4-
# Label触发: 添加 'perf' 标签自动跑 spec06-0.8c
4+
# Label触发: 添加 'perf' 标签自动跑 gcc12-spec06-0.8c
55
pull_request_target:
66
types: [labeled]
77

@@ -16,10 +16,10 @@ on:
1616
description: 'Benchmark type'
1717
required: false
1818
type: choice
19-
default: 'spec06-0.8c'
19+
default: 'gcc12-spec06-0.8c'
2020
options:
21-
- spec06-0.8c
22-
- spec06-1.0c
21+
- gcc12-spec06-0.8c
22+
- gcc12-spec06-1.0c
2323
- spec17-1.0c
2424
- spec06-rvv-1.0c
2525
- spec06int-rvv-0.8c
@@ -61,14 +61,14 @@ jobs:
6161
} else {
6262
// Label触发 (pull_request_target)
6363
prNumber = context.payload.pull_request.number;
64-
benchmark = 'spec06-0.8c';
64+
benchmark = 'gcc12-spec06-0.8c';
6565
prSha = context.payload.pull_request.head.sha;
6666
6767
await github.rest.issues.createComment({
6868
owner: context.repo.owner,
6969
repo: context.repo.repo,
7070
issue_number: prNumber,
71-
body: '🚀 Performance test triggered: **spec06-0.8c**'
71+
body: '🚀 Performance test triggered: **gcc12-spec06-0.8c**'
7272
});
7373
}
7474

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ XS-GEM5 is enhanced with
5959

6060
We maintain three main Kunminghu configuration scripts to mirror RTL progress and performance targets. Each is covered by a distinct CI workflow so their results are easy to track (SPECCPU06 coverage shown in parentheses).
6161

62-
- `configs/example/kmhv2.py`: Kunminghu V2 baseline; used by the Tier 2 post-merge regression workflow `gem5 Performance Test (Tier 2 - Post-Merge)` (spec06-0.8c). If further development under the kmh-v2–related configuration is required, please switch to the KMH-V2-CONFIG branch.
63-
- `configs/example/kmhv3.py`: Kunminghu V3 RTL-aligned mainline; keeps some BPU/backend/performance knobs conservative to match the in-progress RTL, so scores are currently close to V2. CI: `gem5 Align BTB Performance Test(0.3c)` (spec06-0.3c).
64-
- `configs/example/idealkmhv3.py`: Ideal/performance-tuned V3 with aggressive microarchitectural settings enabled; currently the highest-scoring variant. CI: `gem5 Ideal BTB Performance Test` (spec06-0.8c).
62+
- `configs/example/kmhv2.py`: Kunminghu V2 baseline; used by the Tier 2 post-merge regression workflow `gem5 Performance Test (Tier 2 - Post-Merge)` (gcc12-spec06-0.8c). If further development under the kmh-v2–related configuration is required, please switch to the KMH-V2-CONFIG branch.
63+
- `configs/example/kmhv3.py`: Kunminghu V3 RTL-aligned mainline; keeps some BPU/backend/performance knobs conservative to match the in-progress RTL, so scores are currently close to V2. CI: `gem5 Align BTB Performance Test(0.3c)` (gcc12-spec06-0.3c).
64+
- `configs/example/idealkmhv3.py`: Ideal/performance-tuned V3 with aggressive microarchitectural settings enabled; currently the highest-scoring variant. CI: `gem5 Ideal BTB Performance Test` (gcc12-spec06-0.8c).
6565

6666
Note:
6767
- The V3 RTL BPU predictor and backend updates are still being implemented. Several performance switches remain off in `kmhv3.py` to stay aligned with the RTL snapshot; as RTL work lands, we will re-enable them and expect the mainline V3 scores to pull ahead of V2.

0 commit comments

Comments
 (0)