# Some problems during cufft and filtering

Hi guys

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.

``````    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);``````

Hi guys

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.

``````    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);``````