StarPU Handbook
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
FFT Support

StarPU provides libstarpufft, a library whose design is very similar to both fftw and cufft, the difference being that it takes benefit from both CPUs and GPUs. It should however be noted that GPUs do not have the same precision as CPUs, so the results may different by a negligible amount.

Different precisions are available, namely float, double and long double precisions, with the following fftw naming conventions:

  • double precision structures and functions are named e.g. starpufft_execute()
  • float precision structures and functions are named e.g. starpufftf_execute()
  • long double precision structures and functions are named e.g. starpufftl_execute()

The documentation below is given with names for double precision, replace starpufft_ with starpufftf_ or starpufftl_ as appropriate.

Only complex numbers are supported at the moment.

The application has to call starpu_init() before calling starpufft functions.

Either main memory pointers or data handles can be provided.

All functions are defined in FFT Support.

Compilation

The flags required to compile or link against the FFT library are accessible with the following commands:

$ pkg-config --cflags starpufft-1.2  # options for the compiler
$ pkg-config --libs starpufft-1.2    # options for the linker

Also pass the option –static if the application is to be linked statically.