CUFFT type problem cufftDoubleReal and cufftDoubleComplex


my vga is a GeForce GTS 250 with 1GB vram, devdriver 195.36.15 on linux ubuntu 64bit.

with this card is it possible to work with cufftDoubleReal and cufftDoubleComplex types or not?

because when a i try to initialize a plan it not returns CUFFT_SUCCESS nor CUFFT_SETUP_FAILED or CUFFT_INVALID_SIZE or CUFFT_INVALID_TYPE or CUFFT_ALLOC_FAILED
and when i execute the transform i receive error INVALID_PLAN

somebody can help me?

No, you need a card with capability >=1.3.
Your card is G92 based, so it is only 1.1


i must calculate the fourier transform for 900 array of 500 elements (double)… what should i do if my card doesn’t support double precision?

thanks a lot for your reply!

You have two options:

  1. Do the transforms in single precision

  2. Get a double precision capable card: a GTX260 or the new GTX460 are good choices.

option 1.5) use double single precision computations. Someone previously posted a header file ported from Fortran 99 that contains addition, subtraction, multiplication for this new datatype. It is not exactly as precise as doubles, but still orders of magnitude more precise than regular floats.

I managed to wrap it into a doublesingle class (actuall struct) type that essentially works much like the usual float type, with the usual operator overloads. However libraries such as CUFFT won’t work with it. You’d need to implemement your own FFT.