Parralell FFT?

hello everyone…
I was wondering if it was possible to fun multiple FFT’s at the same time??
because i have about 70K+ FFT’s to do during execution.

any pointers would be great


cufft supports batching of 1d ffts, that doesn’t suit you ?

how would i use batching?
I read through what it said in the ref but the batching made no sense to me…

lets say i have
4 arrays d_a, d_b, d_c, d_d with each 1024 elements

i would do this:

cufftHandle plan;

cufftPlan1d(&plan, NX, CUFFT_C2C, 1);

cufftExecC2C(plan, d_a, d_a, CUFFT_FORWARD);
cufftExecC2C(plan, d_b, d_b, CUFFT_FORWARD);
cufftExecC2C(plan, d_c, d_c, CUFFT_FORWARD);
cufftExecC2C(plan, d_d, d_d, CUFFT_FORWARD);

and then do my other calculations…
but the prob is i have 70k+ and doing a loop to run through everything would be like building an ultra light glider and adding a 700lbs anchor for easy decending!!

arrange your data so that
data_b = data_a + 1024;
data_c = data_b + 1024;
data_d = data_c + 1024;

and to one 1d batched transform

Cufft documentation describes requirements for stride for the input data for different fft transform types.

so the basic idea is to concatenate all my data into one long array in memory and then depending on the batch it will go down the array and transform each 1024 element segment separately?


Just read documentation carefully regarding strides between arrays for in-place transforms.