云计算百科
云计算领域专业知识百科平台

利用vscode远程连接gpu实现服务器展示图像(以foundationpose为例子)

之前配置foundationpose环境花了大量时间,一直卡在boost库的配置,但是又是必要的后面才知道这需要Linux系统,后来脑子一拍既然一堆神经网络都需要Linux系统何苦折磨自己的电脑。

考虑到装双系统太麻烦,而且我的电脑本身就很垃圾,所以使用云端GPU显然是个不错的选择。

这里我使用的是autodl算力云,价格便宜,因为算法社区的存在配置环境也是相当的快,学生还有优惠,绝对是你的第一选择(反正老师会报销的)。AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL

租GPU并创建环境

充值完autodl以后就可以去购买了

这里随便选的3090的一个显卡专区,有钱的也可以去租更贵的。

选择好创建并开机就可以了。

进入控制台

可以先不急着开机,开机每小时1.58/h还是蛮贵的。

你可以选择无卡模式开机(在更多里面)

在vscode中远程连接autodl

在插件中下载好了remote-ssh等插件的情况下(左边出现下面红标的东西)

点击左下角红标处再点击连接到主机。

复制第一个登陆指令粘贴进去

这时候就会新开一个界面开始连接初始化然后再复制密码

就可以进去了,这时候左下角就会显示ssh连接到了:

注意这里如果你已经连接过一次,就不要直接粘贴,而是直接点你之前连接的这个主机否则会显示连接失败。

这时候如果你处于开卡模式去打开文件夹运行run_demo.py应该是会出现这个错误。(下图为foundationpose)(没错你不用大费周章的去重新配置环境,社区已经有人给你配置好了感动)

qt.qpa.xcb: could not connect to display  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/root/miniconda3/envs/fp/lib/python3.9/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb.

而不会显示图像

除此之外,你使用matplotlib,或者opencv展示图像也是展示不出来的,所以这个问题千万不要丢给ai,ai只会浪费你更多的时间。

连接远程GPU但是实现图像的展示

下载mobaxterm并连接远程gpu

这时候我们就需要另外一个软件了,这个软件是mobaxterm

MobaXterm Xserver 带有 SSH、telnet、RDP、VNC 和 X11 – 家庭版 — MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 – Home Edition

上面是下载连接选择绿色的下载就行。进去以后先用MobaXterm配置ssh,这一步可以看下面的链接:

使用 MobaXterm 连接矩池云 GPU服务器_mobaxtermgpu版本-CSDN博客

虽然云服务器不一样但是具体都差不多这里我就不多说了。

我们看到这个博客最后

x11-forwarding为x,所以这样依然无法展示图像,你可以先试试xclock,只有输入xclock在mobaxterm中可以展示出来,才说明你等下可以在vscode中跑代码才能展示图像。那么这里要怎么设置嘞。

将X11 Forwarding打开以实现图形可视化

首先还是在这个界面

这里我们毕竟有root的权限,可以直接输入下面三行代码:

sudo apt-get update
sudo apt-get install xorg
sudo apt-get install xauth

然后配置ssh服务器

sudo vim /etc/ssh/sshd_config

毕竟我是个机械生所以对ubantu操作系统其实不太懂,所以这里修改我讲细一点:

  • 进入 vim 后,按 i 进入插入模式进行修改。(插入以下内容,右键点一下就可以粘贴进去)

  • X11Forwarding yes
    X11UseLocalhost no
  • 修改完成后,按 Esc 退出插入模式,然后输入 :wq 保存并退出。

这里有些哥们会出现权限问题,你就重启软件一下就好了。

没问题的话就重启ssh

sudo service ssh restart

然后我们来到主界面右键你的session选择

将其Adavanced SSH settings中的X11-forwarding勾选上。

在setting中选择configuration

选择X11 remote access为 full

这时候在mobaxterm终端输入xclock会显示图像

即代表成功,并且再次进来会发现:

X11 Forwarding也是绿色的√。

在vscode运行代码并得到结果展示

然后我们开卡回到vscode重新运行run_demo.py发现依然展示不出图像,或者是下面随便打的代码也依然展示不出图像

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)

scatter = ax.scatter(x, y, z, c='r', marker='o')

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
ax.set_title('3D Scatter Plot')

plt.show()

运行以后只是运行成功但是没有展示

这时候需要在mobaxterm终端中输入:

echo $DISPLAY

并将其结果复制下来

在vscode终端中输入

export DISPLAY=

并将刚刚的结果粘贴进去。

再次运行可以发现之前那段随便输入的代码可以得出图像了。

这时候如果你是开卡模式去运行run_demo.py可以得出结果:

以上便是连接云端gpu进行本地运行,并可以得到图像展示,远程连接是很简单的,得到图像还是有点难的。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 利用vscode远程连接gpu实现服务器展示图像(以foundationpose为例子)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!