WIN11|安装WSL2|在WSL2上跑pytorch-gpu|远程连接WSL2
个人电脑的关键配置:显卡是RTX3090,系统是WIN11。由于买的是整机,所以刚开机就装好了驱动,本人没有再进行显卡驱动(同时包含了wsl中的驱动)的安装。如果是其他配置,要按照自己的实际情况进行安装使用。
一、安装 WSL2 Ubuntu20.04
Win11安装WSL2很简单,只需要一行命令就可以安装好 Ubuntu20.04 版本的 wsl2:
wsl --install
想安装其他版本的话,参考 https://blog.csdn.net/fyz_jkl/article/details/122792853
二、在 WSL2 中安装 CUDA
安装 CUDA toolkit、cudnn、对应版本的 pytorch 以及 anaconda,在这篇文章里都有 https://blog.csdn.net/fyz_jkl/article/details/122792853。
注意:建议先安装好 anaconda,再进行对应版本的 pytorch 安装;在本机下载好 cudnn 后,wsl 中可以检测到 Windows 中的目录结构,在 /mnt 下就可以看到对应的盘,然后通过 cp 命令拷贝到 wsl 中的目录结构中在操作即可。
三、本地局域网通过 SSH 连接 WSL 来跑代码
在此之前需要先启动 WSL 中的 SSH 服务,这个请自行搜索。
本地可以通过 cmd、Pycharm 以及 VSCode 等方式来连接 WSL,其中 cmd 直接输入以下命令来连接。
ssh {登录用户名}@{wsl的IP地址} -p {端口号}
使用 Pycharm 来连接可以参考此文章 pycharm使用wsl、SSH_weiwei维的博客-CSDN博客,使用 VSCode 来连接可以参考此文章 https://www.jianshu.com/p/a477622b9066,把其中对应的 IP 改成 wsl 的 IP 即可。
注意:Pycharm 中的 ssh interpreter 是将自己本地的 project 映射到远程主机上,而 VSCode 是直接使用访问远程主机的目录结构,然后可以直接在本地编辑远程的代码。这两者逻辑不一样,各有利弊,Pycharm 的逻辑可以更好的支撑它的强大功能(因为本地就有完整的项目),而 VSCode 的逻辑好在不用把整个项目复制到本地就可以远程操作,但功能局限,操作起来不是很方便。
四、远程连接 WSL
如果你的主机拥有一个公网IP,那恭喜你直接访问就可以了,但是如果没有公网IP的话就需要借助其他工具来实现本地与远程电脑进入同一个虚拟局域网,从而可以相互访问。
实现本地与远程进入同一虚拟局域网可以参考这个文章 https://zhuanlan.zhihu.com/p/397451362,但里面只说了两台 Windows 电脑该如何配置,其实还需要在 WSL 中安装并开启 ZeroTier,这里可以参考 https://www.jianshu.com/p/9f7691cb32d3,不过在执行 sudo zerotier-cli join {网络ID} 时可能会报错,如果是 ‘zerotier-cli: missing port and zerotier-one.port not found in /var/lib/zerotier-one’ 这个错误,执行 sudo zerotier-one -d 这条命令就可以了。
在本地主机与 WSL 进入同一虚拟局域网之后,就可以模拟实现第三章中的效果了,将 WSL 的 IP 地址直接改为 ZeroTier 中分配的地址就 OK 了。(如果有比 ZeroTier 更好用的软件,求分享~
|