CUDA5中的调试器

CUDA5中的调试器,cuda,nsight,Cuda,Nsight,Nvidia已经发布了CUDA5的扩展eclipse。他们也有针对VS2010的Nsight插件。在VS2010中,我们可以在内核的断点处停止程序执行,但如何在Linux上的eclipse中实现这一功能呢?我没有看到任何特定于nsight的键来停止执行。我试图改变透视图,但它作为一个普通的C/C++应用程序进行调试。我使用的是Tesla C2070,Intel Xeon 8核机器和Linux。我来自Nsight Eclipse Edition团队 我们的目标是将应用程序作为普通的C/C++应用程

Nvidia已经发布了CUDA5的扩展eclipse。他们也有针对VS2010的Nsight插件。在VS2010中,我们可以在内核的断点处停止程序执行,但如何在Linux上的eclipse中实现这一功能呢?我没有看到任何特定于nsight的键来停止执行。我试图改变透视图,但它作为一个普通的C/C++应用程序进行调试。我使用的是Tesla C2070,Intel Xeon 8核机器和Linux。

我来自Nsight Eclipse Edition团队

我们的目标是将应用程序作为普通的C/C++应用程序进行调试。这意味着您可以设置断点,使用“运行到线路”等,而不管您是调试主机还是设备代码

基本上,该过程对于Eclipse来说是相当标准的:

  • 创建项目(也可以导入现有的可执行文件)
  • 单击调试按钮
  • 调试器将运行,默认情况下将中断主函数。请注意,没有在设备上发布设备代码,因此您只能看到主机线程
  • 在设备代码中设置断点并点击resume(请注意,断点视图工具栏还允许您在任何CUDA内核启动时设置断点)
  • 当设备代码到达断点时,调试器将中断。您可以使用可视化调试器UI检查应用程序状态。

    Eugene, 我刚刚安装了CUDA5,但无法插入任何内核代码。这是centos 5.5的全新安装,并有cuda-5的新下载,我正在安装gtx260m的华硕g71x笔记本电脑上运行


    我想也许你仍然不能在一台设备上运行display和dedbug,所以我切换到了非nv x显示器,但仍然有同样的问题,无法在内核代码中停止。

    你试过CUDA 5.0 RC1吗?现在可以使用了。您可以下载并试用它。我在里面试过Nsight,它可以很好地进行调试


    致以最良好的祝愿

    304.43 NVIDIA驱动程序不允许root用户以外的用户调试其CUDA应用程序

    这个问题在过去或将来的任何公开发行中都不存在。CUDA文档建议仅使用CUDA DevZone中列出的驱动程序。304.43驱动程序不是其中之一


    这可能是问题所在,也可能不是问题所在。但我觉得值得一提

    两件事,不确定是哪件事解决了问题。驱动程序用RC5.0更新到最新版本,但我选择运行VNC服务器而不是本机X服务器。然后CUDA卡专用于我的应用程序和调试,它就像一个符咒,现在可以从任何地方访问。

    我认为在Linux上不可能使用调试工具。@TMB-这种回复应该作为对Eugene答案的评论而不是作为其本身的答案提交。这样,我们可以保持所有答案的相关性,以便其他用户更容易阅读。干杯:)调试器无法插入设备代码的一些常见原因是:1。相同的GPU用于CUDA调试和OS UI。Nsight Eclipse Edition调试器需要专用GPU。2.CUDA API调用因某种原因失败。确保检查CUDA API调用的返回值。3.CUDA工具包未正确安装。常见问题之一是系统上安装了错误的NVIDIA驱动程序版本。您可以尝试命令行cuda gdb吗?有时它提供了更好的诊断方法。@username\u 4567请不要散布虚假信息。CUDA在Linux上的调试工作与Windows一样好,甚至更好。如果还没有,请尝试cuda gdb。TMB:正如尤金所说,请试用cuda gdb。Nsight Eclipse将其用作后端。这将有助于隔离问题。如果cuda gdb也未能达到断点,我们可以免除Nsight Eclipse的任何责任。这真的是一个答案吗?“我做了一些非常不同的事情,但现在它突然起作用了”?也许这本可以成为一个评论。这对我不起作用:(我可以在
    cuda gdb
    中设置断点,但当我在eclipse中尝试这样做时,它不会停止。它只在主函数中停止,即使我根本没有设备代码。@janisz这可能有几个原因。在Nsight EE调试器中运行时,应用程序是否成功运行到完成?如果导入cuda示例,是否会中断s?您是从终端模拟器还是控制台运行cuda gdb?我可以在终端中调试应用程序,但当我在Eclipse中设置断点时,没有加载任何符号表。请使用控制台日志中的“file”命令。“”。我试图更改配置中的某些内容(随机单击)但没什么帮助,应用程序是用正确的标志构建的。最后,以下步骤解决了我的问题:右键单击project>Debug As>Local C/C++应用程序。它将我切换到调试模式,所有断点都可以工作。现在,当我单击green bug时,它也可以工作。我插入第二张卡,甚至可以删除bug内核代码:)Elipcse没有你想象的那么容易VS@janisz看起来您试图调试一个发布版本。是的,但当我检查输出文件时,它并没有被剥离,我可以调试它。可能eclipse使用另一个文件来运行调试,可能是来自temp的。我不知道,但我真的很高兴它最终能工作:)