Repository navigation
v0.3.1
wgpu-nufft 0.3.1
C, Fortran, and MATLAB interfaces, and a first transform of a session as
quick as in 0.2.0; see CHANGELOG.md.
Added:
- wgpu-nufft-c (capi/): a C library declared by capi/include/wgpu_nufft.h.
Plans of type 1, 2 and 3 in one to eight dimensions take host arrays, set
their points once and run batches; one-call functions (wgpu_nufft1d1 to
wgpu_nufft3d3) keep their plans for reuse. Double-precision arrays run in
native f64 where the GPU supports it and in Df64 elsewhere, single-
precision arrays in f32, and plans fall back to the CPU backend without a
usable GPU. - A Fortran module (fortran/wgpu_nufft.f90) over the C library, tested
with gfortran and Intel ifx. - A MATLAB interface (matlab/): one-call functions wgpunufft1d1 to
wgpunufft3d3, the wgpunufft_plan class, and a MEX gateway for MATLAB
R2018a or later, which build_wgpu_nufft compiles.
Fixed:
- Type-1 plans compile their spreading shaders when an execution first
needs them, for the bin geometry it uses. 0.3.0 compiled two variants at
plan creation, which made the first transform of a session slower than in
0.2.0.
Known limitations:
- The MATLAB interface compiles and links but has not yet run in MATLAB.
- On DX12 with FXC, Df64 plans take minutes to create; on Windows, prefer
Vulkan for Df64 plans. - 7D and 8D plans are practical only on small grids at tolerances near
1e-3. - Metal has not been tested.