diff --git a/.github/workflows/rtlmeter.yml b/.github/workflows/rtlmeter.yml index 462380b32..b24f61088 100644 --- a/.github/workflows/rtlmeter.yml +++ b/.github/workflows/rtlmeter.yml @@ -74,32 +74,32 @@ jobs: max-parallel: ${{ github.event == 'schedule' && 2 || 7 }} matrix: cases: - - "BlackParrot:1x1:*" - - "BlackParrot:4x4:*" - - "Caliptra:default:*" - - "NVDLA:*" - - "OpenPiton:1x1:*" - - "OpenPiton:4x4:*" - - "OpenTitan:*" - - "VeeR-EH1:asic*" + #- "BlackParrot:1x1:*" + #- "BlackParrot:4x4:*" + #- "Caliptra:default:*" + #- "NVDLA:*" + #- "OpenPiton:1x1:*" + #- "OpenPiton:4x4:*" + #- "OpenTitan:*" + #- "VeeR-EH1:asic*" - "VeeR-EH1:default*" - - "VeeR-EH1:hiperf*" - - "VeeR-EH2:asic*" - - "VeeR-EH2:default*" - - "VeeR-EH2:hiperf*" - - "VeeR-EL2:asic*" - - "VeeR-EL2:default*" - - "VeeR-EL2:hiperf*" - - "Vortex:mini:*" - - "Vortex:sane:*" - - "XiangShan:default-chisel3:* !*:linux" - - "XiangShan:default-chisel6:* !*:linux" - - "XiangShan:mini-chisel3:* !*:linux" - - "XiangShan:mini-chisel6:* !*:linux" + #- "VeeR-EH1:hiperf*" + #- "VeeR-EH2:asic*" + #- "VeeR-EH2:default*" + #- "VeeR-EH2:hiperf*" + #- "VeeR-EL2:asic*" + #- "VeeR-EL2:default*" + #- "VeeR-EL2:hiperf*" + #- "Vortex:mini:*" + #- "Vortex:sane:*" + #- "XiangShan:default-chisel3:* !*:linux" + #- "XiangShan:default-chisel6:* !*:linux" + #- "XiangShan:mini-chisel3:* !*:linux" + #- "XiangShan:mini-chisel6:* !*:linux" - "XuanTie-E902:*" - - "XuanTie-E906:*" - - "XuanTie-C906:*" - - "XuanTie-C910:*" + #- "XuanTie-E906:*" + #- "XuanTie-C906:*" + #- "XuanTie-C910:*" run-clang: name: Run Clang | ${{ matrix.cases }} @@ -118,32 +118,32 @@ jobs: max-parallel: ${{ github.event == 'schedule' && 2 || 7 }} matrix: cases: - - "BlackParrot:1x1:*" - - "BlackParrot:4x4:*" - - "Caliptra:default:*" - - "NVDLA:*" - - "OpenPiton:1x1:*" - - "OpenPiton:4x4:*" - - "OpenTitan:*" - - "VeeR-EH1:asic*" + #- "BlackParrot:1x1:*" + #- "BlackParrot:4x4:*" + #- "Caliptra:default:*" + #- "NVDLA:*" + #- "OpenPiton:1x1:*" + #- "OpenPiton:4x4:*" + #- "OpenTitan:*" + #- "VeeR-EH1:asic*" - "VeeR-EH1:default*" - - "VeeR-EH1:hiperf*" - - "VeeR-EH2:asic*" - - "VeeR-EH2:default*" - - "VeeR-EH2:hiperf*" - - "VeeR-EL2:asic*" - - "VeeR-EL2:default*" - - "VeeR-EL2:hiperf*" - - "Vortex:mini:*" - - "Vortex:sane:*" - - "XiangShan:default-chisel3:* !*:linux" - - "XiangShan:default-chisel6:* !*:linux" - - "XiangShan:mini-chisel3:* !*:linux" - - "XiangShan:mini-chisel6:* !*:linux" + #- "VeeR-EH1:hiperf*" + #- "VeeR-EH2:asic*" + #- "VeeR-EH2:default*" + #- "VeeR-EH2:hiperf*" + #- "VeeR-EL2:asic*" + #- "VeeR-EL2:default*" + #- "VeeR-EL2:hiperf*" + #- "Vortex:mini:*" + #- "Vortex:sane:*" + #- "XiangShan:default-chisel3:* !*:linux" + #- "XiangShan:default-chisel6:* !*:linux" + #- "XiangShan:mini-chisel3:* !*:linux" + #- "XiangShan:mini-chisel6:* !*:linux" - "XuanTie-E902:*" - - "XuanTie-E906:*" - - "XuanTie-C906:*" - - "XuanTie-C910:*" + #- "XuanTie-E906:*" + #- "XuanTie-C906:*" + #- "XuanTie-C910:*" run-gcc-hier: name: Run GCC hier | ${{ matrix.cases }} @@ -163,13 +163,13 @@ jobs: matrix: cases: - "BlackParrot:1x1:* !-hier" - - "BlackParrot:4x4:* !-hier" - - "NVDLA:* !-hier" - - "OpenPiton:1x1:* !-hier" - - "OpenPiton:4x4:* !-hier" - - "OpenPiton:8x8:* !-hier" - - "OpenPiton:16x16:dhry !-hier" - - "XuanTie-C910:* !-hier" + #- "BlackParrot:4x4:* !-hier" + #- "NVDLA:* !-hier" + #- "OpenPiton:1x1:* !-hier" + #- "OpenPiton:4x4:* !-hier" + #- "OpenPiton:8x8:* !-hier" + #- "OpenPiton:16x16:dhry !-hier" + #- "XuanTie-C910:* !-hier" combine-results: name: Combine results @@ -311,6 +311,7 @@ jobs: - name: Compare results working-directory: rtlmeter run: | + set -x for tag in gcc clang gcc-hier; do ADATA=../nightly-results/all-results-${tag}.json BDATA=../all-results/all-results-${tag}.json @@ -320,12 +321,16 @@ jobs: if [[ ! -e $ADATA ]]; then continue fi - ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "verilate" --metrics "elapsed memory" $ADATA $BDATA > ../verilate-${tag}.txt + metrics="speed elapsed memory cpu codeSize" + ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "verilate" --metrics "$metrics" $ADATA $BDATA > ../verilate-${tag}.txt cat ../verilate-${tag}.txt - ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "execute" --metrics "speed memory elapsed" $ADATA $BDATA > ../execute-${tag}.txt + ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "execute" --metrics "$metrics" $ADATA $BDATA > ../execute-${tag}.txt cat ../execute-${tag}.txt - ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "cppbuild" --metrics "elapsed memory cpu codeSize" $ADATA $BDATA > ../cppbuild-${tag}.txt + ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "cppbuild" --metrics "$metrics" $ADATA $BDATA > ../cppbuild-${tag}.txt cat ../cppbuild-${tag}.txt + ./rtlmeter compare --cases '* !Example:* !*:hello' --steps "verilate execute cppbuild" --metrics "$metrics" $ADATA $BDATA | \ + awk -v RS= -v tag=${tag} '{ f = sprintf("../summary-%s.txt",tag); print > f; close(f); }' + cat ../summary-${tag}.txt done - name: Create report env: @@ -347,15 +352,25 @@ jobs: echo -n "" >> report.txt jq -rj ".[0].runName" all-results/all-results-${tag}.json >> report.txt echo "" >> report.txt + # Summary section + echo "
" >> report.txt + echo "Summary" >> report.txt + echo '
' >> report.txt
+            tail -n +2 summary-${tag}.txt >> report.txt
+            echo '
' >> report.txt + echo "
" >> report.txt + # Details section awk -v RS= -v tag=${tag} '{print > sprintf("frag-%02d-verilate-%s.txt",NR,tag)}' verilate-${tag}.txt awk -v RS= -v tag=${tag} '{print > sprintf("frag-%02d-execute-%s.txt" ,NR,tag)}' execute-${tag}.txt - awk -v RS= -v tag=${tag} '{print > sprintf("frag-$02d-cppbuild-%s.txt",NR,tag)}' cppbuild-${tag}.txt + awk -v RS= -v tag=${tag} '{print > sprintf("frag-%02d-cppbuild-%s.txt",NR,tag)}' cppbuild-${tag}.txt + ls -1 + rm -f $(ls -1 frag-*-verilate-${tag}.txt | sort | tail -1) + rm -f $(ls -1 frag-*-execute-${tag}.txt | sort | tail -1) + rm -f $(ls -1 frag-*-cppbuild-${tag}.txt | sort | tail -1) + echo "
" >> report.txt + echo "Details" >> report.txt for f in $(ls -1 frag-*-verilate-${tag}.txt | sort) $(ls -1 frag-*-execute-${tag}.txt | sort) $(ls -1 frag-*-cppbuild-${tag}.txt | sort); do - if [[ $f == frag-01-verilate-${tag}.txt || $f == frag-01-execute-${tag}.txt ]]; then - echo "
" >> report.txt - else - echo "
" >> report.txt - fi + echo "
" >> report.txt echo -n "" >> report.txt head -n 1 $f | tr -d '\n' >> report.txt echo "" >> report.txt @@ -365,6 +380,7 @@ jobs: echo "
" >> report.txt done echo "
" >> report.txt + echo "
" >> report.txt done cat report.txt - name: Upload report