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 (libcufft.so) and cuFFTMp (libcufftMp.so). 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).