Releases: flatironinstitute/finufft
V2.5.1
Patch release v2.5.1 (4/8/26)
This release fixes the small issues and regressions emerged in V2.5.0
v2.5.0
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.
v2.5.0 release candidate 1
FINUFFT 2.5.0 release candidate 1
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
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.
v2.4.1
FINUFFT version 2.4.1
Small fixes:
- Fix cufinufft importing bug found by @fzimmermann89 (Barbone, issue #707, PR #708)
- Cached the optimal thread number (# physical cores) to reduce system call
overhead in repeated small transforms (@YuWei-CH), #697, fixing #693).
New feature:
- Python simple CUDA API for type3 (@MaximEremenko)
Minor changes:
v2.4.0
FINUFFT version 2.4.0
The major new features and changes from 2.3 are:
- Type 3 transforms on the GPU (cufinufft), in 1,2,3 dims.
- MATLAB gpuArray interface to cufinufft, with docs and demos
- spreadinterponly options to do spreading/interp only in type1,2
- Performance improvement via upsampfac heuristic choice
- Improved testing, including cufinufft and MATLAB/Octave tests
- Internal code improvements and templating
- Various bugfixes
- Fixed accuracy loss in 2.4.0-rc1 due to upsampfac heuristic choice
See CHANGELOG for the full list.
v2.4.0 release candidate 1
FINUFFT version 2.4.0, release candidate 1
The major new features and changes from 2.3 are:
- Type 3 transforms on the GPU (cufinufft), in 1,2,3 dims.
- MATLAB gpuArray interface to cufinufft, with docs and demos
- Performance improvement via upsampfac heuristic choice
- Improved testing, including cufinufft and MATLAB/Octave tests
- Internal code improvements and templating
- Various bugfixes
See CHANGELOG for the full list.
v2.3.1 (minor update)
FINUFFT Release 2.3.1
this is a minor update release, to help the MRI community. (Major new features will go to 2.4.0 instead.)
Features:
- support and documentation for gpu_spreadinterponly option (affects GPU only)
v2.3.0
FINUFFT release 2.3.0 (stable)
This release includes many new features since 2.2.0. The main ones are:
- major performance improvements in CPU spread/interpolation through manual SIMD vectorization
- performance improvements for the GPU library
- switchable FFT: either FFTW3 or DUCC0 (where the latter exploits sparse block structure for speed in 2D and 3D)
- modernized Python wrapping
- revamped CMake build
- many bugfixes, improved testing and benchmarking, new documentation...
See CHANGELOG for the full list.
v2.3.0-rc1
Release candidate for 2.3.0.
This contains a long list of improvements, including major ones, documented in the CHANGELOG.
v2.2.0
FINUFFT release 2.2.0.
- First release to have CPU+GPU combined in the same repo
- GPU interface has been changed slightly for forwards compatibility (relative to legacy v1.3 cufinufft)
- Extension of GPU interface for compatibility with CuPy, PyTorch, and Numba frameworks in addition to PyCuda
- Support of CUDA streams
- CMake build system
- Various speed improvements and bugfixes
- Improved documentation
See all changes described in the CHANGELOG