Dhrystone
Dhrystone is a long-standing synthetic benchmark written in C. The reference distribution maintained as a public repository preserves the historical versions of Reinhold P. Weicker's original benchmark, providing a stable, reproducible artifact that downstream projects can build and run unchanged across toolchains.
Origin and distribution
- Authored by Reinhold P. Weicker.
- Distributed as a C-language project, with historical revisions preserved in a public source repository (153 stars, 82 forks at the cited snapshot, updated 2026-06-23).
Role in processor verification
Dhrystone is commonly deployed alongside other lightweight benchmarks to gauge software–hardware integration and raw performance numbers on new silicon. In contemporary RISC-V verification methodologies it is grouped with CoreMark as a "real-world benchmark" stage that complements directed compliance suites and constrained-random stress generation:
- Real-world benchmarking phase: Dhrystone (and CoreMark) are executed to assess performance and software–hardware integration, in addition to booting operating-system images such as FreeRTOS and Linux.
- This phase is interleaved with directed testing against
riscv-testsandriscv-arch-testsfor ISA compliance, and with RISCV-DV-generated constrained-random assembly programs that probe edge cases such as misaligned instructions, register dependencies, pipeline hazards, memory-access violations, and unhandled interrupts. - A Jenkins-based CI pipeline automates regression runs and scales randomized test generation against UVM-based functional-coverage targets until coverage criteria are satisfied.
In that flow, Dhrystone is positioned as a quick, widely understood performance metric whose output (e.g., DMIPS/MHz) is comparable across many cores, while CoreMark provides a complementary synthetic workload.
Related techniques
Dhrystone implements the real-world benchmarking technique used in modern CPU/SoC verification strategies. It is typically combined with CoreMark and OS-boot tests rather than used in isolation.