◇Compute Lab

Numerical correctness

Measuring the tolerance in a kernel check

Kernelwitness compares output against a reference and records the evidence behind its tolerance.

108Worst correct order in ULP
432Measured bound in ULP
4,092Wrong bins outside the bound
NUMERICAL CORRECTNESSPROCESSOR EXAMPLE

Wrong bins accepted

One percent tolerance1,091 bins
Measured rule4 bins
Seed 7 · 4,096 wrong bins · Bound of 432 ULP

Recorded results. Select a series to inspect it.

Reproducible processor example

A one percent relative tolerance accepted 1,091 wrong bins. The measured rule accepted four wrong bins in this example.

The example uses the seed seven histogram and three stated summation orders. The bound belongs to those calibration conditions.

The problem

Different correct summation orders can produce different floating point answers. A loose tolerance can also accept incorrect output.

The method

Three correct summation orders were compared with a float64 reference. Four times the worst observed distance set the bound.

Validation

The report records the comparison, calibration and environment. The same example can be reproduced from the public repository.

Recorded measurements

MethodRecorded result
Wrong bins accepted by one percent tolerance1,091 of 4,096
Wrong bins accepted by measured rule4 of 4,096
Measured bound432 ULP

The example uses the seed seven histogram and three stated summation orders. The bound belongs to those calibration conditions.

Source material

Start with a real operating problem

What needs to work better?