Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 56 additions & 24 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
name: Benchmarks

on:
push:
paths:
- "rtlmeter_tests/**"
- "cocotb_tests/**"
- "run_benchmarks.py"
- ".github/workflows/benchmarks.yml"
pull_request:
paths:
- "rtlmeter_tests/**"
- "cocotb_tests/**"
- "run_benchmarks.py"
- ".github/workflows/benchmarks.yml"
workflow_dispatch:
inputs:
ryusim_version:
Expand All @@ -22,38 +10,82 @@ on:

jobs:
benchmark:
timeout-minutes: 240
runs-on: ${{ matrix.os }}
container: ${{ matrix.container || '' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: ["3.11"]
include:
- distro: ubuntu-24.04
os: ubuntu-24.04
- distro: ubuntu-22.04
os: ubuntu-22.04
- distro: debian-12
os: ubuntu-latest
container: debian:12
pip_flags: "--break-system-packages"
- distro: rocky-9
os: ubuntu-latest
container: rockylinux:9
- distro: fedora-40
os: ubuntu-latest
container: fedora:40
pip_flags: "--break-system-packages"
steps:
- name: Install base packages (Debian 12)
if: matrix.container == 'debian:12'
run: |
apt-get update
apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build verilator zlib1g-dev libssl-dev wget gnupg lsb-release software-properties-common
wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18
ln -sf /usr/bin/clang-18 /usr/bin/clang
ln -sf /usr/bin/clang++-18 /usr/bin/clang++

- name: Install base packages (Rocky 9)
if: matrix.container == 'rockylinux:9'
run: |
dnf install -y epel-release
/usr/bin/crb enable
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel

- name: Install base packages (Fedora 40)
if: matrix.container == 'fedora:40'
run: |
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python (native runners)
if: ${{ !matrix.container }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
python-version: "3.11"

- name: Install system dependencies (native Ubuntu)
if: ${{ !matrix.container }}
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true
sudo apt-get update
sudo apt-get install -y cmake ninja-build verilator zlib1g-dev libssl-dev libstdc++-13-dev wget gnupg lsb-release software-properties-common
wget -qO- https://apt.llvm.org/llvm.sh | sudo bash -s -- 18
sudo ln -sf /usr/bin/clang-18 /usr/bin/clang
sudo ln -sf /usr/bin/clang++-18 /usr/bin/clang++

- name: Install RyuSim
run: sudo bash setup_ryusim.sh
run: bash setup_ryusim.sh
env:
RYUSIM_VERSION: ${{ inputs.ryusim_version }}

- name: Install Python dependencies
run: pip install -r requirements.txt

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator
run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt

- name: Run benchmarks
run: python -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.os }}.json
run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.distro }}.json

- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: benchmark-results-${{ matrix.os }}
name: benchmark-results-${{ matrix.distro }}
path: results/
retention-days: 30
63 changes: 51 additions & 12 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,39 +13,78 @@ on:
jobs:
validate:
runs-on: ${{ matrix.os }}
container: ${{ matrix.container || '' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: ["3.11"]
include:
- distro: ubuntu-24.04
os: ubuntu-24.04
- distro: ubuntu-22.04
os: ubuntu-22.04
- distro: debian-12
os: ubuntu-latest
container: debian:12
pip_flags: "--break-system-packages"
- distro: rocky-9
os: ubuntu-latest
container: rockylinux:9
- distro: fedora-40
os: ubuntu-latest
container: fedora:40
pip_flags: "--break-system-packages"
steps:
- name: Install base packages (Debian 12)
if: matrix.container == 'debian:12'
run: |
apt-get update
apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev

- name: Install base packages (Rocky 9)
if: matrix.container == 'rockylinux:9'
run: |
dnf install -y epel-release
/usr/bin/crb enable
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel

- name: Install base packages (Fedora 40)
if: matrix.container == 'fedora:40'
run: |
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python (native runners)
if: ${{ !matrix.container }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
python-version: "3.11"

- name: Install system dependencies (native Ubuntu)
if: ${{ !matrix.container }}
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true
sudo apt-get update
sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev

- name: Install RyuSim
run: sudo bash setup_ryusim.sh
run: bash setup_ryusim.sh
env:
RYUSIM_VERSION: ${{ inputs.ryusim_version }}

- name: Install Python dependencies
run: pip install -r requirements.txt

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator
run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt

- name: Run benchmarks
run: python -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.os }}.json
run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.distro }}.json

