CUDA应用程序中的断点命中计数

时间:2014-01-25 23:03:46

标签: debugging visual-studio-2012 cuda

我目前正在尝试调试MSVS2012 Ultimate中的一些设备代码。我想在我的代码中指出断点,并将其设置为仅在hitcount高于特定值时中断。我看到如何通过设置断点并向其添加条件来实现此目的,但是当我使用CUDA进行调试时,它会在第一次迭代时停止并继续像非条件断点一样。 hitcount不会增加。我觉得奇怪的是断点击中但是hitcount没有增加。有什么建议吗?

__global__ void rkf5()
{
    for(int k = 0; k < numpoints; k++)
    {
        THIS IS WHERE I PUT MY BREAKPOINT.

        do 
        {
            stuff
        } while (condition);

    }

 }

1 个答案:

答案 0 :(得分:1)

如果您没有使用CUDA 5.5 / nSight 3.2,请尝试升级。

某些早期版本的CUDA和nSight的发行说明说命中计数功能不起作用。但是,最新版本(CUDA 5.5 / nSight 3.2)的发行说明中未提及。

如果仍然无法开始工作,您可以随时使用assert设备代码解决此问题,例如:

assert(++my_hit_count != 100);

当assert为false时,这将触发断点。仅在计算能力&gt; = 2.0时受支持。有关详细信息,请参阅“CUDA C编程指南”中的“断言”一节。