Navigation

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

Related packages¶

Other recommended NUFFT libraries¶

  • cuFINUFFT: Our GPU version of FINUFFT, for single precision in 2D and 3D, type 1 and 2. Still under development by Melody Shih (NYU) and others. Often achieves speeds around 10x the CPU version.

  • NFFT3: well-supported and multi-featured C++ library using FFTW. Has MATLAB MEX interface. However, significantly slower and/or more memory-intensive than FINUFFT (see reference [FIN]). Has many more general abilities, eg, inverse NUFFT. We are working on this too.

  • 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 ours; to be investigated further. Has a good benchmarks page comparing (cu)FINUFFT at 6-digit accuracy, CPU and GPU.

  • 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.

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
  • 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.4.0 documentation »
  • Related packages
© Copyright 2017-2025 The Simons Foundation, Inc. - All Rights Reserved. Created using Sphinx 8.2.3.