no sure why cufft returns INVALID PLAN, but I note that:
You did not init your CUDA device (CUT_DEVICE_INIT() from cutils.h): so the program can’t inform you if something went wrong when looking for a CUDA device.
Are you sure you have a compatible CUDA device, and that this device is correctly recognized by CUDA?
Try the “deviceQuery” example in the SDK.
You use “Complex” type and “cudafftComplex” at the same time: it’s not the same type.
Complex is a vector while cudafftComplex is a struct.
You use short int as a host array, but cudafft works with single-precision floats.
It’s better not to mix types, so you may want to covert your file-loaded data from int to float
I suspect point 1) could help for your specific problem, but I’d suggest having a look at 2) and 3) too.