I have some trouble when using the “batch” with cufft.
I think that batch means the “how many times”. So I decided to use batch, when Fourier transforming of 1000 series of 2048 cells instead of loops. So input data has 2048*1000 cells in 1D array.
However there’s some problems when the filter adaption kernel.
I made the filter which have 2048*1000 cells (1D ramp filters(2048 cells) are arranged 1000 lines)
But I think the filtered data seems like unfiltered.
Here’s my codes. please help me. :">
nBytesC = sizeof(cufftComplex)*(N/2+1)*batchSize; nBytesR = sizeof(cufftReal)*N*batchSize; nBytesF = sizeof(float)*N*batchSize; float* FilteredProj = new float[N*batchSize]; cufftPlan1d(&planFor, N, CUFFT_R2C, batchSize); cufftPlan1d(&planInv, N, CUFFT_C2R, batchSize); cufftExecR2C(planFor, R_d, C_d); // execute the kernel FilterAdaption<<< (2048*1007)/512, 512 >>>( C_d, F_d, d_out); cutilCheckMsg("kernel launch failure"); cufftExecC2R(planInv, d_out,Resul); cudaMemcpy(FilteredProj, Resul, nBytesR, cudaMemcpyDeviceToHost);