Skip to content

Commit

Permalink
docs related add NonuniformFFTs.jl
Browse files Browse the repository at this point in the history
  • Loading branch information
ahbarnett committed Dec 9, 2024
1 parent 244dd18 commit 4565d4b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
4 changes: 3 additions & 1 deletion docs/julia.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.. _julia:

Julia interfaces (CPU and GPU)
==============================

Principal author Ludvig af Klinteberg and others have built and maintain `FINUFFT.jl <https://github.com/ludvigak/FINUFFT.jl>`_, an interface from the `Julia <https://julialang.org/>`_ language. This official Julia package supports 32-bit and 64-bit precision, now on both CPU and GPU (via `CUDA.jl`), via a common interface.
The Julia package installation automatically downloads pre-built CPU binaries of the FINUFFT library for Linux, macOS, Windows and FreeBSD (for a full list see `finufft_jll <https://github.com/JuliaBinaryWrappers/finufft_jll.jl>`_), and the GPU binary for Linux (see `cufinufft_jll <https://github.com/JuliaBinaryWrappers/cufinufft_jll.jl>`_).

`FINUFFT.jl` has itself been wrapped as part of `NFFT.jl <https://juliamath.github.io/NFFT.jl/dev/performance/>`_, which contains an "abstract" interface
to any NUFFT in Julia, with FINUFFT as an example.
to any NUFFT in Julia, with FINUFFT as an example. This was by Tobias Knopp and coworkers, starting around 2022.
Their
`performance comparison page <https://juliamath.github.io/NFFT.jl/dev/performance/>`_
show that FINUFFT matches their native Julia implementation for speed of type 1
Expand Down
10 changes: 6 additions & 4 deletions docs/related.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ Other recommended NUFFT libraries

- `PyNUFFT <https://github.com/jyhmiinlin/pynufft>`_ Python code supporting CPU and GPU operation. We have not compared against FINUFFT yet.


Also see the summary of library performances in our paper [FIN] in the
:ref:`references <refs>`.

- `NonuniformFFTs.jl <https://jipolanco.github.io/NonuniformFFTs.jl/dev/>`_ 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 <https://jipolanco.github.io/NonuniformFFTs.jl/dev/benchmarks/>`_ comparing (cu)FINUFFT at 6-digit accuracy, CPU and GPU.

- `NFFT.jl <github.com/JuliaMath/NFFT.jl>`_ native Julia implementation for type 1 and 2 only, by Tobias Knopp and coworkers, starting around 2022. See :ref:`page on Julia <julia>`.


A comparison of some library performances (as of 2019) was in our paper [FIN] in the :ref:`references <refs>`.

0 comments on commit 4565d4b

Please sign in to comment.