大家好 我初学CUDA,请教个问题
最近要用到CUFFT 来做傅里叶变换,但是不知怎么回事
调试SDK里面的 SimpleCUFFT例子都会出错,编译时是成功的,调试时就会出现下面的错误:
First-chance exception at 0x7c812afb in simpleCUFFT.exe: Microsoft C++ exception: cudaError_enum at memory location 0x0012fe5c…
这个小例子也是这样的错误
#include <stdio.h>
#include <math.h>
#include <cuda.h>
#include <cuda_runtime.h>
#include <cufft.h>
#define NX 128
#define BATCH 2
int main(int argc, char *argv)
{
cufftHandle plan;
cufftComplex devPtr;
cufftComplex data[NXBATCH];
int i;
for(i= 0 ; i < NX*BATCH ; i++){
data[i].x = 1.0f;
data[i].y = 1.0f;
}
cudaMalloc((void**)&devPtr, sizeof(cufftComplex)NXBATCH);
cudaMemcpy(devPtr, data, sizeof(cufftComplex)NXBATCH, cudaMemcpyHostToDevice);
cufftPlan1d(&plan, NX, CUFFT_C2C, BATCH);
cufftExecC2C(plan, devPtr, devPtr, CUFFT_FORWARD);
cufftExecC2C(plan, devPtr, devPtr, CUFFT_INVERSE);
cudaMemcpy(data, devPtr, sizeof(cufftComplex)NXBATCH, cudaMemcpyDeviceToHost);
cufftDestroy(plan);
cudaFree(devPtr);
for(i = 0 ; i < NX*BATCH ; i++){
printf(“data[%d] %f %f\n”, i, data[i].x, data[i].y);
}
system(“pause”);
return 0;
}
调试执行后 就出现 Microsoft C++ exception: cudaError_enum at memory location 0x0012fab4 很多条这样的错误
我用的显卡是GeForce G210
CUDA 版本3.1 SDK版本3.1,配置时用了CUDA_VS_Wizard_W32.2.0.exe
是按照网上配置的VS2008环境。
运行其他的cuda程序都没问题,就是用到cufft 时就出错!
是使用CUFFT库时还要特殊配置吗? 还是我的显卡不支持CUFFT? 求指教!
[ 本帖最后由 qingshuimjf 于 2010-11-27 16:32 编辑 ]