搭建个人深度学习工作站(环境篇)
前言
硬件配置
主板:华硕 TUF GAMING B560M-PLUS WIFI
CPU:Intel i7-11700 @ 2.50GHz 8核16线程
内存:英睿达 美光32GB(16Gx2)套装 DDR4 3600MHz
GPU:NVIDIA RTX 3080Ti
硬盘:
- Samsung SSD 980 1TB x 2
- WDC WD20EZBX-00A 2TB
电源:长城 猎金部落 额定1100W G11金牌全模
操作系统:Ubuntu Server 22.04
概述
根据李沐老师的视频,有三种环境安装方式:
- CUDA + conda PyTorch
- NVIDIA driver + conda PyTorch
- NVIDIA driver + NVIDIA Docker
第一种方案:首先从官网上下载 CUDA 大礼包进行系统级别的安装,随后在各个 conda 环境内安装 PyTorch. 大礼包的内容非常全,但如果嫌里面的驱动版本不够新,也可以先单独安装驱动,然后在安装大礼包时把驱动勾掉即可。这个方案的劣势是所有环境都用这个 CUDA,可能会产生一些版本问题。
第二种方案(我选择使用的方案):在系统层面上只安装驱动,在 conda 环境里安装 PyTorch 时顺便安装 CUDA. 好处是 CUDA 也在环境里,版本容易控制,坏处是多消耗一些空间,并且安装的 CUDA 可能不是那么全。
第三种方案:和第二种差不多,在系统层面上只安装驱动,然后开 Docker 容器安装 PyTorch、CUDA 等。
安装 NVIDIA Driver
禁用 nouveau
Ubuntu 系统集成的显卡驱动程序是 nouveau,它是第三方为 NVIDIA 开发的开源驱动,我们需要先将其屏蔽才能安装 NVIDIA 官方驱动。 所以我们要先把驱动加到黑名单 blacklist.conf 里。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 修改属性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
# 用 vim 打开
sudo vim /etc/modprobe.d/blacklist.conf
# 在最后一行加入以下几句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
# 对刚才修改的文件进行更新
sudo update-initramfs -u
# 记得重启计算机,打开终端检查 nouveau 是否被禁用
lsmod | grep nouveau
# 若执行完该句,没有任何输出,则 nouveau 被成功禁用卸载旧的驱动
如果你是第一次安装 GPU 驱动,这一步可以省略。
1
sudo apt-get remove --purge nvidia*
安装 gcc
必须先安装 gcc,才能安装 GPU 驱动。
1
2sudo apt-get install build-essential # 安装gcc,不要怀疑,就是 build-essential
gcc --version # 检查gcc是否安装成功,Default GCC 9.3这里只安装了gcc,GPU 驱动就可以成功安装了,如果你执行到下面,提示你 make、g++ 没有安装的话,再回来执行以下语句进行安装即可。
1
2sudo apt-get install g++
sudo apt-get install make下载对应版本的 GPU 驱动
根据你的显卡类型选择合适的
.run
文件下载,官网下载链接(速度较快,可直接使用)安装驱动
1
2
3
4
5
6
7
8# cd 到 .run 文件所在位置
cd xxx
# 修改权限
sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
# 执行安装,过程中根据提示,选择 yes 等
sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
# 执行此语句,出现显卡信息则证明安装成功。
nvidia-smi
安装 Anaconda
从官网下载
.sh
文件后,bash
运行即可[Optional] 区分 Ubuntu 自带 python 和 anaconda 中的 python
Ubuntu22.04 中自带 python3,为方便起见,我们可以做一定的区分。在
~/.bashrc
文件最后加入以下命令:1
2alias python3="/usr/bin/python3" # 给系统自带的python起一个别名,就叫python3
export PATH="/home/jason/anaconda3/bin:$PATH" # anaconda3中的python然后 source 一下让修改发生作用:
1
source ~/.bashrc
这样,输入
python3
时会自动替换为/usr/bin/python3
,即使用系统自带的 python;而直接输入python
则是用当前环境下的 python.[Optional] 每次打开终端时,conda 会默认自动激活 base 环境,在命令提示符前有
(base)
标志。强迫症表示这太难看了,可以用以下命令禁止自动激活:1
conda config --set auto_activate_base False
安装 PyTorch
激活 conda 环境,根据官网命令安装:
1 |
|
可以看到安装的东西除了 pytorch 以外,还有 cudatoolkit. 由于我们采用的是概述中的方案二,即没有在系统层面安装 CUDA,因此在该环境下我们将使用这时下载的 CUDA.
我试过 pytorch 1.13 版本,命令行中的 cudatoolkit
变成了 pytorch-cuda
,但安装之后没能成功运行。