如果你的机器显卡是集成显卡,或者是老旧版本,那么不支持GPU加速,只能使用CPU版本的Pytorch/Tensorflow !

本文的前提是你有一块好的Nvidia显卡。

1.如何查看电脑的显卡型号

在windows系统上,查看显卡型号的方法如下:

打开设备管理器->显示适配器

在ubuntu系统上,查看显卡型号的方法如下:

#terminal输入
lspci | grep -i vga
#将会得到序列号,我的是2489
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2489 (rev a1)
#然后打开下面的链接,用刚刚的序列号,在咨询框中查询即可
http://pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci

我的显卡是Nvidia-RTX 3060Ti

 2.如何查看电脑当前的显卡驱动版本

 一般电脑安装好Linux/Ubuntu系统以后,有的系统捆绑了Nvidia显卡驱动,在终端输入以下内容即可查看

nvidia-smi

如果出现了以下内容,则表示已经安装了Nvidia显卡驱动;

如果什么都没有,则需要重新安装!

3.如何安装Nvidia显卡驱动

在进行这一步骤之前,你应该分清楚: 你的电脑之前有没有安装过Nvidia显卡驱动 还是 已经安装了想要换一个版本。因为这两个执行策略不一样,如果没有安装过,请看3.1;如果是后者,请看3.2。

3.1 安装Nvidia显卡驱动

推荐五种方法安装Nvidia显卡驱动,A,B,C,D,E。方法C稍微复杂一些。方法D是cuda和Nvidia显卡驱动捆绑安装。安装完成后,都需要重启系统才能生效。

A. 系统软件更新,进行安装

B.终端命令行进行安装

sudo ubuntu-drivers autoinstall 
sudo apt install nvidia-470 #ubuntu 18.04

上述第一条命令,亲测有效!

C.手动下载驱动文件进行安装

首先去 英伟达官网,下载正确的驱动文件:Official Drivers | NVIDIA

 下载下来之后,然后更改一下文件权限,记住这个文件所在的位置,因为之后会关闭图形界面,什么都看不到。

sudo chmod a+x nvidia-xxx.run

接下来禁用系统的nouveau

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

在文件中添加以下内容:

blacklist nouveau 
options  nouveau modeset=0
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

 重启后,执行以下代码,若没有显示则禁用成功

lsmod | grep nouveau

接着安装lightdm, 关闭图形界面安装驱动的时候会用到。

sudo apt install lightdm

然后执行下面这一句。

sudo update-initramfs -u

接着把BIOS界面里面的安全启动(Secure Boot)选项关闭掉,就是你安装双系统时,设置U盘启动项的那个界面。如果安全启动没有关闭的话,会影响Nvidia显卡驱动的安装。

接着重启进入到Ubuntu里,这时候按住Ctrl+Alt+F1(因人而异,你的电脑可能是别的方式)进入到系统的黑界面里。输入用户名和密码,这时候就可以安装Nvidia显卡驱动了。

sudo service lightdm stop
#接着进入到英伟达显卡驱动文件所在的目录
sudo ./Nvidia-xxx.run --no-opengl-files --no-x-check --no-nouveau-check
#上面的三个选配参数是标配

#下面是在安装过程中的一些选择
1.The distribution-provided pre-install script failed! Are you sure you want to continue? 

“Yes”

2.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”

3.Nvidia’s 32-bit compatibility libraries?

“No”

4.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”

接着挂载英伟达显卡驱动

modprobe nvidia

最后执行

sudo service lightdm start   #回到图形界面
reboot                       #重启

D Cuda 和Nvidia显卡驱动绑定安装

现在的cuda文件已经集成了英伟达显卡驱动, 但是不见得能够成功。我安装的时候就失败了!

打开日志文件,查看具体原因

有些情况下是gcc编译器没有安装,用下面的命令安装即可!

sudo apt install gcc
sudo apt install g++

其他失败原因,还未查明。

E.使用PPA仓库进行安装

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update   sudo apt-get upgrade --fix-missing
#使用以下命令可以查询到电脑支持的驱动版本
sudo apt-cache search nvidia | grep -oE "nvidia-[0-9]{1,3}"

