bpu: use folded SRAM in Tage BaseTable (#2408) #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file describes the GitHub Actions workflow for continuous integration of XS Core. | |
name: EMU Test | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
generate-verilog: | |
runs-on: bosc | |
continue-on-error: false | |
name: Generate Verilog | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: set env | |
run: | | |
export HEAD_SHA=${{ github.run_number }} | |
echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
echo "NEMU_HOME=/nfs/home/share/ci-workloads/NEMU" >> $GITHUB_ENV | |
echo "WAVE_HOME=/nfs/home/ci-runner/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV | |
mkdir -p /nfs/home/ci-runner/xs-wave/${HEAD_SHA} | |
- name: clean up | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --clean | |
- name: check top wiring | |
run: | |
bash .github/workflows/check-usage.sh "BoringUtils" $GITHUB_WORKSPACE | |
- name: generate verilog file | |
run: | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --generate --num-cores 2 | |
- name: check verilog | |
run: | |
python3 $GITHUB_WORKSPACE/.github/workflows/check_verilog.py build/XSTop.v | |
- name: build MinimalConfig Release emu | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build \ | |
--threads 4 --config MinimalConfig --release | |
- name: run MinimalConfig - Linux | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 4 --numa --ci linux-hello 2> perf.log | |
cat perf.log | sort | |
emu-basics: | |
runs-on: bosc | |
continue-on-error: false | |
timeout-minutes: 900 | |
name: EMU - Basics | |
strategy: | |
matrix: | |
mfc-arg: ["", "--mfc"] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: set env | |
run: | | |
export HEAD_SHA=${{ github.run_number }} | |
echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
echo "NEMU_HOME=/nfs/home/share/ci-workloads/NEMU" >> $GITHUB_ENV | |
echo "AM_HOME=/nfs/home/share/ci-workloads/nexus-am" >> $GITHUB_ENV | |
echo "PERF_HOME=/nfs/home/ci-runner/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV | |
echo "WAVE_HOME=/nfs/home/ci-runner/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV | |
mkdir -p /nfs/home/ci-runner/xs-perf/${HEAD_SHA} | |
mkdir -p /nfs/home/ci-runner/xs-wave/${HEAD_SHA} | |
- name: clean up | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --clean | |
- name: Build EMU | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --build --threads 8 ${{ matrix.mfc-arg }} | |
- name: Basic Test - cputest | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --ci cputest 2> /dev/zero | |
- name: Basic Test - riscv-tests | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --rvtest /nfs/home/share/ci-workloads/riscv-tests --ci riscv-tests 2> /dev/zero | |
- name: Basic Test - misc-tests | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --numa --ci misc-tests 2> /dev/zero | |
- name: Basic Test - nodiff-tests | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --numa --no-diff --ci nodiff-tests 2> /dev/zero | |
- name: Simple Test - microbench | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --ci microbench 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/microbench.log | |
- name: Simple Test - CoreMark | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --numa --ci coremark 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/coremark.log | |
- name: System Test - Linux | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --numa --ci linux-hello 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/linux.log | |
- name: Floating-point Test - povray | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 8 --numa --max-instr 5000000 --ci povray 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/povray.log | |
- name: Uncache Fetch Test - copy and run | |
run: | | |
$GITHUB_WORKSPACE/build/emu -F $GITHUB_WORKSPACE/ready-to-run/copy_and_run.bin -i $GITHUB_WORKSPACE/ready-to-run/microbench.bin --diff $GITHUB_WORKSPACE/ready-to-run/riscv64-nemu-interpreter-so --enable-fork 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/copy_and_run.log | |
emu-performance: | |
runs-on: bosc | |
continue-on-error: false | |
timeout-minutes: 900 | |
name: EMU - Performance | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: set env | |
run: | | |
export HEAD_SHA=${{ github.run_number }} | |
echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
echo "NEMU_HOME=/nfs/home/share/ci-workloads/NEMU" >> $GITHUB_ENV | |
echo "AM_HOME=/nfs/home/share/ci-workloads/nexus-am" >> $GITHUB_ENV | |
echo "PERF_HOME=/nfs/home/ci-runner/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV | |
echo "WAVE_HOME=/nfs/home/ci-runner/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV | |
mkdir -p /nfs/home/ci-runner/xs-perf/${HEAD_SHA} | |
mkdir -p /nfs/home/ci-runner/xs-wave/${HEAD_SHA} | |
- name: clean up | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --clean | |
- name: Build EMU | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build \ | |
--dramsim3 /nfs/home/share/ci-workloads/DRAMsim3 \ | |
--with-dramsim3 --threads 16 | |
- name: SPEC06 Test - mcf | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci mcf 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/mcf.log | |
- name: SPEC06 Test - xalancbmk | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci xalancbmk 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/xalancbmk.log | |
- name: SPEC06 Test - gcc | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci gcc 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/gcc.log | |
- name: SPEC06 Test - namd | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci namd 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/namd.log | |
- name: SPEC06 Test - milc | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci milc 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/milc.log | |
- name: SPEC06 Test - lbm | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci lbm 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/lbm.log | |
- name: SPEC06 Test - gromacs | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci gromacs 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/gromacs.log | |
- name: SPEC06 Test - wrf | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci wrf 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/wrf.log | |
- name: SPEC06 Test - astar | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --max-instr 5000000 --numa --ci astar 2> perf.log | |
cat perf.log | sort | tee $PERF_HOME/astar.log | |
emu-mc: | |
runs-on: bosc | |
continue-on-error: false | |
timeout-minutes: 900 | |
name: EMU - MC | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: set env | |
run: | | |
export HEAD_SHA=${{ github.run_number }} | |
echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
echo "NEMU_HOME=/nfs/home/share/ci-workloads/NEMU" >> $GITHUB_ENV | |
echo "AM_HOME=/nfs/home/share/ci-workloads/nexus-am" >> $GITHUB_ENV | |
echo "PERF_HOME=/nfs/home/ci-runner/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV | |
echo "WAVE_HOME=/nfs/home/ci-runner/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV | |
mkdir -p /nfs/home/ci-runner/xs-perf/${HEAD_SHA} | |
mkdir -p /nfs/home/ci-runner/xs-wave/${HEAD_SHA} | |
- name: clean up | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --clean | |
- name: Build MC EMU | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build \ | |
--num-cores 2 \ | |
--dramsim3 /nfs/home/share/ci-workloads/DRAMsim3 \ | |
--with-dramsim3 --threads 16 | |
- name: MC Test | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --numa --diff ./ready-to-run/riscv64-nemu-interpreter-dual-so --ci mc-tests 2> /dev/zero | |
- name: SMP Linux | |
run: | | |
python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --wave-dump $WAVE_HOME --threads 16 --numa --diff ./ready-to-run/riscv64-nemu-interpreter-dual-so --ci linux-hello-smp 2> /dev/zero | |
# simv-basics: | |
# runs-on: bosc | |
# continue-on-error: false | |
# timeout-minutes: 900 | |
# name: SIMV - Basics | |
# steps: | |
# - uses: actions/checkout@v2 | |
# with: | |
# submodules: 'recursive' | |
# - name: set env | |
# run: | | |
# export HEAD_SHA=${{ github.run_number }} | |
# echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV | |
# echo "NEMU_HOME=/nfs/home/share/ci-workloads/NEMU" >> $GITHUB_ENV | |
# echo "AM_HOME=/nfs/home/share/ci-workloads/nexus-am" >> $GITHUB_ENV | |
# echo "PERF_HOME=/nfs/home/ci-runner/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV | |
# echo "WAVE_HOME=/nfs/home/ci-runner/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV | |
# mkdir -p /nfs/home/ci-runner/xs-perf/${HEAD_SHA} | |
# mkdir -p /nfs/home/ci-runner/xs-wave/${HEAD_SHA} | |
# - name: clean up | |
# run: | | |
# python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --clean | |
# - name: Remote Connection Test | |
# run: | | |
# ssh -tt 172.28.10.101 "echo test-ok" | |
# - name: Generate Verilog for VCS | |
# run: | | |
# python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --vcs-gen --release | |
# - name: Build SIMV on Remote | |
# run: | | |
# ssh -tt 172.28.10.101 "python3 `echo $GITHUB_WORKSPACE`/scripts/xiangshan.py --vcs-build --release" | |
# - name: Basic Test - cputest | |
# run: | | |
# ssh -tt 172.28.10.101 "python3 `echo $GITHUB_WORKSPACE`/scripts/xiangshan.py --ci-vcs cputest --am=/nfs/home/share/ci-workloads/nexus-am/" 2> /dev/zero | |
# - name: Simple Test - CoreMark | |
# run: | | |
# ssh -tt 172.28.10.101 "python3 `echo $GITHUB_WORKSPACE`/scripts/xiangshan.py --ci-vcs coremark --am=/nfs/home/share/ci-workloads/nexus-am/ --timeout 1800" 2> /dev/zero | |
# - name: System Test - Linux | |
# run: | | |
# ssh -tt 172.28.10.101 "python3 `echo $GITHUB_WORKSPACE`/scripts/xiangshan.py --ci-vcs linux-hello --timeout 7200" 2> /dev/zero |