我一直在写一些简单的cuda程序(我是学生,所以我需要练习),问题是我可以从终端使用nvcc编译它(使用Kubuntu 12.04LTS),然后使用optirun ./a.out执行它(hardver是dell inspiron上的Geforce gt 525m),一切正常。主要问题是我无法从Nsight做任何事情。当我尝试启动代码的调试版本时,消息是"启动失败!找不到二进制文件!我认为这是关于使用 optirun 运行命令,但我不确定。有类似的经历吗?谢谢,提前帮助人们。:)
由于这是我在搜索"nsight optirun"时找到的第一篇文章,我只想写下我为使其为我工作而采取的步骤。
-
转到运行 -> 调试配置 -> 调试器
-
找到 CUDA GDB 可执行文件的文本框(在我的例子中,它被设置为"${cuda_bin}/cuda-gdb")
在前面加上"optirun --no-xorg", 在我的例子中,它是"optirun --no-xorg ${cuda_bin}/cuda-gdb"
如果你有一个OpenGL窗口,"--no-xorg"选项可能不是必需的,甚至适得其反,因为它可以防止任何窗口出现。然而,对于我的科学代码,它是必需的,因为它可以防止我遇到内核超时。
快乐的虫子狩猎。
- 我们在没有optirun的Optimus系统上测试了Nsight - 请参阅CUDA工具包入门中的"安装cuda工具包",了解如何在Optimus系统上使用CUDA工具包。我们还没有尝试过使用Nsight EE进行optirun。
- 如果您仍然需要使用 optirun 进行调试,您可以尝试制作一个使用 optirun 启动 cuda-gdb 的 shell 脚本,并在调试配置属性中将该 shell 脚本设置为 cuda-gdb 可执行文件。
最简单的方法是使用 optirun 运行 eclipse,这也将正常运行您的应用程序。