emu.yml 7.7 KB
Newer Older
L
LinJiawei 已提交
1 2 3 4 5
# This file describes the GitHub Actions workflow for continuous integration of XS Core.
name: EMU Test

on:
  push:
Y
Yinan Xu 已提交
6
    branches: [ master ]
L
LinJiawei 已提交
7 8 9 10
  pull_request:
    branches: [ master ]

jobs:
Y
Yinan Xu 已提交
11
  generate-verilog:
L
LinJiawei 已提交
12
    runs-on: self-hosted
13
    continue-on-error: false
Y
Yinan Xu 已提交
14
    name: Generate Verilog
L
LinJiawei 已提交
15 16
    steps:
      - uses: actions/checkout@v2
Y
Yinan Xu 已提交
17 18
        with:
          submodules: 'recursive'
19 20
      - name: set env
        run: |
21
          export HEAD_SHA=${{ github.run_number }}
22
          echo "NEMU_HOME=/home/ci-runner/xsenv/NEMU" >> $GITHUB_ENV
23 24
          echo "WAVE_HOME=/bigdata/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV
          mkdir -p /bigdata/xs-wave/${HEAD_SHA}
L
LinJiawei 已提交
25
      - name: Check Wiring
26 27
        run:
          bash .github/workflows/check-usage.sh "BoringUtils" $GITHUB_WORKSPACE
Y
Yinan Xu 已提交
28 29
      - name: generate verilog file
        run:
30
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --generate --num-cores 2
31 32 33
      - name: check pc usages
        run:
          python3 $GITHUB_WORKSPACE/.github/workflows/check_pc.py build/XSTop.v
34 35 36 37 38 39 40 41
      - name: build MinimalConfig emu
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build \
            --disable-log --threads 4 --config MinimalConfig
      - name: run MinimalConfig - Linux
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 4 --numa --ci linux-hello 2> perf.log
          cat perf.log | sort
42
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/minimal-linux-hello.vcd
43
  emu-basics:
Y
Yinan Xu 已提交
44
    runs-on: self-hosted
45
    continue-on-error: false
46
    timeout-minutes: 720
47
    name: EMU - Basics
Y
Yinan Xu 已提交
48 49 50 51
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: 'recursive'
52
      - name: set env
L
LinJiawei 已提交
53
        run: |
54
          export HEAD_SHA=${{ github.run_number }}
L
ljw 已提交
55 56
          echo "NEMU_HOME=/home/ci-runner/xsenv/NEMU" >> $GITHUB_ENV
          echo "AM_HOME=/home/ci-runner/xsenv/nexus-am" >> $GITHUB_ENV
57
          echo "PERF_HOME=/bigdata/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV
58
          echo "WAVE_HOME=/bigdata/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV
59
          mkdir -p /bigdata/xs-perf/${HEAD_SHA}
60
          mkdir -p /bigdata/xs-wave/${HEAD_SHA}
L
LinJiawei 已提交
61
      - name: Build EMU
62 63
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build --disable-log --threads 8
64
      - name: Basic Test - cputest
L
LinJiawei 已提交
65
        run: |
66
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --ci cputest 2> /dev/zero
67
      - name: Basic Test - riscv-tests
L
LinJiawei 已提交
68
        run: |
69
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --rvtest /home/ci-runner/xsenv/riscv-tests --ci riscv-tests 2> /dev/zero
70
      - name: Basic Test - misc-tests
Z
zfw 已提交
71
        run: |
72
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --ci misc-tests 2> /dev/zero
73
      - name: Simple Test - microbench
L
LinJiawei 已提交
74
        run: |
75
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --ci microbench 2> perf.log
76
          cat perf.log | sort | tee $PERF_HOME/microbench.log
J
JinYue 已提交
77
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/microbench.vcd
78
      - name: Simple Test - CoreMark
Y
Yinan Xu 已提交
79
        run: |
80 81
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --numa --ci coremark 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/coremark.log
J
JinYue 已提交
82
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/coremark.vcd
83
      - name: System Test - Linux
Y
Yinan Xu 已提交
84
        run: |
85 86
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --numa --ci linux-hello 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/linux.log
J
JinYue 已提交
87
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/linux-hello.vcd
88 89
      - name: Floating-point Test - povray
        run: |
90 91
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 8 --numa --max-instr 5000000 --ci povray 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/povray.log
J
JinYue 已提交
92
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/povray.vcd          
93 94
  emu-performance:
    runs-on: self-hosted
95
    continue-on-error: false
96
    timeout-minutes: 720
97 98 99 100 101
    name: EMU - Performance
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: 'recursive'
102
      - name: set env
103
        run: |
104
          export HEAD_SHA=${{ github.run_number }}
105
          echo "NEMU_HOME=/home/ci-runner/xsenv/NEMU" >> $GITHUB_ENV
106
          echo "AM_HOME=/home/ci-runner/xsenv/nexus-am" >> $GITHUB_ENV
107
          echo "PERF_HOME=/bigdata/xs-perf/${HEAD_SHA}" >> $GITHUB_ENV
108
          echo "WAVE_HOME=/bigdata/xs-wave/${HEAD_SHA}" >> $GITHUB_ENV
109
          mkdir -p /bigdata/xs-perf/${HEAD_SHA}
110
          mkdir -p /bigdata/xs-wave/${HEAD_SHA}
111
      - name: Build EMU
112 113 114 115
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --build \
            --dramsim3 /home/ci-runner/xsenv/DRAMsim3            \
            --disable-log --with-dramsim3 --threads 16
116 117
      - name: SPEC06 Test - mcf
        run: |
118 119
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci mcf 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/mcf.log
J
JinYue 已提交
120
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/mcf.vcd
121 122
      - name: SPEC06 Test - xalancbmk
        run: |
123 124
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci xalancbmk 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/xalancbmk.log
J
JinYue 已提交
125
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/xalancbmk.vcd
126 127
      - name: SPEC06 Test - gcc
        run: |
128 129
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci gcc 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/gcc.log
J
JinYue 已提交
130
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/gcc.vcd
131 132
      - name: SPEC06 Test - namd
        run: |
133 134
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci namd 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/namd.log
J
JinYue 已提交
135
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/namd.vcd
136 137
      - name: SPEC06 Test - milc
        run: |
138 139
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci milc 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/milc.log
J
JinYue 已提交
140
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/milc.vcd
141 142
      - name: SPEC06 Test - lbm
        run: |
143 144
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci lbm 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/lbm.log
J
JinYue 已提交
145
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/lbm.vcd        
146 147
      - name: SPEC06 Test - gromacs
        run: |
148 149
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci gromacs 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/gromacs.log
J
JinYue 已提交
150
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/gromacs.vcd        
151 152 153 154
      - name: SPEC06 Test - wrf
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci wrf 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/wrf.log
J
JinYue 已提交
155
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/wrf.vcd
156 157 158 159
      - name: SPEC06 Test - astar
        run: |
          python3 $GITHUB_WORKSPACE/scripts/xiangshan.py --threads 16 --max-instr 5000000 --numa --ci astar 2> perf.log
          cat perf.log | sort | tee $PERF_HOME/astar.log
J
JinYue 已提交
160 161
          find $GITHUB_WORKSPACE/build -name "*.vcd" | xargs -I {} mv {} $WAVE_HOME/astar.vcd

162