FPBench Logo

FPBench Metadata 1.0

FPBench 1.0 standards

FPBench is a standard benchmark suite for the floating point community to organize its efforts around. The benchmark suite is organized around a common format and a common set of measures of accuracy. FPBench 1.0 is the first version of this common format and set of measures.

FPBench 1.0 standardizes:

  1. The FPCore input format
  2. Metadata for FPCore benchmarks
  3. Standard measures of error
This is a draft specification. It is subject to unannounced changes.

FPCore metadata properties

The metadata properties allow describing additional information about each benchmark, such as their name, description, precision, citations, or preconditions.

FPBench 1.0 defines the meaning of the following properties:

A string name for the benchmark. If a name is needed and not provided, we recommend using the body expression.
A string description for the benchmark and its inputs. We recommend describing the physical meaning and units of inputs when applicable.
A list of symbols that describe the sources of the benchmark. We recommend making available a BibTeX file which uses the same symbols as keys.
Describes the floating point precision used for floating point values in the expression. It is expected to be a symbol for one of the IEEE-754 names (such as binary32 and binary64). If no :precision property is specified, implementations should assume binary64 floating-point values.
A precondition on inputs to the benchmark. Tools should not use points that fail the precondition to determine the accuracy of the benchmark. It is expected to be an expression that returns a boolean value.
The library used in the source to implement floating-point operations. It is expected to be a symbol identifying a library implementation and version, such as gnu-libm-2.34.

Additionally, properties prefixed by the name of a tool (such as :xxx-foobar) are reserved for definition by that tool. Only that tool may define the meaning of those properties; other tools should not depend on the meaning of those properties, nor must the defining tool keep the meaning constant.