- 硬件配置
主机:Dell Precision Tower 7910工作站
CPU:Intel® Xeon(R) CPU E5-2620 v4 @ 2.10GHz × 16
内存:48G
显卡:Nvidia TITAN Xp 12G
硬盘:SSD 1T,HDD 2T
原系统:Win10 - 深度学习框架
Ubuntu 20.04.4 LTS
Nvidia Driver 510.60.02
cuda 11.3
cuDNN 8.2.1
python 3.9
Anaconda
pytorch 1.11.0
pycharm 2021.3.3
tensorflow 2.8.0 - 安装过程
3.1 安装Ubuntu20.04
3.1.1 制作U盘启动盘
在官网下载Ubuntu 20.04.4 LTS镜像文件,制作U盘启动盘,我用的是Rufus。
3.1.2 安装Ubuntu
1) 插入U盘,开机按F2进入设置,关闭Secure Boot。
2) 设置好后退出,按F12进入启动信息。选择U盘启动。
但是一到了Updates and other softwares这一步就卡住一直不动。后来发现是因为有损坏的原Win10分区。解决方案:quit,进入try ubuntu,通过Gparted删掉Win的分区。
3) 分区
设备 | 分区 | 类型 | 名称 | 挂载点 | 空间分配 |
---|---|---|---|---|---|
/dev/sdc1 | primary | efi | efi引导分区 | 32 G | |
/dev/sdc2 | logical | swap | swap分区 | 48 G | |
/dev/sdc3 | primary | ext4 | 根分区 | / | SSD剩余部分 |
/dev/sdb | primary | ext4 | home目录 | /home | HDD全部 |
分区后选择efi进行boot,否则出现错误:
4) 一路下一步,即可安装完毕。
3.1.3 Ubuntu换源
考虑自带源下载很慢,有必要换国内源。
1) 备份系统自带源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
2) 编辑/etc/apt/sources.list,加入合适的国内源。
vim /etc/apt/sources.list
我主要增加了阿里的源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
3.2 安装Nvidia驱动
3.2.1 预步骤编辑blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
在末尾添加
blacklist nouveau
options nouveau modeset=0
更新内核
sudo update-initramfs -u
重启验证nouveau是否禁用成功
lsmod | grep nouveau
如无任何输出,表示已禁用成功。
3.2.2 下载Nvidia驱动
根据显卡类型输入产品属性,网站会自动匹配目标驱动的安装文件。
3.2.3 安装前命令
1) 更新系统及必要安装
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install make
2) 进入控制台字符界面安装lightdm
Ctrl+Alt+F1 进入字符界面
sudo apt-get install lightdm
安装完毕会出现一个界面,选择lightdm。
3) 重启电脑
4) 关闭驱动控制台
sudo service lightdm stop
5) 卸载原有驱动
sudo apt-get remove nvidia-*
sudo apt autoremove
3.2.4 开始安装
sudo ./NVIDIA-Linux-x86_64-510.60.02.run -no-x-check -no-nouveau-check -no-opengl-files
如果无法执行,则先给安装文件添加执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-510.60.02.run
安装过程会有一系列问答,其中
1) Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
选择 No
2) Nvidia's 32-bit compatibility libraries?
选择 No
3) Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
选择 Yes
3.2.5 挂载驱动
modprobe nvidia
3.2.6 验证驱动安装成功
nvidia-smi
3.2.7 打开lighdm服务并重启
sudo service lightdm start
reboot
3.3 安装CUDA与cuDNN
3.3.1 下载安装CUDA
刚开始我下载的是CUDA 11.6,后来发现pytorch最新目前只支持CUDA 11.3。又卸载了重新安装。版本的兼容可参考CUDA Tookit Release Notes,安装可参考CUDA安装文档。
即安装命令:
$ wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.runsudo sh cuda_11.3.0_465.19.01_linux.run
$ sudo sh cuda_11.3.0_465.19.01_linux.run
进入安装界面后,记得不要勾选Driver选项。
3.3.2 配置环境变量
vi ~/.bashrc
末尾添加:
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
退出后source一下
source ~/.bashrc
3.3.3 验证CUDA是否安装成功
nvcc -V
此外,依次输入以下命令:
cd ~/NVIDIA_CUDA-11.3_Samples/1_Utilities/deviceQuery
make
./deviceQuery
如安装成功,就会出现Result = PASS
3.3.4 下载cuDNN
先注册Nvidia帐号,须同时下载以下3个.deb文件。
3.3.4 安装cuDNN 8.2.1
sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.1.32-1+cuda11.3_amd64.deb
3.3.5 测试cuDNN是否安装成功
依次输入以下命令:
cd /usr/src/cudnn_samples_v8/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
如无错误,就会出现Test passed!
如有错误,我遇到fatal error: FreeImage.h: No such file or directory
此时,执行以下命令,重新编译运行即可。
sudo apt-get install libfreeimage3 libfreeimage-dev
3.4 安装Anaconda
3.4.1 下载后安装
bash Anaconda3-2020.02-Linux-x86_64.sh
3.4.2 配置环境变量
vi ~/.bashrc
末尾添加:
export PATH=/home/miau/anaconda3/bin:$PATH
退出后source一下
source ~/.bashrc
3.4.5 检验是否安装成功
python
3.5 安装pytorch 1.11.0
3.5.1 新建conda虚拟环境并激活进入
conda create -n torch39 python=3.9
source activate torch39
3.5.2 下载安装torch 1.11.0, torchaudio 0.11.0和torchvision 0.12.0
一定要注意版本的兼容性,参考这里关于torch和torchaudio的版本兼容,参考这里关于torch和torchvision的版本兼容。
安装命令依次为:
pip3 install torch-1.11.0+cu113-cp39-cp39-linux_x86_64.whl
pip3 install torchaudio-0.11.0+cu113-cp39-cp39-linux_x86_64.whl
pip3 install torchvision-0.12.0+cu113-cp39-cp39-linux_x86_64.whl
3.5.3 验证pytorch是否安装成功
依次输入
python
import torch
torch.__version__
import torchaudio
torchaudio.__version__
import torchvision
torchvision.__version__
3.6 安装pycharm 2021.3.3
3.6.1 下载.tar.gz安装文件
3.6.2 以下命令进行安装
tar -xvf pycharm-community-2021.3.3.tar.gz
sudo mv pycharm-community-2021.3.3 /opt/pycharm
cd /opt/pycharm/bin
sh pycharm.sh
自动出现安装界面
3.6.3 配置python interpreter
3.7 安装tensorflow 2.8.0
3.7.1 核对tensorflow支持的python,CUDA和cuDNN版本号
上面显示的是cuDNN版本号应为8.1,但是看网上也有8.2版本了,这里安装的是cuDNN 8.2.1。
3.7.2 虚拟环境中安装tensorflow及CUDA和cuDNN
本来应该去Nvidia官网下载CUDA和cuDNN,但是更方便的方法是到Anaconda官网下载CUDA 11.2,到Anaconda官网下载cuDNN 8.2.1。
下载后进入虚拟环境进行安装
conda create -n tf-2.8.0 python=3.7
conda activate tf-2.8.0
cd ~/Downloads
conda install --use-local cudatoolkit-11.2.2-he111cf0_10.tar.bz2
conda install --use-local cudnn-8.2.1.32-h86fa8c9_0.tar.bz2
pip install tensorflow==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
3.7.3 验证tensorflow是否安装成功
Pycharm里新建一个测试project,其中的python interpreter重新按照tf-2.8.0虚拟环境配置一下。代码里加入:
import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices())
- 处理出错
在基本的深度学习网络框架全部安装完毕,我试图重启。发现电脑的双屏幕有一个失效了。字体也变大,屏幕分辨率变低。很显然Nvidia显卡方面出了问题。
直接nvidia-smi报错如下:
网上搜索之后,执行如下命令即可恢复:
sudo apt-get install dkms
sudo dkms install -m nvidia -v 510.60.02
其中我Nvidia的型号是510.60.02,可通过如下命令查看:
cd /usr/src
ls
此时再查看nvidia-smi可见显卡信息已经恢复