求大神指点:cudaError_enum的错误

soun 2012-08-01 11:25:06
出错信息:“test.exe”: 已加载“D:\HealthWay\FDKdll\Debug\test.exe”,已加载符号。
“test.exe”: 已加载“C:\Windows\SysWOW64\ntdll.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\kernel32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\KernelBase.dll”
“test.exe”: 已加载“D:\HealthWay\FDKdll\Debug\FDK.dll”,已加载符号。
“test.exe”: 已加载“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\cudart32_42_9.dll”,未使用调试信息生成二进制文件。
“test.exe”: 已加载“D:\HealthWay\FDKdll\Debug\cufft32_42_9.dll”,未使用调试信息生成二进制文件
“test.exe”: 已加载“C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll”,已加载符号。
“test.exe”: 已加载“C:\Windows\SysWOW64\apphelp.dll”
“test.exe”: 已加载“C:\Windows\AppPatch\AcLayers.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\sspicli.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\msvcrt.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\rpcrt4.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\cryptbase.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\sechost.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\user32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\gdi32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\lpk.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\usp10.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\advapi32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\shell32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\shlwapi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\ole32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\oleaut32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\userenv.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\profapi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\winspool.drv”
“test.exe”: 已加载“C:\Windows\SysWOW64\mpr.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\imm32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\msctf.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\nvcuda.dll”,未使用调试信息生成二进制文件。
“test.exe”: 已加载“C:\Windows\SysWOW64\setupapi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\cfgmgr32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\devobj.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\ws2_32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\nsi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\dwmapi.dll”
“test.exe”: 已卸载“C:\Windows\SysWOW64\dwmapi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\nvapi.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\version.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\wintrust.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\crypt32.dll”
“test.exe”: 已加载“C:\Windows\SysWOW64\msasn1.dll”
test.exe 中的 0x753eb9bc 处最可能的异常: Microsoft C++ 异常: 内存位置 0x001ff388 处的 cudaError_enum。
test.exe 中的 0x753eb9bc 处最可能的异常: Microsoft C++ 异常: 内存位置 0x001ff314 处的 cudaError_enum。
test.exe 中的 0x040956a1 处最可能的异常: 0xC0000005: 读取位置 0xbaadf00d 时发生访问冲突
test.exe 中的 0x777915de 处未处理的异常: 0xC0000005: 读取位置 0xbaadf00d 时发生访问冲突

出错语句:cufftPlan1d(&plan, filterlength, CUFFT_C2C, prjParam->iPrjX);


部分源代码:
void runFDK(int NumofScan, int totScan, const ProjParameter *prjParam, float voxelsize, int reconSize, float* d_filter, int filterlength, unsigned short* d_bk, unsigned short* d_img,
cufftComplex* d_data, float* d_filterImg, cudaArray *filteredImg,cudaPitchedPtr devPitchedPtr, cudaExtent extent, const CalibParameter *calib)
{
//初始化复数投影,同时补零
CUDA_SAFE_CALL(cudaMemset(d_data,0,sizeof(cufftComplex) * (prjParam->iPrjX) * filterlength));

//GPU上投影预修正、重排
dim3 threads(16, 16);
dim3 grid(96, 120);
preprocessKernel<<< grid, threads >>>(d_bk,d_img,d_data,calib,filterlength, (prjParam->iPrjX));
cudaThreadSynchronize();

//傅里叶变换
cufftHandle plan;
cufftPlan1d(&plan, filterlength, CUFFT_C2C, prjParam->iPrjX);

//cufftExecC2C(plan, d_data, d_data,CUFFT_FORWARD);

...全文
803 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
愤怒的涛水 2013-04-23
  • 打赏
  • 举报
回复
同上,我也遇到了,求指点!!
wangboyjj 2013-03-09
  • 打赏
  • 举报
回复
您好 ,您这个问题怎么解决的 我也遇到了
soun 2012-08-02
  • 打赏
  • 举报
回复
问题已经得到解决.
原因是函数接口里传过来的是指针.导致错误
soun 2012-08-01
  • 打赏
  • 举报
回复
我将上面的程序稍微调整下语句次序,结果能运行了. 为什么?? 跳出这个函数别的地方又出错了,
我崩溃了. 是系统设置的问题吗?
//傅里叶变换
cufftHandle plan;
cufftPlan1d(&plan, filterlength, CUFFT_C2C, prjParam->iPrjX);

//初始化复数投影,同时补零
CUDA_SAFE_CALL(cudaMemset(d_data,0,sizeof(cufftComplex) * (prjParam->iPrjX) * filterlength));

//GPU上投影预修正、重排
dim3 threads(16, 16);
dim3 grid(96, 120);
preprocessKernel<<< grid, threads >>>(d_bk,d_img,d_data,calib,filterlength, (prjParam->iPrjX));
cudaThreadSynchronize();

cufftExecC2C(plan, d_data, d_data,CUFFT_FORWARD);

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