How does cuDNN call FFT function?

One of the forward convolution algorithms is FFT convolution in cuDNN. FFT convolution is called by setting algo parameter of type cudnnConvolutionFwdAlgo_t of cudnnConvolutionForward API to CUDNN_CONVOLUTION_FWD_ALGO_FFT.

My question is how does cuDNN call cuFFT function? I am not sure if cuDNN uses cuFFT as its FFT implementation. Or cuDNN uses a different FFT implementation other than cuFFT.

Since cuDNN is a closed source library, I cannot find any references on this topic.

Can anyone shed light on this question. Thank you.

For a better exposure, I crosspost here: [url]https://devtalk.nvidia.com/default/topic/1048771/cuda-programming-and-performance/how-does-cudnn-call-fft-function-/[/url]

I used the profiler to analyze the kernel names of CUDNN_CONVOLUTION_FWD_ALGO_FFT of cuDNN and cuFFT, it seems that they used different heuristics to choose different fft code paths, but they share some of fft kernel names which indicates that cuDNN may use cuFFT as a backend. That’s my observation based on profiler output.