我有一台配备2块Geforce 480GTX卡的CentOS 6.0 x64服务器,我用它来调试我的cuda程序。今天我尝试在我的笔记本上使用cuda-gdb远程调试我的程序。所以我试着这样:
我打开了我的bash shell并使用ssh连接到服务器,然后进入程序所在的目录。
我输入以下命令启动cuda-gdbserver: cuda-gdbserver:9999 ./a.out
之后我在bash上得到了这个:
处理./a.out已创建; pid = 4356
收听端口9999
似乎cuda-gdbserver运行良好。
所以我打开了一个新的bash shell,并决定使用cuda-gdb来调试程序。首先我打开了cuda-gdb,现在shell是这样的:(cuda-gdb)
然后我尝试连接远程服务器:目标远程192.168.2.105:9999
其中192.168.2.105是我服务器的IP地址
但是,令我失望的是,我从shell获得了错误信息,其中说: 192.168.2.105:9999:无主机路由。
怎么了?我google了一段时间,有人告诉我,我应该停止服务器上的iptables服务,所以我按照他们说的那样做了( service iptables stop ),但它仍然无效。顺便说一句,我也尝试过cuda-gdb中的target extended-remote命令,没什么好处。
此外,服务器和我的笔记本(运行ubuntu 12.10 x64)都安装了与cuda toolkit 5.5相同的subversion,我可以在我的服务器上进行本地调试。
那么,有人知道我需要做什么吗?很长一段时间它让我很困惑(实际上我很久以前就遇到过这个问题)。我要感谢任何人提前回答我的问题!
答案 0 :(得分:1)
你能ping / ssh远程主机吗?
在我们的测试中,我们注意到CentOS和Fedora默认启用了防火墙。有关如何打开端口的信息,请参阅操作系统文档。
答案 1 :(得分:0)
默认情况下,cuda-gdbserver可能只侦听loopback接口。
尝试cuda-gdbserver 0.0.0.0:9999 ./a.out