FPBench Logo

Metadata 1.1 (DRAFT VERSION)

Common metadata for floating-point computations

FPBench 1.1 standards

FPBench is a standard benchmark suite for the floating point community. The benchmark suite contains a common format for floating-point computation and metadata and a common set of accuracy measures:

  1. The FPCore input format
  2. FPCore example inputs
  3. Metadata for FPCore benchmarks
  4. Standard measures of error

FPCore metadata properties

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

FPBench 1.1 defines the meaning of the following properties:

:name
A string name for the benchmark. If a name is needed and not provided, we recommend using the body expression.
:description
A string description for the benchmark and its inputs. We recommend describing the physical meaning and units of inputs when applicable.
:cite
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.
:precision
Describes the floating-point precision used for rounding. It is expected to be a symbol for one of the IEEE 754 names (such as binary32 and binary64) or one of the special values real or integer. real precision indicates that no rounding should take place, while integer precision specifies the behavior of (unbounded) mathematical integers. If no :precision property is specified, implementations should assume a sane default, such as binary64 or possibly real depending on the application domain.
:round
The floating-point rounding mode used for rounding. Expected to be one of the IEEE 754 modes nearestEven, nearestAway, toPositive, toNegative, or toZero.
:pre
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. A rounding context can be given explicitly for the expression, but if it is not, the default rounding context is assumed to have real precision rather than the overall properties specified for the FPCore.
:spec
A real-valued function approximated by the benchmark. If not provided, then it is assumed to be the body of the benchmark. As with preconditions specified with :pre, a rounding context can be provided explicitly, but it is assumed to have real precision rather than the overall properties specified for the FPCore.
:math-library
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.