“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);
4 个解决方案
#1
我将上面的程序稍微调整下语句次序,结果能运行了. 为什么?? 跳出这个函数别的地方又出错了,
我崩溃了. 是系统设置的问题吗?
//傅里叶变换
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);
我崩溃了. 是系统设置的问题吗?
//傅里叶变换
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);
#2
问题已经得到解决.
原因是函数接口里传过来的是指针.导致错误
原因是函数接口里传过来的是指针.导致错误
#3
您好 ,您这个问题怎么解决的 我也遇到了
#4
同上,我也遇到了,求指点!!
#1
我将上面的程序稍微调整下语句次序,结果能运行了. 为什么?? 跳出这个函数别的地方又出错了,
我崩溃了. 是系统设置的问题吗?
//傅里叶变换
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);
我崩溃了. 是系统设置的问题吗?
//傅里叶变换
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);
#2
问题已经得到解决.
原因是函数接口里传过来的是指针.导致错误
原因是函数接口里传过来的是指针.导致错误
#3
您好 ,您这个问题怎么解决的 我也遇到了
#4
同上,我也遇到了,求指点!!