如何使用 optirun 命令在 nsight 中启动项目的调试版本?
Posted
技术标签:
【中文标题】如何使用 optirun 命令在 nsight 中启动项目的调试版本?【英文标题】:How to start debug version of project in nsight with optirun command? 【发布时间】:2012-11-16 13:11:36 【问题描述】:我一直在编写一些简单的 cuda 程序(我是学生,所以我需要练习),问题是我可以从终端使用 nvcc 编译它(使用 Kubuntu 12.04LTS),然后使用 optirun 执行它。/ a.out (hardver 是 dell inspiron 上的 geforce gt 525m),一切正常。主要问题是我无法从 Nsight 做任何事情。当我尝试启动代码的调试版本时,消息是“启动失败!找不到二进制文件!”。我认为这是关于使用 optirun 运行命令,但我不确定。有没有类似的经历?谢谢,提前帮助的人。 :)
【问题讨论】:
在 nsight 中,在 Project...Build Configurations...Set Active 下,是否选择了Debug
或 Release
?您使用什么构建命令来构建您的项目?你用什么命令来运行调试版本?
调试版本已设置。 :) 我不确定你的意思是什么。 :D 我通过单击绿色播放按钮运行它,它作为本地 c/c++ 应用程序运行,我认为现在这可能是一个问题。但我不知道如何正确设置它。你能帮我解决这个问题吗? :)
如果您执行 Project...Clean 然后是 Project...Build Project 然后是 Run...Debug 会发生什么?
非常感谢。我之前没有使用 IDE for C(只有 Java),而且我总是自己输入 Makefile,所以我从没想过推动绿色启动不会执行 make 命令。 :) 这是愚蠢的错误,很抱歉打断你。 :) 再次感谢。
对我来说,按下绿色的“运行”按钮会 进行制作(然后启动代码)。你可以试试看底部的状态窗口。或者,为了向自己证明这一点,请尝试 Project...Clean,然后按下绿色的“运行”按钮。我不确定在这种情况下到底是什么问题。但是,我认为按下绿色按钮 不会 启动调试模式。调试模式(即启动调试器)和运行项目的调试版本是两件稍微不同的事情。
【参考方案1】:
由于这是我在搜索“nsight optirun”时发现的第一个帖子,所以我只想写下我为使其对我有用所采取的步骤。
转到运行 -> 调试配置 -> 调试器
找到 CUDA GDB 可执行文件的文本框(在我的例子中,它设置为“$cuda_bin/cuda-gdb”)
添加“optirun --no-xorg”,在我的情况下,它是“optirun --no-xorg $cuda_bin/cuda-gdb”
如果您有一个 OpenGL 窗口,则可能不需要“--no-xorg”选项,甚至会适得其反,因为它会阻止其中任何一个出现。但是对于我的科学代码,它是必需的,因为它可以防止我遇到内核超时。
寻找错误的快乐。
【讨论】:
【参考方案2】:-
我们在没有 optirun 的 Optimus 系统上测试了 Nsight - 有关在 Optimus 系统上使用 CUDA 工具包的信息,请参阅CUDA Toolkit Getting Started 中的“安装 cuda 工具包”。我们尚未尝试使用 Nsight EE 进行 optirun。
如果您仍需要使用 optirun 进行调试,您可以尝试制作一个使用 optirun 启动 cuda-gdb 的 shell 脚本,并在调试配置属性中将该 shell 脚本设置为 cuda-gdb 可执行文件。
【讨论】:
【参考方案3】:最简单的做法是使用 optirun 运行 eclipse,它也可以正常运行您的应用程序。
【讨论】:
以上是关于如何使用 optirun 命令在 nsight 中启动项目的调试版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS 2010 中使用 Nvidia NSight 查看 CUDA 线程值?