2013-03-21 93 views
0

我试图使用CUDA FFT aka cufft库CUDA FFT异常

cufftPlan1d(..)引发异常时发生问题。

#define NX 256 
    #define BATCH 10 

    cufftHandle plan; 
    cufftComplex *data; 
    cudaMalloc((void**)&data, sizeof(cufftComplex)*NX*BATCH); 
    if (cudaGetLastError() != cudaSuccess){ 
     fprintf(stderr, "Cuda error: Failed to allocate\n"); 
     return; 
    } 
    if (cufftPlan1d(&plan, NX, CUFFT_C2C, BATCH) != CUFFT_SUCCESS){ 
     fprintf(stderr, "CUFFT error: Plan creation failed"); 
     return; 
    } 

当copiler击中cufftPlan1d命令,上VS08输出窗口出现有以下:

first chance expection at 0x75af9617 in CudaFFTProject.exe Microsoft C++ exception: cufftResult_t at memory locatoin 0x002df99c.. 

帮助,将不胜感激

干杯

+1

这不是一个编译错误,它是一个运行时犯错要么。你的'cudaMalloc'调用看起来很奇怪。什么是'sizeof(cudafftComplex * NX * BATCH)'应该是什么意思?从您的代码和错误消息中的拼写错误中可以看出,您在问题中显示的内容并不是您正在运行的内容,或者您​​收到的错误。你能改正这个问题吗? – talonmies 2013-03-21 11:58:45

+0

@talonmies,我编辑了这个问题.... – TripleS 2013-03-23 00:22:07

+0

你显示的代码没有错。如果我只在它周围放置一个main()并编译它,它将运行时没有任何错误。所以这个问题是在你的代码中的其他地方(如缓冲区溢出或其他)。你可以将代码编辑成*最短可能的*可编译的例子,它展示了这个问题?否则,我看不出有人能帮助你。 – talonmies 2013-03-23 06:22:56

回答

1

的错误来自包含文件和链接器输入文件中的混乱(不确定它们中的哪一个)

我的个人电脑包括cuda toolkit 4.2和cuda toolkit 5安装。

在VS08,项目属性

其他包括 使用 “$(CUDA_PATH_V4_2)\包括” 的 而不是$(CUDA_INC_PATH)

链接器 - >附加库目录 - > 使用“ (CUDA_PATH_V4_2)\ LIB \ WIN32" 而不是$(CUDA_LIB_PATH)

感谢您的帮助... :)