FP64Select

The precision FP32 can't give you. The speed FP64 won't.

Consumer GPUs are built to run double precision slowly. FP64Select puts the accuracy back and runs it faster than the card's own double-precision path — on a dial you set, per call.

2.46×faster than native FP64
5.4e−08error — FP32 gives 1.6e−07
you pickspeed against digits

What you get

Accurate double precision on the card you already own, running faster than that card's own double-precision path — with a dial you set per call: more speed, or more digits.

Engineering simulation, computational chemistry, structural analysis, quantitative finance. The work that needed a datacenter GPU, on a gaming one.

Recovers answers FP32 gets wrong

A degree-8 polynomial fit, the shape of every calibration curve and sensor model. Coefficient error against the known truth:

FP32          1.353e+00   wrong
FP64Select    9.778e-05   usable
FP64 native   6.760e-07   correct

Faster than the FP64 hardware

2048×2048 matmul on an RTX 5070 Ti, at accuracy past what an FP32 GEMM delivers:

FP64 native    27.12 ms
FP64Select     11.02 ms   2.46x

The dial

One parameter trades speed against digits. Set it per call, per problem.

measured on an RTX 5070 Ti
settingrelative error vs native FP64
fast2.1e−05 faster still
balanced5.4e−08 2.46×
tight1.3e−10 1.69×
full→ FP64 exact use the hardware path

For reference, an FP32 GEMM lands at 1.6e−07 — the balanced setting is already past it. The last row is stated plainly because it is the honest limit: once you want bit-for-bit FP64, the card's own unit is the right tool and we say so.

Also works on solves

A 512×512 linear system at condition 1e6. Single precision gives 2.99e−02 error. FP64Select takes it to 2.52e−07.

Convergence has a limit and we state it: past roughly condition 1e7 the method stops improving rather than degrading gracefully. Know your problem.

Status

Working and measured. Benchmarks above are from an RTX 5070 Ti.