怎样搭建一个RTX 3090的深度学习工作站
大概描述一下基本情况
GPU 3090
Nvidia Driver 455.23.05
CUDA 11.1.0
Ubuntu20.04 LTS安装(Macbook)
Macbook制作Ubuntu启动盘(用Win的话更简单,百度一下下载对应的软件一键烧写就可以了,只是手头没有win系统的电脑)
从Ubuntu官网(https://cn.ubuntu.com/)下载镜像。我下载的是20.04 LTS版本(http://releases.ubuntu.com/20.04/ubuntu-20.04.1-desktop-amd64.iso)
hdiutil convert -format UDRW -o /此处中文替换为希望生成的img文件所在地址和名字
(一般与源文件同名同目录就行了)/ubuntu-20.04.1-desktop-amd64.img /此处中文对应系统镜像所在地址/ubuntu-20.04.1-desktop-amd64.iso
PS: iso文件的名字不一定跟我的完全一样,如果不一样注意更换
接着unmount U盘
diskutil list
diskutil unmountDisk /dev/disk2
此处/dev/disk2对应diskutil list上的u盘,也可能是/dev/disk1或者/dev/disk3
sudo dd if=/刚刚通过镜像文件生成的文件.img.dmg of=/dev/rdisk2 bs=1m
下载安装conda环境
从官网(https://www.anaconda.com/)下载后安装
sudo dpkg -i 文件路径/anaconda文件名
PS:安装过程中可能出现错误,复制错误信息百度就好了(可能需要更换sourcelist)
安装必要的依赖包
sudo apt install gcc
sudo apt install make
sudo apt install lightdm
其中,安装完lightdm后会提示GDM和Lightdm两个选项,选择Lightdm
禁用Nouveau
这里直接百度就好了,有很多教程
禁用这个的目的是防止集显和显卡冲突(有时候会遇到循环登陆但是无法进入系统的情况,如果遇到了检查下是否已经禁用nouveau)
如果不放心,使用以下命令行确认
lsmod | grep nouveau
如果无任何输出说明已经被禁用
开始安装驱动和CUDA
Cuda和驱动没必要分开安装(一开始我是分开安装的,后来重装系统后发现一起安装更快,而且出错概率也小)
首先下载安装包,我的下载地址是
https://developer.nvidia.com/cuda-11.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=runfilelocal
这里推荐run格式的文件
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
按住CTRL+CTRL+F1、F2 … F6中的一个,进入tty,输入用户名、密码,接着输入
sudo service lightdm stop
此时就没有可视化界面了,所以进来之前记一下下载好的run文件的地址和文件名(如果忘记了,通过‘ls’查看当前目录下的文件夹和文件,用‘cd + 空格 + 文件夹’ 进入指定文件夹)
输入以下指令
sudo sh 文件路径/文件名.run
输入accpet,然后键盘移动到Install,跟着步骤走就可以了。
安装完成后
sudo service lightdm start
Cudnn
从Nvida官网注册账号并下载对应CUDA的版本就可以了(我这里是v8.0.5)
具体网上很多教程这里就不赘述了
开始安装自编译的Pytorch
安装好git
sudo apt install git
进入Github的PyTroch项目(https://github.com/pytorch/pytorch),往下拉跟着步骤走
conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses
conda install -c pytorch magma-cuda111
这里的magma-cuda111是根据安装的cuda版本决定的,具体看https://anaconda.org/pytorch/repo
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
这一步是指具体运用哪个anaconda,可以在运行以上命令后用下面的命令查看(之所以强调这点是,在一开始的时候楼主在conda虚拟环境安装,最后编译完成后对应的是系统的anaconda,这俩不在一个地方)
export | grep CMAKE_PREFIX_PATH
在运行python setup.py install之前需要修改下setup.py文件,找到TORCH_CUDA_ARCH_LIST,将其修改为(如果只是在原先的TORCH_CUDA_ARCH_LIST下加入新的代码是不起作用的,这个有测试过)
# ie `TORCH_CUDA_ARCH_LIST='8.0+PTX'
(参考自https://github.com/pytorch/pytorch/issues/45021)
最后编译(速度取决于你的CPU,一般半个小时左右)
python setup.py install
至此,整个环境安装就算结束了,直接在控制台运行你的python代码就可以了
如果是使用Pycharm的用户,把环境设置在上面提到的CMAKE_PREFIX_PATH对应的Anaconda
如果修改了其他变量想重新编译,可以先删除已经编译的torch再重新重复本章操作
pip uninstall torch
python setup.py clean
工作站远程启动
为了省事买了一个开机棒,远程操控启动
如果有精力自己用树莓派折腾一个也是可以的。
Ubuntu远程无监视器启动
由于是当工作站使用,不需要开屏幕。
尝试过修改GRUB的引导,但都以失败告终(无法在不接显示器的情况下远程开机并成功进入系统)
最后解决方案是几块钱在网上买了一个“HDMI假负载”的东西,轻松模拟接入4K显示器。
但是关于这个问题,如果有亲测可以从设置解决问题的朋友,麻烦告知,非常感谢!
至此,整个工作站安装完成。