【问题标题】:Nsight 5.0 on MacPro lion 10.7.4MacPro Lion 10.7.4 上的 Nsight 5.0
【发布时间】:2013-02-05 07:03:32
【问题描述】:

我是 CUDA 开发新手,我在 MacPro 上使用 NSight 5。

我正在使用两个粒子(ver1ver2,这是两个具有指向另一种结构的指针的结构 - links)进行非常简单的模拟

编译后的代码在到达这个块的末尾时似乎遇到了问题,并且从未进入integrate_functor()

...    
thrust::device_vector<Vertex> d_vecGlobalVec(2);

d_vecGlobalVec[0] = ver1;
d_vecGlobalVec[1] = ver2;

thrust::for_each(
    d_vecGlobalVec.begin(),
    d_vecGlobalVec.end(),
    integrate_functor(deltaTime)
);
...

所以我的问题是:

  1. 在NSight中,我可以看到ver1ver2的成员变量的值;但就在此块中代码的最后一行之前,当我展开 d_vecGlobalVec 的层次结构时,我可以看到这些值中的任何一个 - 相应的字段(例如,此向量中的第一个元素)只是空的。为什么会这样?显然,ver1ver2 在主机备忘录上,而d_vecGlobalVec 中的值在设备上。

  2. 2.

NSight 团队的一名成员发布了this

那么,总的来说,这是否意味着我应该能够在主机和设备代码之间进出,并且能够看到主机/设备变量,就好像它们之间没有障碍一样?

系统:

NVIDIA GeForce GT 650M 1024 MB

Mac OS X Lion 10.7.4 (11E2620)

【问题讨论】:

  • 好的,我刚刚发现,它确实进入了 'device' 注释函数
  • 好吧,我刚刚发现(通过古老的“打印”),显然,程序确实进入了“设备”注释函数,但调试没有停在断点处 ChrisV @ NAVIDIA 有一篇解决类似问题的帖子 stackoverflow.com/a/13692092 但我的问题仍然存在: 1. 我怎样才能让它在我的 mac 上运行的 NSight 中工作,特别是如何“打开第二个 IDE”实例并将其 CPU 调试器与 Mac OS 10 上的独立 NSight 连接 2. 出于某种原因,调试器总是在 main() 函数的第一行中断 - 这会对任何事情产生影响吗?

标签: eclipse cuda nsight


【解决方案1】:

确保实际调用了您的设备代码。检查所有返回代码并确认该设备实际在输出上工作。如果thrust认为它更有效,有时可能会在主机上运行代码。

我真的建议更新到 10.8 - 它有最新的驱动程序,对 NVIDIA GeForce 6xx 系列的支持最好。

另外请注意,为了获得最佳体验,您需要使用不同的 GPU 进行显示和 CUDA 调试 - 否则 Mac OS X 可能会干扰并终止调试器。

【讨论】:

  • 嗨,Eugene,谢谢,但是由于代码在那里终止并且它从未进入我的 device 带注释的函数integrate_functor(),我无法看到给出的确切位置缺少日志信息 - 我该如何做你所建议的? "确保实际调用了您的设备代码。检查所有返回代码并确认该设备实际在输出上工作" "
  • 从外观上看,您的设备代码永远不会被执行。这有多种可能的原因——通常是错误的编译器设置(确保为 SM 3.0 生成 PTX 和/或 SASS)或错误的启动配置。我建议从简单的 CUDA C (sans Thrust) 应用程序开始(例如,您可以使用 Nsight 新的 CUDA C 项目向导创建 bitreverse 应用程序)以确保正确安装 CUDA 工具包并可以用于开发应用程序。
  • 另一种选择是将您的源代码发送到 cudatools@nvidia.com(您可能会提到它是给 Eugene 的),以便我们可以在本地重现/排除故障。
  • 嗨,非常感谢,尤金!是的,我一直在运行 Particle 和 NBody 示例,它们看起来都运行良好。所以我假设启动配置和编译器设置都很好?正如你可以看到我在原始帖子中添加的评论,我现在最大的问题是调试器只停在主机代码而不是设备代码。 @ChrisV 提到了一些关于这个问题的事情,但我认为它与我的情况还是有点不同
  • 现在,您可以尝试使用 cuda-gdb 来调试 Particle 或 NBody 并确认您实际上可以破解设备代码吗?很可能你有一些 GPU 调试的工具包安装问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 2012-10-25
相关资源
最近更新 更多