首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在VS2010中使用Nvidia NSight查看CUDA线程值?

如何在VS2010中使用Nvidia NSight查看CUDA线程值?
EN

Stack Overflow用户
提问于 2013-02-10 22:37:14
回答 3查看 1.5K关注 0票数 1

我想知道有没有一种方法可以查看给定内核中的所有变量值,例如,对于threadIdx.x =1,它当前正在工作的数据是什么,这些数据的值是什么?

一切都运行正常,所以我的问题是,如何像在普通VS中一样,使用“快速观察”或“添加观察”来查看变量,它们在NSight中的等价物是什么?谢谢,我已经挣扎了几个小时了。

我有CUDA信息窗口和CUDA扭曲窗口,当通过NSight调试时,只显示blockIdx,threadIDx坐标。

代码语言:javascript
运行
复制
   __global__ void addKernel(int *c, const int *a, const int *b)
{
    int i = threadIdx.x;

    if(i<N)
        c[i]=a[i]*b[i];
    // DUmmy code
    if(i<2)
    int k=i;
}

我的内核名为addKernel<<<1,N>>>(dev_c,dev_a,dev_b),我的#DEFINE N 10。

我在if和else中设置了断点。扭曲窗口中的输出设置为显示:

代码语言:javascript
运行
复制
*(a+i)  *(b+i)  *(c+i)  i

 0          0     -1     0
 2          1     -1     1
 4          4     -1     2
 6          9     -1     3
 8         16     -1     4

所以,我的c永远不会被设置。怎么会这样呢?谢谢

附注:那些给我减号的人看到我的问题时总是放弃,我得了-1。再次感谢

EN

Stack Overflow用户

回答已采纳

发布于 2013-02-11 06:03:14

在向内核添加了一些虚拟行之后,我可以看到c列的值更新了。所以,这就是解决方案。我知道这听起来微不足道,但我以前试过添加虚线,除非额外的虚线是其他变量,而不是用于计算c的线程。所以,简而言之,计算新的线程(或内核中任何新的线程),并在CUDA Warp窗口中想要看到的变量后添加这些额外的行。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14798821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档