3.2 更换Nvidia显卡驱动

首先将已有的显卡驱动卸载

$ sudo apt-get remove --purge nvidia*
#有时候执行上面这一行,还是可以看到nvidia显卡驱动信息,此时接着用下面这一行
$ sudo /usr/bin/nvidia-uninstall

后面的步骤和3.1一样。

4.如何查看已安装的Cuda版本号

如果没有安装过Cuda,则跳过这一步。

# 方法1,查看cuda版本。或者直接进入到/usr/local/目录,查看是否有cuda*文件夹
cat  /usr/local/cuda/version.txt
# 方法2
nvcc --version

5.如何安装Cuda

由于Cuda的版本比较多,不是想安装哪个版本就安装哪个版本的。Cuda的版本和Ubuntu系统以及Nvidia显卡驱动的版本,有很大的关系。首先进入Cuda版本官网查看

CUDA Toolkit Archive | NVIDIA Developer

这么多版本,有的只适配ubuntu20.04,有的只适配ubuntu18.04 ........比如Cuda Toolkit 10.2只支持18.04和16.04.

 下载好正确的版本后,就可以跟着官网教程安装了。我一般选择runfile,  之前用deb安装出现过失败。

 注意:现在的cuda_xxx.run集成了Nvidia显卡驱动,当你执行sudo sh cuda_xxx.run时,会提示你系统已有英伟达显卡驱动,不用管它,接着执行。这时候在选配项中把显卡驱动关掉即可,安装重要的内容就行。

 方向键上,下 选择内容;方向键左,右 展开折叠;回车键Enter 勾选或者取消勾选。

安装好之后,添加以下内容到环境变量

$ sudo gedit ~/.bashrc

 注意将下面cuda版本替换成你的

export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

记得source生效!

$ source ~/.bashrc

验证是否安装成功

nvcc -V

6 如何卸载Cuda

假如装错了版本,或者想换一个版本,应该先卸载已有的

#以下卸载方式可能和cuda版本有关,不见得适用所有的情况
cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda*

7.如何安装Cudnn:

cuDNN Archive | NVIDIA Developer

注意cudnn的版本要和cuda的版本保持兼容.

7.1如果选择deb安装方式,参考官方教程。deb方式有点复杂

Installation Guide - NVIDIA Docs

$ sudo dpkg -i xxx.deb

 7.2如果选择压缩文件tar安装方式,参考官方教程:

Installation Guide - NVIDIA Docs

8.如何查看cudnn版本

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#在8.0版本之后用上面的命令就没有输出了。因为这个头文件内容变了。用下面的命令可以看到
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

输出如下信息:

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */

版本为8.4.1


9.Pytorch-gpu安装

先去这个网站查看cuda与pytorch对应的版本

https://download.pytorch.org/whl/torch_stable.html

官网:PyTorch

如果安装其他版本,我的cuda是10.2的版本:

pip3 install torch==1.9.1+cu102 torchvision==0.10.1+cu102 -f https://download.pytorch.org/whl/torch_stable.html
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

print(torch.cuda.is_available())

10.tensorflow-gpu 安装

 关于TensorFlow | TensorFlow中文官网

Tensorflow2.x 的语法和 Tensorflow1.x 不一样,注意自己的版本。 Tensorflow和ubuntu系统版本以及cuda版本有很大关系,注意兼容。如果你是ubuntu20.04的系统,好像只能安装Tensorflow2.x,因为高版本的ubuntu系统只兼容高版本的cuda,而高版本的Tensorflow也只适配高版本的cuda。

pip3 install tensorflow-gpu==1.9.0
pip install tensorflow-gpu==2.5.0

 最后验证Tensorflow-gpu是否可以正常使用

import tensorflow as tf
tf.test.is_gpu_available()

当tensorflow找不到libcu*开头的链接文件时,可以创建软链接生成目标文件

cd /usr/local/cuda-10.2/lib64 #改成你自己的路径
sudo ln -s libcublas.so libcublas.so.10.0 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