feat(xs-nightly): test xiangshan simv with acceleration #36
Workflow file for this run
This file contains hidden or 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
| name: XiangShan Nightly Regression | |
| on: | |
| pull_request: | |
| branches: [ master ] | |
| workflow_dispatch: | |
| schedule: | |
| # 14:00 UTC == 22:00 UTC+8 | |
| - cron: '00 14 * * *' | |
| jobs: | |
| # xiangshan-pldm-sim: | |
| # strategy: | |
| # fail-fast: false | |
| # matrix: | |
| # branch: [ kunminghu-v2, kunminghu-v3 ] | |
| # topo: | |
| # - name: single | |
| # num_cores: 1 | |
| # workload: "$NOOP_HOME/ready-to-run/linux.bin" | |
| # ref: "$NOOP_HOME/ready-to-run/riscv64-nemu-interpreter-so" | |
| # - name: dual | |
| # num_cores: 2 | |
| # workload: "/nfs/home/share/ci-workloads/linux-hello-smp-new/bbl.bin" | |
| # ref: "$NOOP_HOME/ready-to-run/riscv64-nemu-interpreter-dual-so" | |
| # debug_args: [ "--difftest-config ZESNHP" ] | |
| # config: [ DefaultConfig ] | |
| # runs-on: self-hosted | |
| # timeout-minutes: 720 | |
| # name: ${{ matrix.branch }}-${{ matrix.topo.name }} | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - name: Set Env | |
| # run: | | |
| # source /nfs/home/ci-runner/ci-runner-difftest/tools/env.sh | |
| # - name: Prepare XiangShan | |
| # run: | | |
| # cd $GITHUB_WORKSPACE/.. | |
| # NOOP_HOME="$PWD/XiangShan-${{ matrix.branch }}" | |
| # echo "NOOP_HOME=$NOOP_HOME" >> "$GITHUB_ENV" | |
| # if [ ! -d "$NOOP_HOME" ]; then | |
| # git clone -b ${{ matrix.branch }} --single-branch https://github.com/OpenXiangShan/XiangShan.git $NOOP_HOME | |
| # fi | |
| # cd $NOOP_HOME | |
| # git fetch --depth=1 origin ${{ matrix.branch }} | |
| # git checkout ${{ matrix.branch }} | |
| # git reset --hard origin/${{ matrix.branch }} | |
| # rm -rf difftest && make init | |
| # rm -rf difftest && cp -r $GITHUB_WORKSPACE . | |
| # make clean | |
| # - name: Generate Verilog | |
| # run: | | |
| # cd $NOOP_HOME | |
| # make sim-verilog PLDM=1 NUM_CORES=${{ matrix.topo.num_cores }} DEBUG_ARGS="${{ matrix.debug_args }}" CONFIG=${{ matrix.config }} WITH_CHISELDB=0 WITH_CONSTANTIN=0 -j200 | |
| # - name: Build SIMV | |
| # run: | | |
| # cd $NOOP_HOME | |
| # make simv VCS=verilator NUM_CORES=${{ matrix.topo.num_cores }} WITH_CHISELDB=0 WITH_CONSTANTIN=0 DIFFTEST_PERFCNT=1 EMU_THREADS=16 \ | |
| # PGO_WORKLOAD=${{ matrix.topo.workload }} PGO_MAX_CYCLE=400000 LLVM_PROFDATA=llvm-profdata -j200 | |
| # - name: Test with Linux | |
| # run: | | |
| # cd $NOOP_HOME | |
| # ulimit -s 32768 | |
| # ./build/simv +workload=${{ matrix.topo.workload }} +diff=${{ matrix.topo.ref }} 2>&1 | tee pldm.log | |
| xiangshan-fpga-sim: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| branch: [ kunminghu-v3 ] | |
| # branch: [ kunminghu-v2, kunminghu-v3 ] | |
| runs-on: self-hosted | |
| timeout-minutes: 720 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set Env | |
| run: | | |
| source /nfs/home/ci-runner/ci-runner-difftest/tools/env.sh | |
| - name: Prepare XiangShan | |
| run: | | |
| cd $GITHUB_WORKSPACE/.. | |
| NOOP_HOME="$PWD/XiangShan-${{ matrix.branch }}" | |
| echo "NOOP_HOME=$NOOP_HOME" >> "$GITHUB_ENV" | |
| if [ ! -d "$NOOP_HOME" ]; then | |
| git clone -b ${{ matrix.branch }} --single-branch https://github.com/OpenXiangShan/XiangShan.git $NOOP_HOME | |
| fi | |
| cd $NOOP_HOME | |
| git fetch --depth=1 origin ${{ matrix.branch }} | |
| git checkout ${{ matrix.branch }} | |
| git reset --hard origin/${{ matrix.branch }} | |
| rm -rf difftest && make init | |
| rm -rf difftest && cp -r $GITHUB_WORKSPACE . | |
| make clean | |
| - name: Generate Verilog | |
| run: | | |
| cd $NOOP_HOME | |
| make sim-verilog FPGA=1 DEBUG_ARGS="--difftest-config ESBIFDU" CONFIG=FpgaDiffDefaultConfig WITH_CHISELDB=0 WITH_CONSTANTIN=0 -j200 | |
| - name: Build Fpga Host | |
| run: | | |
| cd $NOOP_HOME | |
| make -C difftest fpga-build FPGA=1 FPGA_SIM=1 DIFFTEST_PERFCNT=1 -j200 | |
| - name: Build SIMV | |
| run: | | |
| cd $NOOP_HOME | |
| make simv VCS=verilator FPGA_SIM=1 WITH_CHISELDB=0 WITH_CONSTANTIN=0 DIFFTEST_PERFCNT=1 EMU_THREADS=16 -j200 | |
| - name: Test with Microbench | |
| run: | | |
| cd $NOOP_HOME | |
| ulimit -s 32768 | |
| bash difftest/scripts/fpga_sim/cosim.sh WORKLOAD=./ready-to-run/microbench.bin DIFF=./ready-to-run/riscv64-nemu-interpreter-so | tee fpga-microbench.log | |
| - name: Test with Linux | |
| run: | | |
| cd $NOOP_HOME | |
| ulimit -s 32768 | |
| bash difftest/scripts/fpga_sim/cosim.sh WORKLOAD=./ready-to-run/linux.bin DIFF=./ready-to-run/riscv64-nemu-interpreter-so | tee fpga-linux.log |