未验证 提交 ac54e310 编写于 作者: Y Yinan Xu 提交者: GitHub

ci-runner: only specify a numa node for performance stability (#685)

Previously we use numactl to specify both nodes and cpus for emu.
However, when other processes are using the same cpu, verilated emu
suffers from huge performance degradation. To avoid these scenarios,
we only specify the numa node to achieve a more stable performance.
上级 aac4464e
...@@ -49,7 +49,7 @@ jobs: ...@@ -49,7 +49,7 @@ jobs:
do do
t=${test%.c} t=${test%.c}
echo $t echo $t
numactl -m 1 -C 64-71 make -C $CPU_TEST_DIR ALL=$t ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run | grep "HIT GOOD TRAP" numactl -m 1 -N 1 make -C $CPU_TEST_DIR ALL=$t ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run | grep "HIT GOOD TRAP"
if [[ $? != 0 ]]; if [[ $? != 0 ]];
then then
echo $t fail echo $t fail
...@@ -59,28 +59,28 @@ jobs: ...@@ -59,28 +59,28 @@ jobs:
exit $ret exit $ret
- name: Basic Test - riscv-tests - name: Basic Test - riscv-tests
run: | run: |
numactl -m 1 -C 64-71 make -C $RVTEST_HOME/isa/ SUITES+=rv64ui SUITES+=rv64um SUITES+=rv64ua SUITES+=rv64uf SUITES+=rv64ud NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME noop_run numactl -m 1 -N 1 make -C $RVTEST_HOME/isa/ SUITES+=rv64ui SUITES+=rv64um SUITES+=rv64ua SUITES+=rv64uf SUITES+=rv64ud NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME noop_run
- name: Simple Test - microbench - name: Simple Test - microbench
run: | run: |
numactl -m 1 -C 64-71 make -C $AM_HOME/apps/microbench ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME mainargs=test run 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make -C $AM_HOME/apps/microbench ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME mainargs=test run 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: Simple Test - CoreMark - name: Simple Test - CoreMark
run: | run: |
numactl -m 1 -C 64-71 make -C $AM_HOME/apps/coremark ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make -C $AM_HOME/apps/coremark ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: System Test - Linux - name: System Test - Linux
run: | run: |
numactl -m 1 -C 64-71 make emu IMAGE=/home/ci-runner/xsenv/workloads/linux-hello/bbl.bin 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/linux-hello/bbl.bin 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: Floating-point Test - povray - name: Floating-point Test - povray
run: | run: |
numactl -m 1 -C 64-71 make emu IMAGE=/home/ci-runner/xsenv/workloads/povray/_3400001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/povray/_3400001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
...@@ -101,25 +101,25 @@ jobs: ...@@ -101,25 +101,25 @@ jobs:
make ./build/emu SIM_ARGS=--disable-log NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME DRAMSIM3_HOME=$DRAMSIM3_HOME -j220 EMU_THREADS=16 WITH_DRAMSIM3=1 make ./build/emu SIM_ARGS=--disable-log NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME DRAMSIM3_HOME=$DRAMSIM3_HOME -j220 EMU_THREADS=16 WITH_DRAMSIM3=1
- name: SPEC06 Test - mcf - name: SPEC06 Test - mcf
run: | run: |
numactl -m 1 -C 64-79 make emu IMAGE=/home/ci-runner/xsenv/workloads/mcf/_2550001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/mcf/_2550001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: SPEC06 Test - xalancbmk - name: SPEC06 Test - xalancbmk
run: | run: |
numactl -m 1 -C 64-79 make emu IMAGE=/home/ci-runner/xsenv/workloads/xalancbmk/_6600001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/xalancbmk/_6600001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: SPEC06 Test - gcc - name: SPEC06 Test - gcc
run: | run: |
numactl -m 1 -C 64-79 make emu IMAGE=/home/ci-runner/xsenv/workloads/gcc/_1250001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/gcc/_1250001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
- name: SPEC06 Test - namd - name: SPEC06 Test - namd
run: | run: |
numactl -m 1 -C 64-79 make emu IMAGE=/home/ci-runner/xsenv/workloads/namd/_4850001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF" numactl -m 1 -N 1 make emu IMAGE=/home/ci-runner/xsenv/workloads/namd/_4850001000_.gz EMU_ARGS="-I 5000000" 2>&1 | tee >(grep "PERF" > perf.log) | grep -v "PERF"
ret=${PIPESTATUS[0]} ret=${PIPESTATUS[0]}
cat perf.log | sort cat perf.log | sort
exit $ret exit $ret
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册