Repository navigation
v0.3.0
wgpu-nufft 0.3.0
GPU plans in up to eight dimensions, and one deterministic spreader for
every type-1 plan, faster in every rank and for sparse and clustered
points; see CHANGELOG.md.
Highlights:
- Type 1, 2 and 3 GPU plans in six to eight dimensions, in all three
precisions; the 4D and 5D paths are rewritten. - Every type-1 plan spreads through one rank-generic block spreader with
bitwise-repeatable sums. It bins points by the first cell of their kernel
support, chooses its bins per execution from the point density, and
splits crowded blocks across many workgroups. - Large bins sort several times faster, and F64 kernel weights evaluate
faster. - F64 and Df64 type-2 plans in one to three dimensions interpolate binned
points. - F32 plans reject tolerances their rounding would miss
(NufftError::F32ToleranceUnreachable). - A standalone browser build, wgpu_web.js, is attached to this release.
Fixed:
- The rank-generic spreader compiles with FXC on DX12.
Known limitations:
- On DX12 with FXC, Df64 plans take minutes to create, mostly in the Df64
FFT shaders; on Windows, prefer Vulkan for Df64 plans. - 7D and 8D plans are practical only on small grids at tolerances near
1e-3; see "Higher dimensions" in the README. - Metal has not been tested.