Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

时间:2022-11-30 10:56:21

写在最前面

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

不需要有外网,也不需要虚拟机的图形化界面

下载安装都是本机去阿里镜像网站下载whl,然后通过xftp传输,失败率降到最低

若报错,可参考完整流程:https://blog.csdn.net/wtyuong/article/details/127877543

参考

https://blog.csdn.net/TU_Dresden/article/details/121049141
https://blog.csdn.net/weixin_43491255/article/details/118549032
https://blog.csdn.net/a563562675/article/details/119458550
https://blog.csdn.net/a563562675/article/details/119458550
https://blog.csdn.net/qq_44315987/article/details/106314054
(下面这个链接内含各种报错)
https://blog.csdn.net/Williamcsj/article/details/123523087
https://blog.csdn.net/A496608119/article/details/123455529
https://blog.csdn.net/qq_51570094/article/details/124148671

Xshell常用命令

Ctrl + Shift 复制
Insert + Shift 粘贴

Ubantu

Ctrl+Alt+T打开终端

检查系统的各项配置

查看ubuntu系统的版本信息和gcc版本

cat /proc/version

Linux version 5.4.0-131-generic (buildd@lcy02-amd64-092) linux内核版本号
gcc version 7.5.0 gcc编译器版本号7.5
Ubuntu 7.5.0-3ubuntu1~18.04 Ubuntu版本号18.04

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

查看Linux的内核版本和系统是多少位的

uname -a

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

显示正在使用的内核为5.4.0-131-generic。
X86_64代表系统是64位的。

验证机器是否具有n卡

lspci | grep -i nvidia

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

验证内核

sudo apt-get install linux-headers-$(uname -r)

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

查看原有的显卡版本和CUDA支持(如果安装了跳过安装显卡nvidia)

nvidia-smi

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

各种配置(建议不要省略)

安装vim

sudo apt-get install vim

增加pip镜像源

检查pip源

pip config list

增加镜像源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleWriting to /home/tjh/.config/pip/pip.conf

禁用nouveau

sudo vim /etc/modprobe.d/blacklist.conf 

打开上述文档添加这两行保存

blacklist nouveau
options nouveau modeset=0

刷新

 sudo update-initramfs -u

重启电脑,一定要重启。

sudo reboot

然后输入这个命令

 lsmod | grep nouveau

如果啥也没输出,就是成功关闭了。

开启SSH服务

https://blog.csdn.net/qq_42130526/article/details/119972366

检查是否开启SSH服务

因为Ubuntu默认是不安装SSH服务的,所以在安装之前可以查看目前系统是否安装,通过以下命令:

ps -e |grep ssh

输出的结果ssh-agent表示ssh-client启动,sshd表示ssh-server启动。我们是需要安装服务端所以应该看是否有sshd,如果没有则说明没有安装。

启动SSH服务

sudo /etc/init.d/ssh start

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

安装显卡驱动

卸载显卡驱动

sudo apt-get remove --purge nvidia*
sudo apt autoremove

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

安装显卡驱动

加入PPA,然后更新库

sudo apt-get update
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

直接装系统推荐显卡驱动,出错几率小(但需要注意:cuda11.3要求465以上!!!)

会自动安装推荐的版本(一般是最高的版本)

sudo ubuntu-drivers autoinstall

报警告且不动时,再等一会就开始自己安装了
警告类似于:

WARNING:root:_pkg_get_support nvidia-driver-510-server: package has invalid Support n model

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

最后的界面显示
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

测试安装状态

查看状态后需要重启!!!

sudo reboot

使用nvidia-smi 查看是否已经读取到安装的驱动,如果提示没有找到命令重启后再试

nvidia-smi

会出现显卡版本和CUDA支持

例子:
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
这个表示:显卡P106-100,显存6G,驱动430.26,CUDA10.2

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

CUDA

选择

下载前仔细看这张图
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

Table 1. CUDA Toolkit and Compatible Driver Versions
CUDA Toolkit	Linux x86_64 Driver Version	Windows x86_64 Driver Version
CUDA 10.2.89	>= 440.33	>= 441.22
CUDA 10.1 (10.1.105 general release, and updates)	>= 418.39	>= 418.96
CUDA 10.0.130	>= 410.48	>= 411.31
CUDA 9.2 (9.2.148 Update 1)	>= 396.37	>= 398.26
CUDA 9.2 (9.2.88)	>= 396.26	>= 397.44
CUDA 9.1 (9.1.85)	>= 390.46	>= 391.29
CUDA 9.0 (9.0.76)	>= 384.81	>= 385.54
CUDA 8.0 (8.0.61 GA2)	>= 375.26	>= 376.51
CUDA 8.0 (8.0.44)	>= 367.48	>= 369.30
CUDA 7.5 (7.5.16)	>= 352.31	>= 353.66
CUDA 7.0 (7.0.28)	>= 346.46	>= 347.62

