CUDA 2.3, cufftPlan1d always comes back CUFFT_INVALID_VALUE in double mode Using cufftPlan1d() in CU

I’ve modified my CUDA code so that I have my existing single precision float FFT functions for forward and inverse FFTs and some new functions exactly like the single float ones but modified to use the double precision FFTs.

Doing that just required changing the plan type to CUFFT_Z2Z and the exec function to cufftExecZ2Z() and
using the data as cufftDoubleComplex*
But before I even get to the cufftExecZ2Z() the cufftPlan1d() comes back with an CUFFT_INVALID_VALUE error.

I’ve read this means there’s a bad pointer and the only pointer I see in the function arguments is the
cufftHandle, which I have as shown:

int batch = 1;
int pointsperfft = 16384;
cufftHandle plan;
cufftResult err = cufftPlan1d(&plan, pointsperfft, CUFFT_Z2Z, batch);

(note the batch and pointsperfft are actually passed as function arguments but I did the above to show the
values and I verified those via printf’ing the values).

My best guess now is that my 8800GTX can’t do double precision for CUDA 2.3 and so trying to use the
cufftPlan1d for CUFFT_Z2Z is failing? I can get my code on a Tesla C1060, maybe that would support this?

UPDATE: Solved, I think, the Programming guide (Appendix A.1.4) suggests I have to have a capability 1.3 card to have double precision support, and the 8800GTX is only 1.0. So to test my CUFFT_Z2Z and use it, I have to go to the Tesla C1060.
UPDATE2: I think I need -arch sm_13 also as a argument to the nvcc compiler

My best guess now is that my 8800GTX can’t do double precision for CUDA 2.3

You hit the nail right on the head - 8800 is a 1.god-knows-what device, you need a device with compute capability 1.3 to support double precision. something GT2xx-ish. GTX-260s seem rather cheap these days- I got two of them for 150 Euros apiece, ditching my 9800 GTX - and they compare very well with GTX-280 (also 2) I have in another machine, even though my 260 are only 192 shaders (not the newer 216 shader ones).

You answered yourself - I did not read your reply to the end.

UPDATE2: I think I need -arch sm_13 also as a argument to the nvcc compiler

YES!