0

VS 2010k 和 Nsight v3

我正在对一些 cuda 模块进行修改;当我在 VS 这个主机代码中以调试模式运行时:

result = cuLaunchKernel ( cuFunction, dimGrid.x, dimGrid.y, dimGrid.z, dimBlock.x, dimBlock.y, dimBlock.z, shared, stream, argsG, 0);
cudaDeviceSynchronize();
err = cudaGetLastError();

我第一次通过这部分代码和每次通过时,结果的值为零,但err为 30 [或未知]。

所以我启动了 NSight 来解决这个问题。处理了我的整个输入文件,没有任何错误。在 Nsight 中打开内存检查并重新运行。再次处理整个文件而没有投诉。

所以:在主机调试下,每次启动此代码都会导致错误 30,但在 Nsight 的控制下运行并且没有错误。

有人有解释吗?

谢谢

4

1 回答 1

0

解决了程序问题:由于错误,正在计算错误的全局内存地址。为什么 Nsight 没有发现错误,而是直接通过了——即使打开了内存检查,我也不明白。

于 2013-03-09T14:23:19.050 回答