首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda-gdb在遇到内核调用时退出,并显示"[1] stopped“

cuda-gdb在遇到内核调用时退出,并显示"[1] stopped“
EN

Stack Overflow用户
提问于 2012-05-07 00:29:36
回答 1查看 972关注 0票数 0

我对CUDA还是个新手,在这里我会随机应变…

我正尝试在没有管理员权限的远程计算机上调试我的CUDA程序。我用nvcc -g -G编译我的程序,然后尝试用cuda-gdb调试它。然而,只要gdb调用一个内核(甚至不需要输入它,它也不会在主机代码中发生),我就会得到:

代码语言:javascript
复制
(cuda-gdb) run
Starting program: /path/to/my/binary/cuda_clustered_tree 
[Thread debugging using libthread_db enabled]

[1]+  Stopped                 cuda-gdb cuda_clustered_tree

cuda-gdb然后将我转储回我的终端。如果我再次尝试运行cuda-gdb,我会得到

代码语言:javascript
复制
An instance of cuda-gdb (pid 4065) is already using device 0. If you believe
you are seeing this message in error, try deleting /tmp/cuda-dbg/cuda-gdb.lock.

恢复的唯一方法是kill -9 cuda-gdb和cuda_clustered_ (我假设后者是我的二进制文件的一部分)。

这台机器有两个GPU,正在运行CUDA4.1(我相信--安装了很多,但这是我设置的PATHLD_LIBRARY_PATH ),编译+可以很好地运行deviceQuery和bandwidthTest。

我可以提供更多的信息,如果需要。我在网上搜索了所有我能找到的地方,但没有找到这方面的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 06:03:08

想明白了!事实证明,cuda-gdb讨厌csh。

如果您运行的是csh,则会导致cuda-gdb出现上述异常行为。即使从csh内部运行bash,然后运行cuda-gdb,我仍然可以看到这种行为。您需要将shell作为bash启动,并且只需启动bash即可。

在机器上,默认shell是csh,但我使用bash。系统不允许我直接更改它,所以我在.login脚本中添加了'exec /bin/bash --login‘。

所以即使我在运行bash,因为它是由csh启动的,cuda-gdb也会出现上述异常行为。去掉了'exec‘命令,所以我直接运行csh,上面没有任何东西,仍然显示了这种行为。

最后,我不得不让IT将我的shell更改为直接bash (经过他们耐心的故障排除)。现在它可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10472184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档