Building VASP 6.3 With cuFFTW

Hello, I am trying to build VASP 6.3 with the Nvidia HPC SDK for GPU acceleration. Most of the requirements for building it are included in the SDK but I can see that the SDK includes a version of FFTW in the form of cuFFTW. So my question is it possible to build VASP 6.3 with cuFFTW or do I need to compile a separate version of FFTW?

Hi jcook27,

I don’t work with VASP myself, but sent a note to one of my colleagues in Europe who has more experience building VASP to see if he knows.

Though since VASP isn’t an NVIDIA product, you might consider posting your question on the VASP forum since they should have better insight.


Hi jcook27,

I think there is a slight misunderstanding regarding what FFT libraries you need. For running with GPU acceleration, you need cuFFT, which is part of the HPC SDK. But you will also still need a FFT library for the CPU side, like e.g. FFTW. The latter is not provided with HPC SDK.
You can use the makefile.include.nvhpc_acc file from VASP’s arch subdirectory as a template. You will see that cuFFT gets linked there anyways. All you should have to do is provide a path to your CPU side library for FFTs, like e.g. FFTW.

  • Markus

I am trying to get in contact with the VASP forum admins to register on their forum since they currently have new user registration disabled.

That is what I suspected I would have to end up doing. Based on your answer I do have a few questions about cuFFT. Is cuFFT a GPU only implementation? And are there any major differences between cuFFTW and FFTW?

Is cuFFT a GPU only implementation?


And are there any major differences between cuFFTW and FFTW?

cuFFTW is a wrapper for cuFFT, but using FFTW interfaces. It’s meant to help make porting easier, but under the hood, it’s using cuFFT.

cuFFT and FFTW are fundamentally different libraries, with different internal algorithms and different APIs. So a cuFFT library call looks different from a FFTW call. And yes, cuFFT is one the CUDA math libraries (like cuBLAS, etc.) which are GPU only implementations.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.