Immutable Kotlin/JVM RV32I processor simulator with a Ktor backend and a React frontend for benchmark sweep experiments.
The repository ships the Kotlin simulator, web app, and bundled benchmark programs directly.
- JDK 21
- Node.js and npm
riscv64-unknown-elf-gccriscv64-unknown-elf-objcopy
The backend compiles the bundled benchmark C programs on demand, so the RISC-V toolchain needs to be on PATH.
Run the backend and use the frontend it serves:
./gradlew runThen open:
http://localhost:8080
The Ktor server serves both:
- the JSON API under
/api - the built frontend under
/
The frontend lets you:
- choose a bundled benchmark program
- configure a baseline processor
- sweep one processor parameter across a numeric range
- plot parameter value on the X axis against average instructions per cycle on the Y axis
./pre-commit./gradlew runsrc/main/kotlin/webcontains the Ktor server, API wiring, experiment service, and benchmark-source endpoints.frontend/contains the React/Vite UI.src/main/resources/benchmark_kernelscontains the bundled C examples that can be compiled and run through the simulator.