【问题标题】:Strange behavior with NVIDIA CUDA 4.1 RC2 and Parallel NSight 2.1NVIDIA CUDA 4.1 RC2 和 Parallel NSight 2.1 的奇怪行为
【发布时间】:2012-02-02 14:57:45
【问题描述】:

我在 Nsight 2.1 中调试我的 CUDA 代码时遇到了一个奇怪的问题。我有两个从 main.cu 调用的 global 函数,如下所示:

dim3 block(threadsPerBlock);
dim3 grid(numBlocks);
InitPhotons<<<grid,block>>>(devicerun,sources[i],1);
cudaThreadSynchronize();
MC<<<grid,block>>>(devicerun,sources[i],1);

我可以成功地在 InitPhotons 中打断点,并单步执行该函数。但是,我只能打我在 MC 中设置的第一个断点。如果我尝试单步执行函数(VS 中的 F10),调试器的行为就像我使用了 continue 命令 (F5) 并且不再命中断点。

还有其他人遇到过这个问题吗?有人对解决方案有任何想法吗?

我在 Visual Studio 2010 Pro 中使用 Parallel NSight 2.1 和 CUDA 4.1 RC2。我正在使用 -G0 标志进行编译,并且禁用了优化。

编辑:问题似乎与代码修补内存的默认大小有关。我将 Code patching memory factor 从 2 更改为 4,一切正常(Nsight->Options->CUDA->Code patching memory factor)。

【问题讨论】:

    标签: cuda gpgpu gpu nsight


    【解决方案1】:

    我是 NVIDIA Parallel Nsight 团队的成员。不幸的是,这听起来可能是一个错误。

    我们有机会看看您的项目吗?请通过电子邮件与我联系,在此处提交问题的错误:http://developer.nvidia.com/rdp/bugs/parallel-nsight-bug-reporting

    我会尽快看看。

    谢谢!

    【讨论】:

    • 再看了一下,似乎问题出在代码修补内存上。当我将代码修补内存因子设置为 2 时发生错误。将其增加到 4,我可以正常调试。我仍然会提交错误报告,因为这可能会弹出错误消息。
    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2012-03-17
    • 1970-01-01
    • 2011-12-09
    • 2011-10-05
    • 2021-12-10
    相关资源
    最近更新 更多