Skip to content

Commit

Permalink
Add Chipyard benchmarks to CI
Browse files Browse the repository at this point in the history
  • Loading branch information
mczyz-antmicro committed Jan 24, 2024
1 parent 50a41b0 commit c7bd105
Show file tree
Hide file tree
Showing 3 changed files with 162 additions and 0 deletions.
96 changes: 96 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Chipyard Megaboom Benchmark

on:
workflow_dispatch:
push:
pull_request:

jobs:
smoke-tests:
name: Smoke Test
runs-on: ubuntu-latest
container:
image: ghcr.io/antmicro/megaboom-cpu-benchmarking:latest
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: "noninteractive"
steps:
- name: Smoke test
id: smoke_test
run: |
echo "Smoke test"
# pushd tests
# make -j`nproc`
# popd
binary-tests:
name: Binary test
runs-on: ubuntu-latest
container:
image: ghcr.io/antmicro/megaboom-cpu-benchmarking:latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
CONFIG: ["RocketConfig", "MegaBoomConfig"]
BINARY: ["../../tests/hello.riscv", "../../software/coremark/riscv-coremark/coremark.bare.riscv"]
env:
DEBIAN_FRONTEND: "noninteractive"
steps:
- name: Binary test
id: binary_test
run: |
echo "Binary test"
# source tools/bin/micromamba.rc
# cd chipyard
# source env.sh
# pushd sims/verilator
# make run-binary CONFIG=${CONFIG} BINARY=${BINARY}
# popd
coremark:
name: Coremark
runs-on: ubuntu-latest
container:
image: ghcr.io/antmicro/megaboom-cpu-benchmarking:latest
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: "noninteractive"
steps:
- name: Coremark
run: |
echo "Coremark"
# git submodule update --init --recursive software/coremark
# pushd software/coremark
# cat build.sh
# ls -hal riscv-coremark/
# cat riscv-coremark/build-coremark.sh
# ./build.sh
# popd
verilator_configs:
name: Verilator ChipConfig
runs-on: ubuntu-latest
container:
image: ghcr.io/antmicro/megaboom-cpu-benchmarking:latest
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: "noninteractive"
strategy:
fail-fast: false
matrix:
CONFIG: ["RocketConfig", "MegaBoomConfig"]
steps:
- name: Verilator ${{ matrix.CONFIG }}
run: |
echo "Verilator config"
# cd chipyard
# source env.sh
# pushd sims/verilator
# make CONFIG=${{ matrix.CONFIG }} -j`nproc`
# popd
31 changes: 31 additions & 0 deletions .github/workflows/ci_docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: docker update

on:
workflow_dispatch:
# push:
# pull_request:


jobs:
docker:
runs-on: ubuntu-latest
env:
IMAGE: ghcr.io/antmicro/megaboom-cpu-benchmarking
steps:
- uses: actions/checkout@v3
- name: Build docker image
run: |
docker build -t "${{ env.IMAGE }}" .
- name: Login to GitHub Container Registry (GHCR)
if: github.event_name != 'pull_request' && github.repository == 'antmicro/megaboom-cpu-benchmarking'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: gha
password: ${{ github.token }}

- name: Push container image to GitHub Container Registry (GHCR)
if: github.event_name != 'pull_request' && github.repository == 'antmicro/megaboom-cpu-benchmarking'
run: docker push $IMAGE

35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Chipyard setup

FROM ubuntu:22.04

SHELL ["/bin/bash", "-c"]

# Install dependencies for ubuntu-req.sh
RUN apt -qqy update && \
DEBIAN_FRONTEND=noninteractive apt install -qqy --no-install-recommends \
ca-certificates build-essential gcc g++ python3 git cmake autoconf bison flex help2man wget
RUN update-ca-certificates

WORKDIR /root
RUN apt -qqy update && \
DEBIAN_FRONTEND=noninteractive apt install -qqy --no-install-recommends \
ca-certificates curl build-essential git sudo pbzip2 kmod
RUN update-ca-certificates

# Install Chipyard and run ubuntu-req.sh to install necessary dependencies
# FIXME: Using a branch, because I updated the install-conda.sh script,
# which is no longer maintained. Fix this in the future.
RUN git clone https://github.com/antmicro/chipyard.git && \
cd chipyard && \
git checkout mczyz/deps

RUN ./chipyard/.github/scripts/install-conda.sh
# RUN source ~/.bashrc
# RUN bash
RUN echo "shell is "$0
RUN ["/bin/bash", "--login", "-c", "conda activate base"]
RUN ["/bin/bash", "--login", "-c", "cd chipyard && ./build-setup.sh riscv-tools -s 6 -s 7 -s 8 -s 9"]
RUN ["/bin/bash", "--login", "-c", "cd chipyard && source ./env.sh"]

ENTRYPOINT ["chipyard/scripts/entrypoint.sh"]

0 comments on commit c7bd105

Please sign in to comment.