Function to know which algorithm is sollicited to operate the FFT

Hi!

I would like to know if there is a way to check which one of the two algorithms Cooley-Turkey or Bluestein is being used during the FFT, especially when I use the batched mode. For instance, I’m looking for a function in the API or maybe an indication from Nsight…
I’ve already seen the explanations about the length of the input vector (here : cuFFT :: CUDA Toolkit Documentation (nvidia.com) ) but I was wondering if any further details were available somewhere like answers to the following questions :

  • Is the choosen algorithm already determined in the cuFFT plan ? Is it possible to know it before executing the cuFFT ?
  • If no, does the function cufftExec determine which one of the algorithms to use every time it is being called ? Can I obtain its choice with a function from cuFFT or else ?

Best regards,

  • Is the choosen algorithm already determined in the cuFFT plan ? Is it possible to know it before executing the cuFFT ?

Yes, this is chosen during plan creation.

It is not possible to retrieve before execution. The best way to determine is using Nsight Systems.

Hi cassanum, what problem are you trying to solve by retrieve property information?

Thanks for the answer.

I’d like to know which algorithm will or is sollicitated when I use the batch mode respectively before or after in order to optimize the amount of padding of my vector.
Actually, I’d like to determine the constraints of the plan’s choice to always make it choose Cooley-Turkey.

Gotcha.

As of today, batched mode doesn’t affect algorithm used. There is no property that allows users to query at runtime.
The best option available today is to use description provided in the “Accuracy and Performance” section.