- name: Run SV construct tests
run: python -u run_tests.py --all --level 2 --verbose --output results/sv-tests-nightly-${{ matrix.os }}.json
run: python3 -u run_tests.py --all --level 2 --verbose --output results/sv-tests-nightly-${{ matrix.distro }}.json

- name: Upload nightly results
uses: actions/upload-artifact@v4
with:
name: nightly-results-${{ matrix.os }}
name: nightly-results-${{ matrix.distro }}
path: results/
retention-days: 30
69 changes: 51 additions & 18 deletions .github/workflows/sv-tests.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
name: SV Construct Tests

on:
push:
paths:
- "uhdm_tests/**"
pull_request:
paths:
- "uhdm_tests/**"
workflow_dispatch:
inputs:
ryusim_version:
Expand All @@ -21,41 +15,80 @@ on:
jobs:
test:
runs-on: ${{ matrix.os }}
container: ${{ matrix.container || '' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: ["3.11"]
include:
- distro: ubuntu-24.04
os: ubuntu-24.04
- distro: ubuntu-22.04
os: ubuntu-22.04
- distro: debian-12
os: ubuntu-latest
container: debian:12
pip_flags: "--break-system-packages"
- distro: rocky-9
os: ubuntu-latest
container: rockylinux:9
- distro: fedora-40
os: ubuntu-latest
container: fedora:40
pip_flags: "--break-system-packages"
steps:
- name: Install base packages (Debian 12)
if: matrix.container == 'debian:12'
run: |
apt-get update
apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev

- name: Install base packages (Rocky 9)
if: matrix.container == 'rockylinux:9'
run: |
dnf install -y epel-release
/usr/bin/crb enable
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel

- name: Install base packages (Fedora 40)
if: matrix.container == 'fedora:40'
run: |
dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python (native runners)
if: ${{ !matrix.container }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
python-version: "3.11"

- name: Install system dependencies (native Ubuntu)
if: ${{ !matrix.container }}
run: |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true
sudo apt-get update
sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev

- name: Install RyuSim
run: sudo bash setup_ryusim.sh
run: bash setup_ryusim.sh
env:
RYUSIM_VERSION: ${{ inputs.ryusim_version }}

- name: Install Python dependencies
run: pip install -r requirements.txt

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator
run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt

- name: Run SV construct tests
run: |
if [ "${{ inputs.category }}" = "all" ] || [ -z "${{ inputs.category }}" ]; then
python -u run_tests.py --all --level 1 --verbose --output results/sv-tests-${{ matrix.os }}.json
python3 -u run_tests.py --all --level 1 --verbose --output results/sv-tests-${{ matrix.distro }}.json
else
python -u run_tests.py --category ${{ inputs.category }} --level 1 --verbose --output results/sv-tests-${{ matrix.os }}.json
python3 -u run_tests.py --category ${{ inputs.category }} --level 1 --verbose --output results/sv-tests-${{ matrix.distro }}.json
fi

- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: sv-test-results-${{ matrix.os }}
name: sv-test-results-${{ matrix.distro }}
path: results/
retention-days: 30
1 change: 1 addition & 0 deletions rtlmeter_tests/VeeR-EL2/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ source: rtlmeter
tier: 1
description: "Western Digital VeeR EL2 — production RISC-V RV32IMC core (CHIPS Alliance)"
top_module: veer_wrapper
timeout: 1800
upstream:
repository: https://github.com/chipsalliance/Cores-VeeR-EL2.git
revision: c5c004589ee0a308b63278ee609e1597f61a4143
Expand Down
2 changes: 1 addition & 1 deletion rtlmeter_tests/XuanTie-C906/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: XuanTie-C906
source: rtlmeter
tier: 1
description: "T-Head XuanTie C906 -- mid-range RISC-V RV64GC application core (Alibaba T-Head)"
timeout: 1200 # C906 is large (284 .v files) — needs ~15min to compile on CI runners
timeout: 2400 # C906 is large (284 .v files) — needs ~15min to compile on CI runners
top_module: soc
upstream:
repository: https://github.com/XUANTIE-RV/openc906.git
Expand Down
2 changes: 1 addition & 1 deletion rtlmeter_tests/XuanTie-C910/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: XuanTie-C910
source: rtlmeter
tier: 1
description: "T-Head XuanTie C910 -- high-performance RISC-V RV64GC multi-issue application core (Alibaba T-Head)"
timeout: 3600 # C910 is very large — needs ~30min+ to compile on CI runners
timeout: 4600 # C910 is very large — needs ~30min+ to compile on CI runners
top_module: soc
upstream:
repository: https://github.com/XUANTIE-RV/openc910.git
Expand Down
Loading