【问题标题】:How to Debug CUDA code on a remote server?如何在远程服务器上调试 CUDA 代码?
【发布时间】:2018-12-20 15:42:36
【问题描述】:

我想在远程服务器上调试CUDA代码,我的设备如下:

电脑:Ubuntu 16.04,CUDA 8.0.61,nvcc v8.0.61,Geforce MX150 and integrated graphics

服务器:Ubuntu 14.04,CUDA 8.0.61,nvcc v8.0.61,Tesla P100-PCIE*2

我已经在我的电脑上安装了Nsight Eclipse Edition 7.5,我想要的是使用远程调试功能,我可以在我的电脑上使用可视化调试窗口和远程gdbserver,但是我遇到了一些问题。

当我配置远程调试以尝试连接到远程服务器时,Connection timed out 从连接返回。

不知道是不是和端口有关。当我登录到服务器时,它看起来像这样:

SSH -P 50034 username@xxx.xxx.xxx.xxx

在设置连接的时候,注意到好像使用了2345端口,所以不知道有没有冲突。设置页面是这样的:

到目前为止,我已经尝试了以下方法:

  1. 重新安装Nsight Eclipse版,在服务器上命令行调试示例代码,运行正常。
  2. 有些论坛提到要开放2345端口,AFAIK,你可以使用这个端口,只要请求时端口不被占用,但是,我不确定。
  3. 考虑到服务器对访问者的IP地址有一定的限制,所以尝试了几次换网,最后都失败了。

有什么想法吗?

【问题讨论】:

  • 换一个端口。
  • @talonmies 我将 2345 更改为其他端口,例如 4545,这似乎不起作用。

标签: cuda nsight


【解决方案1】:

这个问题终于解决了,我松了一口气。

由于我的服务器在集群中,因此端口已映射。比如连接服务器时的命令要附加端口id(即ssh -p 50034 uesrname@xxx.xxx.xxx.xxx),所以nsight eclipse版的2345端口(默认)访问服务器时,不识别端口,然后超时给定了延迟,所以我把2345端口映射到服务器的2345端口,映射大致如下图:

-A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 2345 -j DNAT --to-destination xxx.xxx.xxx.xxx:2345

第一个xxx.xxx.xxx.xxx是服务器的IP地址,最后一个是你的服务器在集群中的真实地址如11.11.11.24,这是由于条件不同造成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-12
    • 2013-08-03
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2013-04-20
    • 2010-10-21
    相关资源
    最近更新 更多