Ubuntu18.04+CUDA11.0+cuDNN8.0.5+Anaconda3.5+PyTorch1.7.0配置说明
- 简介:本文档是在WIin10+Ubuntu18.04双系统的新机上测试过的一次配置成功的步骤说明。
- 提示:紫色"说明"部分是对操作步骤的解释,在执行 3 安装CUDA 时容易出现问题,请仔细操作。如果遇到其他问题请耐心搜索,大家都是踩着坑过来的。也欢迎各位给出更简洁的配置方法,祝大家安装顺利 😃
1 新机预安装
- 说明:在新系统/重装系统的新机上预安装vim和gcc
# 安装vim
$ sudo apt install vim
# 安装gcc
$ sudo apt install gcc
2 禁用nouveau
- 说明:nouveau是ubuntu社区提供的图形驱动,为了防止与nvidia冲突,建议禁用nouveau
# 用vim编辑blacklist
$ sudo vim /etc/modprobe.d/blacklist.conf
# 在文件的尾部追加两行(按insert进入编辑模式,按Esc退出编辑模式,按:wq保存编辑并退出)
blacklist nouveau
options nouveau modeset=0
# 执行以下指令更新
$ sudo update-initramfs -u
- 禁用成功验证:
- 重启后桌面分辨率降低(因为没有图形驱动,此时也没安装nvidia驱动)
- 执行以下第二行验证指令终端没有输出
# 重启计算机(这里图形界面手动重启也可以)
$ reboot
# 重启后桌面分辨率降低,再运行以下指令,如果终端没有输出说明禁用成功
$ lsmod | grep nouveau
3 安装CUDA
- 这里可能遇到较多问题:建议按照以下步骤操作
3.1 查询N卡驱动和支持CUDA版本
- 在windows下查看N卡驱动版本(以下三种操作等效)
- 在桌面右键: 打开NVIDIA控制面板–>第三步
- 打开控制面板: 控制面板–>搜索关键词NVIDIA–>打开NVIDIA控制面板
- 在NVIDIA控制面板窗口中: 帮助–>系统信息–>显示(例如这里的驱动版本是460.89)
- 支持CUDA版本
- 找到NVCUDA.DLL文件:查看产品名称找到支持CUDA的版本(例如:1070 Ti是10.1.120 driver,3060Ti支持CUDA的版本是 11.2.66 driver)
3.2 查询PyTorch支持的CUDA版本
- 登录 PyTorch官网 查询:是否存在支持对应CUDA版本的框架版本,有可能CUDA版本过新不存在匹配的框
- 点击 install 可以查看到目前匹配的PyTorch和CUDA版本关系
3.3 安装CUDA
- 登录 cuda-toolkit-archive 查询:本机需要安装的CUDA版本,一般不建议安装最新的版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMkceiQo-1612351727296)(F:\深蓝学院\深度学习\图片\3-3.png)]
- 说明:以下第二步官网给出的是简易安装指令,如果觉得不保险可以打开 cuda-toolkit-archive --> 对应安装版本的 Versioned Online Documentation --> Installation Guide Linux --> 执行 Pre-installation Actions
- 选择系统环境和安装方式
-
说明:runfile和deb两种安装方式的区别
- runfile:下载并运行.run文件,可以选择是否安装N卡驱动
- deb:下载.deb包,利用apt-get install方式安装,会自动安装.deb包名中写的N卡驱动
- 以上两种方式均可以:如果N卡驱动和.deb包名中写的N卡驱动对应(或低于)则安装完cuda之后N卡驱动可以正常启动。如果N卡驱动高于.deb包名中写的N卡驱动,安装完cuda之后,输入 nvidia-smi,如果提示失败,则需要手动再安装更高适配版本的N卡驱动(具体安装方式见下文)。
-
输入精简安装指令(这里等价于 Installation Guide Linux 中的 Package Manager Installation
# 以cuda11.0为例,按照官网生成的指令安装
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-ubuntu1804-11-0-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
- 显卡驱动校验
# 在终端输入以下指令,检验输出
$ nvidia-smi
说明:如果输出如下所示,则初步安装好了CUDA,可以进行 CUDA安装校验 ,如果输出结果为fail,则执行 3.4 安装N卡驱动
3.4 安装N卡驱动(根据显卡驱动校验结果决定是否执行此步骤)
NVIDIA-Linux-x86_64-460.39.run
- 卸载旧版本驱动
$ sudo apt-get remove --purge nvidia*
$ sudo modprobe -r nvidia-drm
- 安装驱动
$ sudo -i
$ sudo chown x+a NVIDIA-Linux-x86_64-460.39.run
$ ./NVIDIA-Linux-x86_64-460.39.run
- 安装过程出现的问题该如何选择
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
1. There appears to already be a driver installed on your system (version:
390.42). As part of installing this driver (version: 390.42), the existing
driver will be uninstalled. Are you sure you want to continue?
Continue installation Abort installation
#(选择 Coninue,如果是重装的话)
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
2. The distribution-provided pre-install script failed! Are you sure you want
to continue?
Continue installation Abort installation
#(选择 Cotinue)
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
3. Would you like to register the kernel module sources with DKMS? This will
allow DKMS to automatically build a new module, if you install a different
kernel later.
Yes No
#(这里选 No)
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
4. Install NVIDIA's 32-bit compatibility libraries?
Yes No
#(这里选 No)
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
5. Installation of the kernel module for the NVIDIA Accelerated Graphics Driver
for Linux-x86_64 (version 390.42) is now complete.
# OK
# --------------------------------------------------------------------------------------------------------------------------------------------------------
6.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 No
#(这里选 Yes)
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
- 挂载驱动
$ modprobe nvidia
- 显卡驱动校验
# 在终端输入以下指令,检验输出
$ nvidia-smi
3.5 CUDA安装校验(确保上述步骤没有问题)
- CUDA安装版本校验
$ nvcc -V
- CUDA例程校验
$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
- 最终系统应用中将包含以下内容
4 安装cuDNN
-
登录 cuDNN-archive:选择对应CUDA版本和系统版本的cuDNN
- 下载以下3个deb安装包
-
cuDNN Runtime Library for Ubuntu18.04 x86_64 (Deb)
-
cuDNN Developer Library for Ubuntu18.04 x86_64 (Deb)
-
cuDNN Code Samples and User Guide for Ubuntu18.04 x86_64 (Deb)
-
说明:采用deb方式安装,可以下载测试例程,方便安装校验
- 顺次安装3个deb包
$ sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.0_amd64.deb
$ sudo dpkg -i libcudnn8-dev_8_8.0.5.39-1+cuda11.0_amd64.deb
$ sudo dpkg -i libcudnn8-samples_8_8.0.5.39-1+cuda11.0_amd64.deb
- 安装校验
$ cp -r /usr/src/cudnn_samples_v8/ $HOME
$ cd $HOME/cudnn_samples_v8/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
5 安装与配置Anaconda
说明:Anaconda是Python的包管理器,之后将会利用其创建虚拟环境,并在其中安装PyTorch
5.1 安装Anaconda
- 运行.sh文件并安装
$ bash Anaconda3-5.3.1-Linux-x86_64.sh
说明:每次选择必须正确,不能倒退;除了VScode根据个人需要选择安装,其余都需要安装,都选择是
5.2 添加路径变量
#在.bashrc中添加以下内容
$ sudo gedit ~/.bashrc
export PATH="/home/gao(用户名)/anaconda3/bin:$PATH"
$ source ~/.bashrc
- 安装版本和路径查询
$ python
$ conda -V
$ which python
#最后一步选择性执行
$ conda upgrade --all
5.3 配置conda
- 在bashrc中添加如下内容
$ sudo gedit ~/.bashrc
# 这里根据python版本确定
alias python3="/usr/bin/python3.x"
alias python2="/usr/bin/python2.x"
# 添加环境变量
. /home/gao/anaconda3/etc/profile.d/conda.sh
$ source ~/.bashrc
5.4 添加conda源
- 添加常用的镜像源
# 添加源
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
# 确认添加的源并显示修改结果
$ conda config --set show_channel_urls yes
$ conda config --show
5.5 创建虚拟环境
# 环境创建
$ conda create -n pytorch(虚拟环境名称,自定义) python=3.x
#进入和退出环境
$ conda activate pytorch
$ conda deactivate
6 安装PyTorch
说明:为了加快安装速度,建议自行下载指定版本的torch和torchvision的.whl安装包,然后利用pip手动安装
6.1 安装Torch和Torchvision
- 进入上述创建的虚拟环境,然后利用pip install安装
$ pip install torch-1.7.0+cu110-cp37-cp37m-linux_x86_64.whl
$ pip install torchvision-0.8.0-cp37-cp37m-linux_x86_64.whl
6.2 安装校验
- 请先进入虚拟环境,然后执行以下指令
python3/python
import torch
x = torch.empty(5, 3)
print(x)
7 PyCharm中测试PyTorch
- 创建一个project,在Edit Configuration 和 File --> Settings中设置pytorch虚拟环境中的解释器
- 创建一个脚本并运行测试
print("good!")
import torch
if __name__ == '__main__':
print("Support CUDA ?: ", torch.cuda.is_available())
x = torch.Tensor([1.0])
xx = x.cuda()
print(xx)
y = torch.randn(2, 3)
yy = y.cuda()
print(yy)
zz = xx + yy
print(zz)
# CUDNN TEST
from torch.backends import cudnn
print("Support cudnn ?: ", cudnn.is_acceptable(xx))
- 千淘万漉虽辛苦,吹尽狂沙始到金 😃