上图给出了不同版本所要求的的最低驱动要求,尽量选择相同的进行安装。
编译cuda samples会报错,例如 chrono模块、gcc版本过高等提示。

与之前的gcc版本进行比对

gcc --version

cuda的gcc依赖版本在官方文档的安装指南上会给出
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
我是Ubuntu18.04.6,gcc7.5.0

下载+安装

进入官网
https://developer.nvidia.com/cuda-toolkit-archive
普通机器:x86_64 服务器 power architecture

选择需要的CUDA安装包(runfile格式)
可以创建一个文件夹保存下载的文件,然后在终端切换到那个目录下,进行相应的命令行 (如下图末尾箭头所指)
一定要注意版本!!!
网上推荐CUDA 11.3.0 + CUDNN 8.2.1 + Pytorch 1.10
这三者的组合非常麻烦,这套亲测成功,别的搭配不敢保证。

例子:
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
实际:
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

不用wget下载,容易因为网不好报错

下载axel + 将com改为cn

Tensorflow官网下载东西也是无法直接访问的,但是可以通过镜像访问。微软的官网直接访问速度很慢,可是把网站的后缀.com改成.cn后速度就很快了。
访问确实快了,但是下载的连接改为cn后是404页面,需要进一步操作

参考:https://blog.csdn.net/yxt916/article/details/109402650

1.下载axel(wget的哥哥):
终端输入:

sudo apt install -y axel

2.看图,复制底下的下载链接:(以下是cuda11.3.0的下载链接,做个示范,你需要复制对应自己的)

http://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

3.把.com改成.cn,使用axel下载cuda11.1:
终端输入:

axel -n 50 http://developer.download.nvidia.cn/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

(注意这里网址里的.com已经改成了.cn)(具体参数 -n 50作用:狡兔50窟)

效果:不断线,不降速,已经是成了

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

执行结束

sudo sh cuda_11.3.0_465.19.01_linux.run

上述命令执行结束出现一个框
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

通过方向键下移光标,选择continue
打字输入accept
然后就是下面这个了
由于已经安装了驱动 按方向键,使得光标在driver上,再按回车,之后通过方向键使光标移动到install
此时下图里需要将第一行的Driver CUDA 11.0去掉。(注意:回车键作用是将 [X] 就会变成[ ],[X]代表有,[ ]代表无)

应该将[X] 就会变成[ ]

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

成功了
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

配置环境

装好之后打开环境变量

vim ~/.bashrc

i键进入编辑模式,esc退出,写:wq保存退出
加入这两行保存,注意我这里是11.3,你如果是别的版本,要改成自己的

export PATH="/usr/local/cuda-11.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lcoal/cuda-11.3/lib64:$LD_LIBRARY_PATH"

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

刷新环境变量生效

source ~/.bashrc

测试CUDA

1、查看版本

nvcc -V

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
2、终端输入

cd /usr/local/cuda-11.3/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

输出Result=pass代表成功了,里面显示了CUDA可用的设备信息。

CUDNN

下载+安装

参考:https://blog.csdn.net/avideointerfaces/article/details/104793245

进入网址下载,要把cudnn版本与cuda版本对应正确
https://developer.nvidia.com/rdp/cudnn-archive
上述网址需要注册登录,按照要求完成即可

tgz易错,但deb卸载麻烦(本文下载tgz文件)
本机*下载cudnn-11.3-linux-x64-v8.2.1.32,然后Xftp传过去

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
查看传过去后的文件名

ls

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

进入下载后的文件夹解压后,就可以看见cuda文件夹

在解压后的文件夹中输入一下命令

重命名,然后再解压缩。命令如下所示。

mv cudnn-11.3-linux-x64-v8.2.1.32.tgz cudnn-11.3.tgz
tar -xvzf cudnn-11.3.tgz

因为下载的是库,不是源代码,所以不需要编译了。只需要将解压缩出来的so库和头文件拷贝到系统目录下即可。

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

将cudnn解压后的include和lib64文件夹复制到cuda中

cuda-11.3 此处是自己版本号 。

一行行复制,因为要输密码

sudo cp cuda/include/cudnn.h /usr/local/cuda-11.3/include/  #解压后的文件夹名字为cuda-11.3 
sudo cp cuda/include/cudnn_version.h /usr/local/cuda-11.3/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.3/lib64/ 
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn.h 

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

最后安装一下依赖

sudo apt-get install libfreeimage3 libfreeimage-dev

查看cudnn版本

之前网上提供的方式cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2已经不能用了,因为cudnn.h文件里内容修改了,不再存放版本信息。

使用命令

cat /usr/local/cuda/include/cudnn.h | grep cudnn

