Problem with cufft in cuda 2.0 Cannot run convolutionFFT2D from SDK 2.0

The convolutionFFT2D code compiles successfully, but gives the following CUFFT_EXEC_FAILED error when run:

[codebox]Using device 0: GeForce 8800 GT

Input data size : 1000 x 1000

Convolution kernel size : 7 x 7

Padded image size : 1006 x 1006

Aligned padded image size : 1024 x 1024

Allocating memory…

Generating random input data…

Creating FFT plan for 1024 x 1024…

Uploading to GPU and padding convolution kernel and input data…

…initializing padded kernel and data storage with zeroes…

…copying input data and convolution kernel from host to CUDA arrays

…binding CUDA arrays to texture references

…padding convolution kernel

…padding input data array

Transforming convolution kernel…

cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/execute.cu, line 1038

cufft: ERROR: CUFFT_EXEC_FAILED

cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/execute.cu, line 284

cufft: ERROR: CUFFT_EXEC_FAILED

cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/cufft.cu, line 119

cufft: ERROR: CUFFT_EXEC_FAILED

Running GPU FFT convolution…

GPU time: 8.666000 msecs. //115.393487 MPix/s

Reading back GPU FFT results…

Checking GPU results…

…running reference CPU convolution

…comparing the results

Max delta / CPU value 1.000000E+00

L2 norm: 1.000000E+00

TEST FAILED

Shutting down…

Press ENTER to exit…

[/codebox]

I am using a Geforce 8800GT with 1GB memory. I also saw that I can run simpleCUFFT without any problems.

The problem appears to be in the three calls to cufftExecC2C (i.e., in the two forward and one inverse transform calls).

Any pointers greatly appreciated!

Did you ever figure out where those CUFFT_EXEC_FAILED messages came from? I’m seeing exactly the same sorts of messages you are. The SimpleCUFFT example works like a charm!

Same to me.

I got the exactly same error from CUFFT library.
cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/execute.cu, line 1038
cufft: ERROR: CUFFT_EXEC_FAILED
cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/execute.cu, line 284
cufft: ERROR: CUFFT_EXEC_FAILED
cufft: ERROR: /root/cuda-stuff/sw/rel/gpgpu/toolkit/r2.0/cufft/src/cufft.cu, line 119
cufft: ERROR: CUFFT_EXEC_FAILED
in convolutionFFT2D example.

my simpleCUFFT works fine.

S.

No, I haven’t figured it out yet. Still waiting for an answer :-)

I seem to have figured out my issue. I think what I was doing wrong was making a call to a data structure using a pointer rather then as a reference to a structure previously filled by cudaMalloc.

To put another way, I’d check to make sure that you’re not using a host pointer in the CUFFT call instead of memory allocated via cudaMalloc.

The code works in emulation mode because the system can reach the pointer, though when run in hardware the Tesla board can’t reach the pointer as its stored in the heap, outside of the cards memory.

-Joshua Bernstein
Software Engineer
Penguin Computing