FP64Select
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.
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.
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
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
One parameter trades speed against digits. Set it per call, per problem.
| setting | relative error | vs native FP64 |
|---|---|---|
| fast | 2.1e−05 | faster still |
| balanced | 5.4e−08 | 2.46× |
| tight | 1.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.
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.
Working and measured. Benchmarks above are from an RTX 5070 Ti.