Performance¶
A nefi solve is a few thousand small optimization steps. On problems of 10³–10⁵ cells a step is limited by per-operator overhead rather than arithmetic, so nefi optimizes ops per step, sweeps per solve and problems per launch. The dashboards below come from the gallery run (CPU, torch 2.11); the measurements, switches and CUDA estimates are in Performance.
What is measured and what is estimated
Every number on this page was measured on a CPU. Expected CUDA speed-ups in the performance guide are estimates from launch counts and still have to be validated on a GPU.
Step time of every system¶
Switches¶
| heat solver (NeFTY), CPU | before | after |
|---|---|---|
| kernels per Jacobi sweep | 12 (torch.roll) |
7 (flat padded layout) |
| thermal smoke step | 21.2 ms | 9.4 ms (7.7 ms with Chebyshev, same accuracy) |
| sweeps at the paper step for equal accuracy | 50 Jacobi | 20 Chebyshev |
batched solving (nefi.batch_invert), per-problem step on CPU |
sequential | batch 64 |
|---|---|---|
| toy1d | 0.41 ms | 0.048 ms (8.4×) |
| nv_relaxometry | 0.90 ms | 0.37 ms (2.5×) |
| deconvolution | 1.31 ms | 0.66 ms (2.0×) |
Scaling and memory¶
Benchmark in one command¶
nefi bench toy1d --methods neural,grid at the gallery budget (2
samples × 2 seeds): on this smooth 1-D linear problem the free grid wins (32.9 ± 4.2 dB against
22.0 ± 5.5 dB). Benchmarks report such results as they are — see
Limitations and caveats.




