使用-G标志删除运行时错误

时间:2013-03-13 18:55:57

标签: cuda

这是来自cudaMemcpyToSymbol vs cudaMemcpy

的后续问答

我认为-G标志用于制作cudaGDB版本。我也看到了明显的错误。 (以下代码中的错误是故意的。问题是关于返回错误没有显示的原因。)

__constant__ float flt[480];   // 1920 bytes
__constant__ int  ints[160];   // 640 bytes

Main() {
 float* pFlts;
 cudaMalloc((void**)&pFlts, 1920+640);

 cudaError_t eerr=cudaMemcpyToSymbol(ints,pFlts,sizeof(ints),sizeof(ints),cudaMemcpyDeviceToDevice);
 printf("ErrVal= %d\n",(int)eerr);
}

当我构建w /: nvcc junk.cu -o junk ,并运行它w /: ./ junk 时,我的结果是:ErrVal = 11 ,这是"无效的参数"。

当我构建w /: nvcc junk.cu -G -o junk ,然后运行它w /: ./ junk 时,我的结果是:ErrVal = 0 ,这是cudaSuccess。

我没有很多带-G标志的经验,但这似乎很奇怪。 为什么-G擦除返回错误?

0 个答案:

没有答案