-
Notifications
You must be signed in to change notification settings - Fork 76
158 lines (146 loc) · 6.25 KB
/
Copy pathgem5.yml
File metadata and controls
158 lines (146 loc) · 6.25 KB
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
151
152
153
154
155
156
157
158
name: gem5 Full Test (Tier 2 - Post-Merge)
on:
push:
branches: [ xs-dev ]
# Removed pull_request trigger - moved to pr-quick-check.yml (Tier 1)
# can be triggered manually
workflow_dispatch:
jobs:
paralel_cpt_test:
# 由于gem5.cfg使用的切片ck_path都在小机房上,默认使用小机房运行这个测试
runs-on: [self-hosted, open] # 所有open*的机器上运行
continue-on-error: false
name: XS-GEM5 - Running test checkpoints
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Run paralel autotest script
run: python3 .github/workflows/autotest/script/autotest.py -f .github/workflows/autotest/gem5.cfg
paralel_cpt_h_test:
# 由于gem5.cfg使用的切片ck_path都在小机房上,默认使用小机房运行这个测试
runs-on: [self-hosted, open] # 所有open*的机器上运行
continue-on-error: false
name: XS-GEM5 - Running h test checkpoints
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Run paralel h autotest script
run: python3 .github/workflows/autotest/script/autotest.py -f .github/workflows/autotest/gem5-h.cfg
valgrind_memory_check:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Check memory corruption
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 debug
run: CC=gcc CXX=g++ scons build/RISCV/gem5.debug --linker=gold -j64
- name: Memory check
run: |
export GEM5_HOME=$(pwd)
bash util/memory_check/run-xs-with-valgrind.sh
cd $GEM5_HOME
new_sim_script_test_gcbv:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test new simulation script on RV64GCBV
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64 --rvv-impl=simple
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-notama-so"
export GCBV_RESTORER="/nfs/home/share/gem5_ci/tools/gcbv-restorer.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_v
cd $GEM5_HOME/util/xs_scripts/test_v
bash ../kmh_6wide_vector.sh /nfs/home/share/gem5_ci/checkpoints/gcbv_test.zstd
new_sim_script_test_gcb_multi_core:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test Multi-core + RV64GCB
steps:
- uses: actions/checkout@v7
- name: Build GEM5 opt
run: |
CC=clang CXX=clang++ scons build/RISCV_CHI/gem5.opt -j 48 --gold-linker
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_MULTI_CORE_REF_SO="/nfs/home/share/gem5_ci/ref/multi/riscv64-nemu-interpreter-so"
export GCB_MULTI_CORE_RESTORER="/nfs/home/share/gem5_ci/tools/gcb-2core-restorer.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_multi_core
cd $GEM5_HOME/util/xs_scripts/test_multi_core
bash ../kmh-ruby-dual.sh /nfs/home/share/gem5_ci/checkpoints/multi_core_test.gz
test_fix_l2tlb_bugs:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test fix L2TLB bugs
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-interpreter-so"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_l2tlb
cd $GEM5_HOME/util/xs_scripts/test_l2tlb
bash ../kmh_6wide.sh /nfs/home/share/gem5_ci/checkpoints/l2tlb_test.zstd
new_sim_script_test_gcbh:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test new simulation script on RV64GCBH
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBH_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-notama-tvalref-so"
export GCBH_RESTORER="/nfs/home/share/gem5_ci/tools/gcpt.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_h
cd $GEM5_HOME/util/xs_scripts/test_h
bash ../kmh_6wide_h.sh /nfs/home/share/gem5_ci/checkpoints/gcbh_test.zstd
raw_linux_boot_test:
runs-on: [self-hosted, open]
continue-on-error: false
timeout-minutes: 30
name: XS-GEM5 - Boot raw Linux
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Boot Xiangshan raw Linux
run: |
export RAW_LINUX_BIN="${XS_LINUX_BIN:-/nfs/home/share/gem5_ci/ready-to-run/linux.bin}"
if [ ! -r "$RAW_LINUX_BIN" ]; then
echo "Missing raw linux image: $RAW_LINUX_BIN"
echo "Please provision the image at the default path or set XS_LINUX_BIN on the runner."
exit 1
fi
mkdir -p debug/raw_linux_ci
./build/RISCV/gem5.opt -r -d debug/raw_linux_ci \
./configs/example/kmhv3.py \
--raw-cpt \
--generic-rv-cpt "$RAW_LINUX_BIN" \
--disable-difftest
- name: Check boot result
run: |
test -f debug/raw_linux_ci/simout
tail -n 200 debug/raw_linux_ci/simout
grep -q "Hello, XiangShan!" debug/raw_linux_ci/simout
grep -q "m5_exit instruction encountered" debug/raw_linux_ci/simout