No description
Find a file
2024-05-23 17:58:49 +08:00
src Feat: GEMM benchmark. 2024-05-23 17:58:49 +08:00
configuration.nix Feat: QEMU with RISC-V Linux running. 2024-04-25 22:26:16 +08:00
flake.lock Flake: update 20240426 2024-04-26 14:25:26 +08:00
flake.nix Flake: Dependencies & shell prompt. 2024-05-22 10:39:25 +08:00
LICENCE Init LICENCE 2024-04-15 16:40:15 +08:00
README.md Chore: Update README. 2024-05-22 10:37:52 +08:00

OPMark (Prototype of OpenPerf Project)

This Flake give a Qemu RISC-V Linux / Spike bare metal runtime to run benchmark, aim to make test environment reproducible and result fair enough.

Candidate Benchmark Programs

stress-ng - GPL 2.0 Licence

Anybench - MIT Licence

Memory access patterns

Stream access

STREAM - Custom Licence, but Open Source friendly

RRZE-HPC/TheBandwidthBenchmark - MIT Licence

Other patterns

emilk/ram_bench - No Licence

Integer Arithmetic

shaswata56/BenchUtil - WTFPL license

Floating-point Arithmetic

shaswata56/BenchUtil - WTFPL license

Branch Prediction

Verilator Model

Run Built-in QEMU VM

A Nix Flake is provided for convenience, but not necessary dependency in the final project.

With Nix installed, run nix develop to get the reproducible development environment.

Run vm to launch QEMU.

Transplanted

  • Memory Access: STREAM
  • Floating-point Arithmetic: Linpack, Whetstone
  • Utils: soft-fp(cyl), abstract-machine, openlibm
  • Can build: Spike, RISC-V OpenOCD

Roadmap

  • Run Configurable Linux on QEMU RISC-V Platform
  • Basic Benchmark Programs
  • Math Library
  • GEMM
  • Organize Build Scripts
  • More Complex Programs
  • Decide OpenPerf Project File Struct