.. SPDX-FileCopyrightText: (C) The Kokkos-FFT development team, see COPYRIGHT.md file .. .. SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception Kokkos-FFT documentation ======================== Kokkos-FFT implements local interfaces between `Kokkos `_ and de facto standard FFT libraries, including `FFTW `_, `cufft `_, `hipfft `_ (`rocfft `_), and `oneMKL `_. "Local" means not using MPI, or running within a single MPI process without knowing about MPI. We are inclined to implement the `numpy.fft `_-like interfaces adapted for Kokkos. A key concept is that *"As easy as numpy, as fast as vendor libraries"*. Accordingly, our API follows the API by ``numpy.fft`` with minor differences. A FFT library dedicated to Kokkos Device backend (e.g. cufft for CUDA backend) is automatically used. Kokkos-FFT is open source and available on `GitHub `_. Here is an example for 1D real to complex transform with ``rfft`` in Kokkos-FFT. .. code-block:: C++ #include #include #include #include using execution_space = Kokkos::DefaultExecutionSpace; template using View1D = Kokkos::View; const int n = 4; View1D x("x", n); View1D > x_hat("x_hat", n/2+1); Kokkos::Random_XorShift64_Pool<> random_pool(12345); Kokkos::fill_random(x, random_pool, 1); Kokkos::fence(); KokkosFFT::rfft(execution_space(), x, x_hat); This is equivalent to the following python script. .. code-block:: python import numpy as np x = np.random.rand(4) x_hat = np.fft.rfft(x) .. note:: It is assumed that backend FFT libraries are appropriately installed on the system. .. toctree:: :maxdepth: 1 getting_started finding_libraries api_reference examples developer_guide citation .. Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`