Skip to content

CPU Benchmarking

CPU Benchmarking #307

Workflow file for this run

name: CPU Benchmarking
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * 0'
jobs:
benching:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
cpu-type:
- cv32e40p
- cv32e41p
- cva5
- femtorv
- firev
- ibex
- lm32
- marocchino
- minerva
- mor1kx
- naxriscv
- neorv32
- picorv32
- vexriscv
- vexriscv_smp
steps:
- {uses: actions/checkout@v2, with: { submodules: true }}
- uses: ./.github/benching
with:
cpu-type: ${{ matrix.cpu-type }}
benching_blackparrot:
runs-on: ubuntu-20.04
steps:
- { uses: actions/checkout@v2, with: { submodules: true } }
- uses: ./.github/benching
with:
cpu-type: "blackparrot"
cpu-variant: "sim"
integrated-sram-size: 32768
# benching_cva6:
# runs-on: ubuntu-20.04
# steps:
# - { uses: actions/checkout@v2, with: { submodules: true } }
# - uses: ./.github/benching
# with:
# cpu-type: "cva6"
# integrated-sram-size: 32768
benching_microwatt:
runs-on: ubuntu-20.04
steps:
- { uses: actions/checkout@v2, with: { submodules: true } }
- uses: ./.github/benching
with:
cpu-type: "microwatt"
cpu-variant: "standard+ghdl"
integrated-sram-size: 32768
# benching_openc906:
# runs-on: ubuntu-20.04
# steps:
# - { uses: actions/checkout@v2, with: { submodules: true } }
# - uses: ./.github/benching
# with:
# cpu-type: "openc906"
# integrated-sram-size: 32768
# rocket:
# runs-on: ubuntu-20.04
# steps:
# - { uses: actions/checkout@v2, with: { submodules: true } }
# - uses: ./.github/benching
# with:
# cpu-type: "rocket"
# integrated-sram-size: 32768
# use-cache: true
benching_serv:
runs-on: ubuntu-20.04
steps:
- { uses: actions/checkout@v2, with: { submodules: true } }
- uses: ./.github/benching
with:
cpu-type: "serv"
threads: 1
table_maker:
runs-on: ubuntu-20.04
needs: [benching, benching_blackparrot, benching_microwatt, benching_serv]
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- name: Result aggregation
run: |
sudo apt-get update
sudo apt-get -y install python3 python3-setuptools python3-pip git grep make
sudo pip3 install tabulate sphinx jinja2
sudo pip3 install -r docs/requirements.txt
./table_maker.py --dirs \
benching/cv32e40p_standard_32_false \
benching/cv32e41p_standard_32_false \
benching/cva5_standard_32_false \
benching/femtorv_standard_32_false \
benching/firev_standard_32_false \
benching/ibex_standard_32_false \
benching/lm32_standard_32_false \
benching/marocchino_standard_32_false \
benching/minerva_standard_32_false \
benching/mor1kx_standard_32_false \
benching/naxriscv_standard_32_false \
benching/neorv32_standard_32_false \
benching/picorv32_standard_32_false \
benching/vexriscv_standard_32_false \
benching/vexriscv_smp_standard_32_false \
benching_blackparrot/blackparrot_sim_32_false \
benching_microwatt/microwatt_standard\+ghdl_32_false \
benching_serv/serv_standard_32_false \
--out-dir docs/source --templates-dir docs/source/templates
cd docs
make html
- uses: actions/upload-artifact@v2
with:
name: gh-page
path: docs/build/html
- uses: actions/upload-artifact@v2
with:
name: aggregated-results
path: |
docs/build/*
- name: Deploy to gh-pages
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
run: |
cd docs/build/html
touch .nojekyll
git init
cp ../../../.git/config ./.git/config
git add .
git config --local user.email "push@gha"
git config --local user.name "GHA"
git commit -am "update ${{ github.sha }}"
git push -u origin +HEAD:gh-pages
rm -rf .git