Skip to content

v2.5.0

Choose a tag to compare

@DiamonDinoia DiamonDinoia released this 03 Mar 20:51

FINUFFT 2.5.0

Major update including:

Math changes for the CPU code:

  • major improvement of spreading (gridding) kernel, switching from ES to PSWF
  • better kernel parameter logic that much more closely than before matches user tolerance
  • on-the-fly polynomial coefficient generation allowing SIMD-vectorized Horner kernel evaluation at
  • arbitrary upsampling factor

New GPU method 3 for type 1 NUFFTs (spread) with higher performance than method 2 especially at high accuracy

Other improvements / features / changes (CPU unless stated):

  • new "execute_adjoint" added to the API, so that only one plan needed for type 1/2 pairs
  • work array allocation moved from plan/setpts to execute stage
  • major CMake/CI build improvement, including MATLAB/CUDA, LTO support
  • improved tolerance-sweeping error tests as part of CI, better performance tests
  • moving finufft_spread_opts.h from public to private
  • finufft_opts adds spread_kerformula, deprecates kerevalmeth and kerpad
  • GPU performance improvements via binsize and np heuristics
  • various minor bugfixes and tidying (GPU and CPU)
  • See CHANGELOG and GH Discussion posts 798 and 809 for details.