Navigation

  • next
  • previous |
  • finufft 2.5.0 documentation »
  • Related packages

Related packages¶

Other recommended NUFFT libraries¶

  • NFFT3: well-supported and multi-featured C++ library using FFTW. Has MATLAB MEX interface. However, NFFT is significantly slower and/or more memory-intensive than FINUFFT (see reference [FIN], and our migration guide). NFFT3 has more general abilities, eg, inverse NUFFTs.

  • DUCC: Reinecke’s amazing C++ package contains NUFFT code, developed for radio-astronomy, that in some regimes is faster than ours (due to the use of variable upsampling factor; we are catching up, with his help).

  • CMCL NUFFT: NYU single-threaded Fortran library using self-contained FFT, fast Gaussian gridding kernel. Has MATLAB MEX interface. Much (up to 50x even for one thread) slower than FINUFFT, but is very easy to compile.

  • MIRT Michigan Image Reconstruction Toolbox. Native MATLAB, single-threaded sparse mat-vec, prestores all kernel evaluations, thus is memory-intensive but surprisingly fast for a single-threaded implementation. However, slower than FINUFFT for all tolerances smaller than \(10^{-1}\).

  • PyNUFFT Python code supporting CPU and GPU operation. We have not compared against FINUFFT yet.

  • NonuniformFFTs.jl native Julia code for types 1 and 2 only (CPU and GPU via KernelAbstractions), by Juan Polanco, 2024. Close to our CPU performance, and can beat it in the case of real data via a custom real transform. On the GPU claims their shared-memory type 1 implementation beats our v2.4.1. Has a great benchmarks page comparing (cu)FINUFFT at 6-digit accuracy, CPU and GPU. Marco has now incorporated his ideas into output-driven type 1 on GPU (available as gpu_method=3 in master, to be released in v2.5.0).

  • NFFT.jl native Julia implementation for type 1 and 2 only, by Tobias Knopp and coworkers, starting around 2022. See page on Julia.

A comparison of some library performances (as of 2019) was in our paper [FIN] in the references. The MRI-NUFFT Neurospin Paris team also did a benchmark comparison of some codes in 2024, see https://github.com/mind-inria/mri-nufft-benchmark/

Logo of finufft

Table of Contents

  • Installation
  • Installation (GPU)
  • Directories in this package
  • Mathematical definitions of transforms
  • Example usage from C++ and C
  • Documentation of all C++ functions
  • C interface (GPU)
  • Options parameters (CPU)
  • Error (status) codes
  • Troubleshooting
  • Performance
  • Tutorials and application demos
  • Usage from Fortran
  • MATLAB/Octave interfaces
  • MATLAB GPU interfaces
  • Python interface
  • Python interface (GPU)
  • Julia interfaces (CPU and GPU)
  • Changelog
  • Migration guide from NFFT3
  • Migration to cuFINUFFT v2.2
  • GPU code implementation details
  • Developer notes
  • Related packages
    • Other recommended NUFFT libraries
  • Dependent packages, wrappers, users, and citations
  • Acknowledgments
  • References

Previous topic

Developer notes

Next topic

Dependent packages, wrappers, users, and citations

This Page

  • Show Source

Quick search

Navigation

  • next
  • previous |
  • finufft 2.5.0 documentation »
  • Related packages
© Copyright 2017-2026 The Simons Foundation, Inc. - All Rights Reserved. Created using Sphinx 9.0.4.