1

我有一个配备 2 个 Geforce 480GTX 卡的 CentOS 6.0 x64 服务器,我正在使用它来调试我的 cuda 程序。今天我尝试在我的笔记本上使用 cuda-gdb 来远程调试我的程序。所以我尝试这样:

  1. 我打开我的 bash shell 并使用 ssh 连接到服务器,然后进入程序所在的目录。

  2. 我通过键入以下内容启动 cuda-gdbserver:cuda-gdbserver :9999 ./a.out

  3. 之后我在 bash 上得到了这个:

    进程 ./a.out 创建;PID = 4356

    监听 9999 端口

    看来 cuda-gdbserver 运行良好。

  4. 所以我打开了一个新的 bash shell,并决定使用 cuda-gdb 调试程序。首先我打开了cuda-gdb,现在shell是这样的:(cuda-gdb)

  5. 然后我尝试连接远程服务器:target remote 192.168.2.105:9999

    其中 192.168.2.105 是我的服务器的 IP 地址

  6. 但是,令我失望的是,我从 shell 收到了错误信息,上面写着:192.168.2.105:9999: No route to host。

怎么了?我google了一段时间,有人告诉我应该停止服务器上的iptables服务,所以我按照他们说的做了(service iptables stop),但它仍然不起作用。对了,我也试过cuda-gdb中的target extended-remote命令,不行。

另外服务器和我的笔记本(运行ubuntu 12.10 x64)都安装了cuda toolkit 5.5的同一个subversion,我可以在我的服务器本地调试好。

那么,有人知道我需要做什么吗?真的让我困惑了很久(其实我很久以前就遇到过这个问题)。我要感谢任何提前回答我问题的人!

4

2 回答 2

1

你能ping/ssh远程主机吗?

在我们的测试中,我们注意到 CentOS 和 Fedora 默认启用了防火墙。请查阅您的操作系统文档以了解如何打开端口。

于 2013-09-18T15:30:49.767 回答
0

可能是 cuda-gdbserver 默认只监听环回接口。

尝试cuda-gdbserver 0.0.0.0:9999 ./a.out

于 2013-09-18T14:59:18.813 回答