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.

1.69×faster than native FP64
3.2e−08error — FP32 gives 3.4e−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.824e-05   usable
FP64 native   1.280e-06   correct

Faster than the FP64 hardware

2048×2048 matmul on an RTX 5070 Ti, at the first setting that beats an FP32 GEMM on accuracy (3.2e−08 against FP32's 3.4e−07):

FP64 native    27.14 ms
FP64Select     16.01 ms   1.69x

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
2 slices3.3e−04 4.36× — but use FP32
3 slices3.4e−06 2.43× — but use FP32
4 slices3.2e−08 1.69×
5 slices2.8e−10 1.22×
6 slices2.4e−12 0.93× — use the hardware

A plain FP32 GEMM on this card lands at 3.4e−07 in 0.57 ms, so the first two rows are dominated by single precision and we label them that way rather than quoting the speedup and hoping you do not check. The window where this is the right tool is 4 to 5 slices, roughly 1e−08 to 1e−10: accuracy FP32 cannot reach, at less time than the card's own FP64 unit takes. Past that, 6 slices is slower than the hardware, and the hardware is the right answer. Every figure re-measured 17 Aug 2026 on one RTX 5070 Ti, torch 2.11.0+cu128, and reproducible with examples/bench_fp8.py.

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.

Licensing

Free at home

Personal, non-commercial use on your own machine. No fee, no registration, no limits on what you compute.

Commercial & educational

Business, institutional, research and classroom use are licensed separately. Licensing enquiries are handled through the publisher.

Status

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