查看,发现里面导入了cudnn_version.h文件,版本信息就存放在这个文件里
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

Anaconda

下载+安装

方法1:Anaconda3官网下载
方法2:清华大学开源软件镜像站下载
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

里面有新旧版本,我下载的是Anaconda3-2021.05-Linux-x86_64.sh版本,如果大家需要其它版本,把这个后缀换成你想下的版本即可;

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.05-Linux-x86_64.sh

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
1、运行.sh文件

bash Anaconda3-2021.05-Linux-x86_64.sh

2.进入安装,输入yes
3.进入阅读注册手册,按 Enter 键
4.注册手册阅读完, 输入yes进行安装,然后会安装成功

环境配置

5.安装成功后,用vim打开环境变量:

sudo vim ~/.bashrc

添加下列语句,保存并退出
注意: “/home/sc/anaconda3/bin:$PATH” 的 sc是自己的用户名称,每个人都不一样,不知道可以看上面的打开的环境变量有个样本

export PATH="/home/sc/anaconda3/bin:$PATH"

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
更新环境变量
在终端输入:

source ~/.bashrc

添加清华源

将anaconda换一下源(加入清华源)

参考:https://blog.csdn.net/qq_31878083/article/details/122069771

vi ~/.condarc

把channels里面的https改成http
这个是网络安全的原因,https协议是有安全性的ssl加密传输协议,是浏览器和服务器之间的通信加密,这样来确保传输的安全。

auto_activate_base: false
channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

为了保证用的是镜像站提供的索引,清除索引缓存,输入:

conda clean -i 

根据不同要求得到命令后,要把-c pytorch去掉,才会去自己添加的镜像源下载

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

此时,Anaconda3的基础设置弄完了

Pytorch

创建conda虚拟环境

创建一个虚拟环境,用来安装pytorch

conda create -n pytorch1.12_gpu

or,可以选择Python版本

conda create -n pytorch1.12_gpu python==3.8

这样就创建了一个名字为pytorch1.12_gpu,基于python版本3.8的一个虚拟环境了

激活环境

conda activate pytorch1.12_gpu

或

source activate pytorch1.12_gpu

安装

进入官网,查看你的版本对应的安装命令

https://pytorch.org/get-started/locally/
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

大家根据自己的情况从上面选一个

安装文件非常大,因此我选择本机下载,然后传过去

安装cpu版本

参考:https://blog.csdn.net/ke996/article/details/112761228

去官网查看目前的稳定版本为1.13.0
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
pytorch的whl下载地址.
https://download.pytorch.org/whl/torch_stable.html

也就是需要下载这两个包
cu113/torchvision-0.13.0%2Bcu113-cp39-cp39-linux_x86_64.whl
cu113/torch-1.12.0%2Bcu113-cp39-cp39-linux_x86_64.whl

注意cu才是cpu版本,我是cuda11.3,所以选择了这个
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
特别重要的是cp后面跟着是python版本这个也要下载相应版本
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
下载到本地后:进入conda环境激活对应的python36

conda env list
conda activate pytorch1.12_gpu

下载python3.9

conda install python=3.9.0

pip install+ whl文件位置
比如我的

pip install --no-index --find-links=file:/home/tjh/torch-1.12.0+cu113-cp39-cp39-linux_x86_64.whl(需要替换文件位置)

安装gpu版本

参考:https://blog.csdn.net/weixin_46415031/article/details/114809650

官网查看配套安装包(但是不要直接安装,而是去镜像网站找,然后下载配套的安装包)
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

(下面这个不要执行)
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch

pytorch的whl下载地址.
https://download.pytorch.org/whl/torch_stable.html

比如:torch-1.8.0+cu111-cp36-cp36m-win_amd64.whl
torchvision-0.9.0+cu111-cp36-cp36m-win_amd64.whl
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

下载后通过Xftp上传
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

下载到本地后:进入conda环境激活对应的python36

conda env list
conda activate pytorch1.12_gpu

下载python3.9

conda install python=3.9.0

pip install+ whl文件位置
比如我的

pip install --no-index --find-links=file:/home/tjh/torch-1.12.0+cu113-cp39-cp39-linux_x86_64.whl(需要替换文件位置)

测试

进入虚拟环境,输入命令测试,大功告成!

python3
import torch
torch.cuda.is_available()
print(torch.__version__) #输出PyTorch版本
print(torch.__path__) #输出PyTorch的路径

退出虚拟环境的命令:

conda deactivate
conda env list

cpu only测试

环境名称为pytorch11.3_cpu
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
查看torchvision 版本

conda list torchvision

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10

gpu测试

Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
pytorch下载:由于通过命令行下载的pytorch版本是cpu版本,导致后期测试torch测试是否可以使用GPU 时,torch.cuda.is_available()一直返回False.