FPBench provides benchmarks, compilers, and standards for the floating-point research community.
To use FPBench tools, install Racket 7.x. Racket 8.0 or later
(on Chez Scheme) is not currently supported. Then, run
make setup to install dependencies
and compile the tools.
The FPBench benchmarks are located in
benchmarks/ in FPCore format.
FPBench contains 98 benchmarks from four sources (FPTaylor, Herbie, Salsa, and Rosa) covering a variety of application domains and the full complement of FPCore features.
FPBench develops two compiler tools for FPCore programs:
transform.rkt, which applies transformations FPCore computations, such as sipmlifying preconditions, unrolling loops, or expanding syntax sugar.
These tools are documented online.
The FPBench standards are located online. FPBench contains standards for:
- The FPCore format for floating-point computations. FPCore is a simple S-expression functional programming language and can represent arithmetic, transcendental operators, loops, and conditionals.
- Metadata to describe the provenance and interpretation of FPCore computations.
- Measures to describe accuracy measurements for FPCore computations. Several measures are standardized.
Each standard has achieved 1.1 status and can be used by implementations. The standards are maintained in another repository on Github.
Toward a Standard Benchmark Format and Suite for Floating-Point Analysis, at NSV’16, by N. Damouche, M. Martel, P. Panchekha, C. Qiu, A. Sanchez-Stern, and Z. Tatlock
Described the FPBench standards project, including the FPCore standard. The standards (in
www/spec) continue this work.
Combining Tools for Optimization and Analysis of Floating-Point Computations, at FM’18, by H. Becker, P. Panchekha, E. Darulova, and Z. Tatlock