Usage tips

Building against HPC SDK

HPC-SDK ships with both cuFFT and cuFFTMp. Both cannot be used simultaneously. However, since cuFFTMp is a superset of cuFFT, it can be used in place of cuFFT.

The cuFFT headers are located in .../math_libs/X.Y/include/ while the cuFFTMp headers are located in .../math_libs/X.Y/include/cufftmp/. When compiling an application against cuFFTMp, ensure that

  • The cuFFT headers are not included at compile time

  • Or the cuFFTMp headers are included before the cuFFT headers.

An application cannot link against both cuFFT ( and cuFFTMp ( This will lead to runtime errors.

Both those requirements are automatically satisfied when using the -cudalib=cufftmp flag for the NVHPC compilers (nvc, nvfortran, nvc++, and their MPI counterparts).