Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch

前言

安装pytorch的教程网上有许多,我记录并分享下自己两台笔记本上安装NVIDIA驱动、CUDA、CUDNN、Pytorch的过程和心得。

首先说明,安装pytorch-gpu需要完成nvidia驱动安装、CUDA安装、CUDNN安装、torch库安装,其中CUDA和CUDNN版本要对应,不同版本的torch对CUDA版本有要求,nvidia驱动决定了你可以安装多高版本的CUDA,因此这些东西的版本不能随便乱装,

我的安装版本是:

联想GTX1050笔记本:
Ubuntu18 + 驱动470 + CUDA 10.0 + CUDNN for 10.0 + torch 1.0.0 + python 3.6
Ubuntu18 + 驱动470 + CUDA 10.2 + CUDNN for 10.2 + torch 1.8.0 + python 3.7

机革GTX4050笔记本:
Ubuntu22 + 驱动525 + CUDA 11.8 + CUDNN for 11.8 + torch 2.0.0 + python 3.8
Ubuntu22 + 驱动525 + CUDA 11.8 + CUDNN for 11.8 + torch 1.12.0 + python 3.8

1.如何选版本

约束一:先从torch版本入手,先确定你要安装的torch版本 , pytorch每个版本有自己支持的CUDA版本,此约束不一定强制满足,高版本CUDA也可以正常安装,比如我CUDA11.8的也可以使用下面CUDA11.6安装的命令正常安装torch1.12.1

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第1张图片

约束二:看一下自己的nvidia驱动最高支持安装CUDA的版本:(需要先安装NVIDIA驱动,后面会讲如何安装驱动)

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第2张图片

约束三:CUDA对GPU的算力也需要匹配,否则torch会报以下错误:

# 这里sm_89的意思就是4050的算力是89,该CUDA版本不支持此算力
NVIDIA GeForce RTX 4050 Laptop GPU with CUDA capability sm_89 is not compatible with the current PyTorch installation

先查看自己电脑GPU的算力

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第3张图片

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第4张图片

然后看一下CUDA和算力之间的匹配关系(其实直接百度你的GPU型号+CUDA,看看别人都安啥版本的CUDA就行了)

最后根据这三个约束找到你要的CUDA版本,后面再根据CUDA版本安装CUDNN以及torch。补充一下,当你发现三个约束冲突,则优先满足约束二和三,比如GPU是4050,查询约束二和三,发现CUDA版本最低也要11.8,而我想安装torch1.8,pip安装里面并没有CUDA11.8的,那么直接先满足约束二和三,安装CUDA11.8即可,然后后面安装torch1.8时,用CUDA版本和11.8最接近的安装命令即可。

2.安装NVIDA驱动

我的1050显卡安的是nvidia-driver-470,4050显卡安的是nvidia-driver-525

如果是Ubuntu低于18版本,还要先升级gcc版本,参考

方法一:简单但下载速度特别慢

#1.先把之前的nvidia驱动卸载干净:
sudo apt-get remove --purge nvidia*
#2.添加并更新源
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
#3.查看适配的驱动版本
sudo ubuntu-drivers devices
#4.下载你想下载的nvidia驱动版本:
sudo apt install nvidia-driver-470
#5.重启电脑(这一步很重要,不重启没有效果):
reboot
#6.重启后,输入命令查看nvidia驱动是否安装好了
nvidia-smi

说明一下,上面第四步,也可以通过软件和更新中的附加驱动安装,但这样看不到下载速度
Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第5张图片
方法一比较简单,但下载速度是真的慢,几十M的东西得下半多小时

方法二:可能会遇到较多问题,但顺利的话安装很快

该方法就是直接到NVIDA官网下载驱动,然后安装,不过过程中容易出现各种各样的问题,我推荐大家可以先尝试一下,万一自己电脑是天选之子,一步到位呢

安装参考
注意,安装驱动的run文件时,不要加入命令行-no-opengl-files否则会发现安装后的图形不会显示显卡,安装并未完全成功,

即安装run驱动文件时:

# 不要添加-no-opengl-files命令
sudo ./NVIDIA-Linux.run -no-x-check

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第6张图片

问题:Unable to load the “nvidia-drm” kernel module

解决:我两个解决方法都执行了才安装成功

3.安装CUDA

CUDA各个版本下载

CUDA 10.0安装的方法,参考

CUDA 10.2安装的方法,参考,10.2及以上版本安装方法类似

CUDA卸载,参考

注意,这里只需要按教程安装sh脚本文件即可,后面的环境配置之后再说

4.安装CUDNN

CUDNN各个版本下载

注意,CUDNN要对应CUDA的版本:

Ubuntu18及22安装NVIDIA驱动、CUDA、CUDNN、Pytorch_第7张图片

CUDNN8.0以下版本的安装方法,参考

CUDNN8.0及以上版本的安装方法,参考

5.环境配置

安装好CUDA和CUDNN后,就可以配置环境了:

sudo gedit ~/.bashrc
# 添加以下内容
# 支持多个CUDA版本切换,要改版本就修改/usr/local/cuda的软连接就行了
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

相关命令

查看cuda版本 : nvcc -V
查看位置 : which nvcc
查看NVIDIA动态使用情况: watch -n 1 nvidia-smi
cuda 版本 : cat /usr/local/cuda/version.txt
cudnn 版本 : cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
NVIDIA 驱动版本 : cat /proc/driver/nvidia/version

6.pytorch安装

pytorch离线各版本下载

pytorch在线各版本下载

# 发现下载torch用豆瓣的源比清华源更快
pip install --index-url https://pypi.douban.com/simple 要安装的包

如果pip安装torch出现找不到的问题,可能是Python版本低,可以创建个Python版本更高的conda容器安装;或者是pip源有问题,可以换一个源。

我在4050笔记本上安装,因为是40系显卡CUDA版本必须1.18.0及以上,但是pytorch支持的CUDA1.18.0版本的目前只有pytorch2.0.0版本太新了,好像高版本CUDA也可以安装低版本CUDA支持的pytorch版本,但是CUDA版本差距太大的话,会因为CUDA算力不支持而在torch中报错,我尝试安装了支持CUDA1.16.0的pytorch1.12.0,测试下来好像没问题:

机革GTX4050笔记本:Ubuntu22 + 驱动525 + CUDA 11.8 + CUDNN for 11.8 + torch 1.12.0 + python 3.8

7.查看torch gpu是否可用

import torch
# 光靠is_available还不足以确定是否安装成功
torch.cuda.is_available()
a=torch.Tensor([1,2])
a=a.cuda()

8.pycharm中torch补全不全

参考

你可能感兴趣的:(pytorch,python,深度学习)