自己的学习环境搭建

本文最后更新于:2023年5月10日 下午

1、买矿卡P104-100。

矿卡介绍

​ P10x系列是矿潮的时候Nvidia专门推出的Miner显卡,或多或少阉割了Pcie通道和显存带宽。而且没有视频输出接口,得走核显输出。

​ P104-100 ,核心和1070一样,阉割了Pcie通道,没有视频接口,其他都差不多。

买的原因

​ 便宜,130块钱质保三个月,8G显存,作为一个调试深度学习的环境足够。避免了每次打断点调试都要送到服务器上,占用一块或者几块显卡。

特点

​ 便宜

2、矿卡驱动的安装
主板设置

​ 铭瑄H610i主板,真的坑。我先更新了官网最新的BIOS,遇到的第一个问题,BIOS刷不上。居然自己找不到自己BIOS的路径!

​ 还需要我手动找BIOS文件的路径,然后cd过去再敲命令,真的太离谱了。

.nsh脚本在fs6分区跑,但是实际上BIOS文件在fs5分区。

铭瑄BIOS找不到路径
自己手动cd到目录文件刷BIOS

遇到的第二个问题就是主板输出接口的设置,前面提到了,P104-100并没有输出接口,视频信号还是得通过核显从主板输出出去。因为Pcie插槽插上显卡后,主板会默认走Pcie输出视频信号,不走核显了,所以得在主板里设置优先走核显输出。

主要显示设备:IGFX,代表核显。

板载显卡:Enabled,在有独显的情况下还是会有核显选项供你选择。

开启4GB以上MMIO BIOS分配:Enabled,不懂,但如果不开,就算上面步骤设置好了,开机还是黑屏,核显无输出。开了,插上显卡就能正常进系统。

启动选项中:关闭CSM。

铭瑄BIOS3
安全模式使用ddu清除之前的N卡驱动

​ 我之前没有装过N卡,这步就跳过。

证书安装

​ 这里又有个很坑的情况,就是证书安装位置得手动选择受信任的根证书颁发机构,不然驱动死活打不上。

证书安装位置的选择

证书安装位置不对,打驱动报错
驱动安装

​ 在证书安装正确的前提下,安装526.47魔改驱动,全部功能基本都有。

烤鸡测试

​ 双烤三个小时,CPU66度,GPU69度。

P104-100驱动成功后GPUZ

3、Windows环境下cuda、cudann安装

​ 查看你的驱动对应的版本,然后下载合适的版本,一路安装就行。

查看驱动版本和合适的CUDA版本

​ CUDAnn也是,下载注册好后,把文件夹复制粘贴到CUDA文件夹中,因为CUDAnn可以理解为CUDA的一个插件。

4、选取合适的pytorch版本
1
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
CUDA安装成功
4、虚拟机Ubuntu环境下cuda、cudann安装

​ 这边又是一个大坑,差点一度放弃,后面看到方法5。

​ 因为vM虚拟机下创建的Ubuntu环境,显卡直通很难,虽然宿主机有显卡,但是虚拟机里看不见。要设置的话很麻烦,性能也会有损耗。

​ 中间想到了用vSphere的Esxi虚拟化实现,但是太占用资源了。

5、wsl虚拟环境下ubuntu

​ WSL是Windows下运行Ubuntu虚拟机的一个方法,而且方便快捷。甚至显卡驱动都不用装。

安装 WSL | Microsoft Learn

WSL下Nvidia驱动
6、WSL cuda、cudann安装
1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

参考:CUDA Toolkit 11.7 Downloads | NVIDIA Developer

至此WSL上有了完整的CUDA环境。

7、云服务器frp中转设置,实现远程

这步的前提是你得有一个公网IP的云服务器。

因为跑机器学习的需求,很多时候都是在Linux环境下运行代码,所以在宿舍机是Windows的情况下,我构建了WSL的Ubuntu虚拟机,在虚拟机上搭建CUDA环境,然后宿主机Pycharm再ssh到WSL上的Interpreter运行和调试代码。注:实验室有自己的深度学习服务器。但是我远程ssh上用服务器调试的话有点资源浪费。

而且在晚上回去之后,我只能通过远程连实验室Windows宿主机然后才能用WSL,比较麻烦。而且本身我WSL装的Ubuntu Server对网络带宽要求不高,所以我干脆把WLS通过frp做了一个内网穿透,通过公网IP的服务器做中转,这样我在宿舍的电脑上可以不用远程连接WIndows宿主机而直接调用Windows上的WSL。

WSL中frpc.ini设置如下:

WLS中frpc.ini设置

云服务器中frps.ini设置如下

云服务器中frps.ini设置

参考:https://blog.csdn.net/zhengshaolin128/article/details/126795036

WSL frpc配置成功

至此,我的所有设备都能够使用实验室虚拟化WSL下的Conda和CUDA环境来调试代码。

至于白天写的代码晚上回去不同电脑上就不一样了,我还是基于云服务器和Gitea的docker,搭建了一个代码托管服务,晚上回去Pull一下就可以了。

远程ssh到Window下WSL
远程ssh到WSL下Interpreter
8、结束语

​ 配置全套过程大概花费了两天时间。其实以后有个自己的公网IP或者学校开放了个端口或者域名给你会方便很多,不用我这样折腾。

​ 也完全可以把WSL映射到Windows一个端口,然后在宿舍挂VPN再ssh这端口就行,不用frp,据说会带来安全问题。

​ 但我也只是映射了一个虚拟环境出去。现在终于整套都用上自己的环境了,舒服~

处于网络安全考虑,本人只是走通了以上路线,实际并未使用。

云服务器的作用


自己的学习环境搭建
https://anonymouslosty.ink/2023/05/10/自己的环境配置/
作者
Ling yi
发布于
2023年5月10日
更新于
2023年5月10日
许可协议