Benchmark Suite
Definition
A benchmark suite is a curated collection of programs, datasets, or test cases assembled to evaluate the performance, accuracy, or capabilities of a software system, analysis tool, or algorithm. Benchmark suites are used across diverse areas of computer science, including hardware functional verification, Electronic Design Automation (EDA) tool testing, Android security analysis, program synthesis, and the early-stage performance evaluation of secure processor architectures.
Common Characteristics
- Purpose: Provide a standardized basis for comparing tools, measuring improvements, and identifying gaps in coverage.
- Typical size: Many existing suites "consist of only tens of programs" and are "usually too small to build sufficiently large and diverse training sets for ML models" [1].
- Construction: Suites may be hand-crafted (e.g., from real-world vulnerabilities, programming katas, coursework, or HDL programs mined from open-source repositories) or augmented with automatically generated programs when larger, more controlled, or architecture-specific inputs are required.
- Coverage scope: A suite may target general-purpose workloads (e.g., SPEC, PARSEC, Embench IoT) or be specialized for a particular mechanism such as memory-safety primitives or HDL language constructs, in which case portability across architectures or tools is reduced [5437dd17-0767-4433-819f-3fabe16573a9, 2b223653-812f-4f89-a001-1a9053bfdc38].
Use Cases in the Evidence
Hardware Functional Verification
In hardware design, benchmark suites serve as one of the workloads used to stress-test processor and SoC designs as part of the broader functional verification effort. Conventional benchmark workloads such as CoreMark, SPEC, and the Linux kernel are used alongside custom-designed tests to exercise different parts of a hardware design and to extract microarchitectural information from the RTL during execution [2]. Cycle-accurate RTL simulation is the recurring element in the hardware design process and benchmark suites are part of the infrastructure supporting both functional verification and performance optimization [b66bc6b3-d8ca-4b4f-90d1-131aacf9457a, e9708e27-d442-4681-b37e-52269687f533].
Electronic Design Automation (EDA) Tool Testing
EDA tools such as Yosys, Verilator, Icarus Verilog, ModelSim, Xcelium, and Jasper Formal rely on benchmarks—programs written in Hardware Description Languages (HDLs) like Verilog, SystemVerilog, and VHDL—to enable early bug discovery, performance optimization, compliance verification, and general validation [f1c73d8d-b22f-4d1c-9921-aea6c16740f2, 6cecedc0-f8b6-4f2f-9e55-b56ff4cfa82b].
Existing static benchmark collections, including ChiBench, are limited to a predefined set of designs and may not exercise the full range of language constructs. For example, the Verilog-2005 grammar (IEEE 1364-2005) contains many production rules, and existing top-down fuzzers (Verismith, TransFuzz, VlogHammer) exercise only a fraction of them—fewer than 40% in some measurements [3].
The ChiBench corpus is described in the evidence as "a collection of Verilog programs meticulously mined from diverse open-source repositories, serving as our primary training dataset" for the ChiGen Verilog fuzzer [4]. ChiGen uses ChiBench to derive a probabilistic grammar: production rules are extracted via Verible's parser trace, rule frequencies are aggregated as k-grams conditioned on the k preceding rules, and the resulting JSON file drives syntax generation [4]. In evaluation, ChiGen-generated designs approach ChiBench's diversity (using 406 unique production rules out of 456 available in the Verible grammar for 10,000 designs), while Verismith, TransFuzz, and VlogHammer use only 179, 151, and 137 unique rules respectively [5].
Because ChiBench is a static collection, ChiGen complements it by dynamically generating new Verilog designs and integrating them into a growing library of programs, broadening the testing landscape for hardware tools [3].
Early-Stage Evaluation of Secure Architectures (CHERI)
The CHERI capability-based architecture provides fine-grained spatial and temporal memory safety for C/C++ programs, but introduces additional hardware structures (capability registers, tagged memory, CHERI-specific instructions) that may affect performance and energy efficiency. Evaluating CHERI-enabled architectures therefore requires benchmarks that explicitly exercise security mechanisms such as bounds checks, tag manipulation, and capability register operations [5437dd17-0767-4433-819f-3fabe16573a9, 9c53fdab-ffb8-4976-b699-06c480659d6d].
Existing mainstream suites such as SPEC, PARSEC, and Embench IoT target general-purpose processors and do not exercise memory-safety mechanisms. Studies of Intel Memory Protection Extensions, ARM Memory Tagging Extension (MTE), and other tagged-memory designs have instead relied on specialized benchmarks that focus on bounds checks, tag manipulation, and fault-handling latency; such benchmarks are typically tailored to a single mechanism and are difficult to reuse across architectures [6].
For CHERI specifically, the most prominent prior benchmarking effort targets the Arm Morello platform and is based on porting existing C/C++ applications to CHERI. While effective at the application level, this approach depends on CheriBSD and assumes a mature execution environment, limiting its applicability for resource-constrained systems and early-stage design-space exploration [5437dd17-0767-4433-819f-3fabe16573a9, 2b223653-812f-4f89-a001-1a9053bfdc38].
The Das et al. paper (DDECS 2026) addresses this gap by introducing a security-aware benchmark generation framework for CHERI-based RISC-V systems. The framework:
- Uses Testing with Random Instruction Generation (TestRIG) to request raw instruction streams with configurable distributions.
- Post-processes those streams with a CHERI-specific algorithm to produce security-aware instruction streams that execute correctly under CHERI's capability and tagging rules (e.g., rewriting immediates of jump instructions and capability registers of
jalr.cap/cinvoke). - Combines the processed streams with platform-specific bootstrap code to build executable benchmarks available early in development.
- Demonstrates applicability by evaluating an In-Memory Computing (IMC) acceleration of CHERI tagged memory on a RISC-V Virtual Prototype (VP), revealing best-case speed-ups of 6%–11% over an unaccelerated baseline, with diminishing benefits above approximately 20 ns IMC latency [5437dd17-0767-4433-819f-3fabe16573a9, 2b223653-812f-4f89-a001-1a9053bfdc38, 8eda910b-fe2f-4b23-ba72-20af4548efa9, 634a5f96-7a55-46f4-b5ef-49d0709e0d4b].
The generated benchmarks can emphasize specific CHERI instructions or approximate application-level behavior via TestRIG's generation parameters, enabling targeted and reproducible performance evaluation of CHERI microarchitectures [6].
Android Security Analysis
The "BenchPress" study empirically evaluated four Android-specific benchmark suites — DroidBench, Ghera, IccBench, and UBCBench — to assess their API coverage in real-world apps (a sample of 227K apps) and to identify differences and gaps between them. The work noted that benchmark selection in tool evaluations is often driven by availability and popularity rather than by characteristics or relevance (arxiv 1903.05170).
Program Synthesis
The original General Program Synthesis Benchmark Suite had been used for six years in genetic programming and program-synthesis research but had gradually become outdated, hindering accurate measurement of further improvements. PSB2 was introduced as a replacement suite of 25 new problems curated from sources including programming katas and college courses, explicitly chosen to be more difficult than the originals (arxiv 2106.06086).
Synthetic Program Generation
When benchmark suites are too small, program generators can be used to synthesize additional test programs. The Genesis preprocessor exemplifies this approach: it takes a template program (in C, Java, C++, etc.) plus a Genesis annotation file, and generates many instances by sampling parameter values from user-defined distributions. Genesis is target-language agnostic and supports hierarchical composition of generated segments, enabling the creation of arbitrarily large program sets with controlled statistical properties — useful for ML training sets and mutation testing [1]. Similarly, the ChiGen fuzzer uses ChiBench-derived probabilistic grammars to dynamically synthesize diverse Verilog programs for EDA testing [c9ea02f1-f591-4cb5-ba10-8441c71e5c68, 6cecedc0-f8b6-4f2f-9e55-b56ff4cfa82b].
Related Concepts
- Functional verification — Benchmark suites are used as workloads within functional verification efforts, particularly in hardware design, where they are run alongside custom tests to exercise RTL behavior. Benchmark suites are part of the broader functional verification methodology used in hardware projects.
- Design space exploration — Benchmark suites are used to systematically explore architectural optimization options; specialized security-aware suites (e.g., for CHERI) are required when the design variables involve hardware memory-safety mechanisms, because general-purpose suites do not exercise those mechanisms.
- Fuzzing — Fuzzers that generate random, often unexpected, inputs can serve as a dynamic source of benchmarks when static benchmark suites are limited in diversity, as demonstrated by ChiGen for Verilog EDA tools [f1c73d8d-b22f-4d1c-9921-aea6c16740f2, 6cecedc0-f8b6-4f2f-9e55-b56ff4cfa82b].