Nvidia 已经为 CUDA 5 发布了扩展的 Eclipse。他们也为 VS2010 提供了 Nsight 插件。在 VS2010 中,我们可以在内核断点处停止程序执行,但是如何在 Linux 上的 Eclipse 中实现此功能?我没有看到任何 nsight 特定的键来停止执行。我尝试改变视角,但它作为普通的 C/C++ 应用程序进行调试。我正在使用带有 Linux 的 Intel Xeon 8 内核机器 Tesla C2070。
5 回答
我来自 Nsight Eclipse Edition 团队。
我们的目标是专门将应用程序作为普通 C/C++ 应用程序进行调试。这意味着无论您是调试主机代码还是设备代码,都可以设置断点、使用“运行到行”等。
基本上,这个过程对于 Eclipse 来说是相当标准的:
- 创建一个项目(您也可以导入现有的可执行文件)
- 点击调试按钮
- 调试器将运行,默认情况下会中断主函数。请注意,设备上没有发布任何设备代码,因此您只会看到主机线程。
- 在设备代码中设置断点并点击恢复(请注意,断点视图工具栏还允许您在任何 CUDA 内核启动时设置断点)
当设备代码到达断点时,调试器将中断。您可以使用可视化调试器 UI 检查您的应用程序状态。
几个事情,不知道哪个解决了这个问题。使用 RC5.0 更新到最新的驱动程序,但我选择运行 VNC 服务器而不是本机 X 服务器。然后 CUDA 卡专门用于我的应用程序和调试,它就像一个魅力,现在可以从任何地方访问。
304.43 NVIDIA 驱动程序不允许 root 以外的用户调试他们的 CUDA 应用程序。
这个问题在过去或未来的任何公开版本中都不存在。CUDA 文档建议仅使用 CUDA DevZone 中列出的驱动程序。304.43 驱动程序不是其中之一。
这可能是也可能不是您遇到的问题。但我认为这值得一提。
你试过 CUDA 5.0 RC1 吗?它现在可用。你可以下载试试看。我已经尝试过其中的 Nsight,它非常适合调试。
此致!
Eugene,我刚刚安装了 Cuda 5,但无法破解任何内核代码。这是一个全新安装的 centos 5.5,全新下载了 cuda-5,我在安装了 gtx260m 的华硕 g71x 笔记本电脑上运行。
我想也许你仍然不能在一台设备上运行 display 和 dedbug,所以我切换到非 nv x 显示器,但仍然有同样的问题,不能在内核代码中停止。