乐趣区

关于深度学习:Ubuntu2004安装分区cuda113cuDNN821pytorch1110等DL框架

  1. 硬件配置
    主机: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
  2. 深度学习框架
    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. 装置过程
    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())

  1. 解决出错

在根本的深度学习网络框架全副装置结束,我试图重启。发现电脑的双屏幕有一个生效了。字体也变大,屏幕分辨率变低。很显然 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 可见显卡信息曾经复原

退出移动版