Ubuntu系统下 Nvidia驱动 + cuda驱动 + CuDNN安装与卸载
- 一、NVIDIA驱动与CUDA驱动的区别
- 二、NVIDIA驱动安装与卸载
- 1. 查看系统内核版本
- 2. 查看显卡型号
- 3. 查看是否有显卡驱动
- 4. 禁用nouveau并重启
- 5. 卸载旧版本
- 6. 安装1:使用标准Ubuntu仓库进行自动化安装
- 7. 安装2:使用PPA仓库进行自动化安装
- 7. 安装3:使用官方的NVIDIA驱动进行手动安装
- 三、CUDA工具包安装与卸载
- 1. CUDA安装
- 2. 安装完成后,编辑bashrc文件,设置cuda环境变量
- 3. 测试安装成功
- 4. 卸载
- 5. 卸载干净检查
- 四、CuDNN安装与卸载
一、NVIDIA驱动与CUDA驱动的区别
- CUDA驱动与NVIDIA驱动并不是一个东西,NVIDIA驱动接入GPU,对外提供能够访问GPU的接口;CUDA驱动接入NVIDIA驱动提供的接口访问GPU,同时接入程序,将运行结果输出。
- CUDA Toolkit包含了CUDA驱动和工具
CUDA是NVIDIA发明的并行计算平台和编程模型。它通过利用GPU的强大功能,显着提高计算性能。
CUDA 的开发考虑了以下几个设计目标:
- 支持 CUDA 的 GPU 拥有数百个核心,可以共同运行数千个计算线程。这些内核具有共享资源,包括寄存器文件和共享存储器。片上共享内存允许在这些内核上运行的并行任务共享数据,而无需通过系统内存总线发送数据。
- 支持应用程序同时使用 CPU 和 GPU 的异构计算。应用程序的串行部分在 CPU 上运行,并行部分则卸载到 GPU。因此,CUDA 可以增量地应用于现有应用程序。 CPU 和 GPU 被视为具有自己的内存空间的独立设备。此配置还允许在 CPU 和 GPU 上同时计算,而不会争用内存资源。
- 提供一小组对标准编程语言(例如 C)的扩展,可以直接实现并行算法。借助 CUDA C/C++,程序员可以专注于算法并行化的任务,而不是将时间花在算法的实现上。
二、NVIDIA驱动安装与卸载
1. 查看系统内核版本
cat /proc/version
#或
uname -a
2. 查看显卡型号
lspci | grep -i nvidia
或
lspci -vnn | grep VGA
3. 查看是否有显卡驱动
nvidia-smi
#或
lshw -c video
4. 禁用nouveau并重启
安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突
lsmod | grep nouveau
# 如果有输出,说明nouveau正在加载
sudo vim /etc/modprobe.d/blacklist.conf
# 在最后一行加入
blacklist nouveau
options nouveau modeset=0
# 更新
sudo update-initramfs -u
# 重启
reboot
# 再次查看是否禁用nouveau
lsmod | grep nouveau
# 没有输出禁用成功
5. 卸载旧版本
sudo apt-get --purge remove nvidia*
sudo apt autoremove
sudo /usr/bin/nvidia-uninstall
6. 安装1:使用标准Ubuntu仓库进行自动化安装
首先,检测你的NVIDIA显卡型号和推荐的驱动程序的模型。
ubuntu-drivers devices
如下,推荐nvidia-driver-535-server-open
执行自动安装,将会安装所有推荐的驱动程序
sudo ubuntu-drivers autoinstall
安装完成,重启就OK了
7. 安装2:使用PPA仓库进行自动化安装
使用图形驱动程序PPA存储库安装NVIDIA beta驱动程序,但 有时候这有可能会出现兼容性的问题
将ppa:graphics-drivers/ppa存储库添加到系统中:
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
接下来和之前一样,检测你的NVIDIA显卡型号和推荐的驱动程序的模型。
ubuntu-drivers devices
sudo apt install nvidia-driver-535-server-open
安装完成,重启就OK了
7. 安装3:使用官方的NVIDIA驱动进行手动安装
根据之前准备工作查看的显卡型号,进入Nvidia官方下载对应型号的显卡驱动
wget -c http://us.download.nvidia.com/XFree86/Linux-x86_64/440.82/NVIDIA-Linux-x86_64-535.146.02.run
sudo chmod a+x NVIDIA-Linux-x86_64-535.146.02.run
sudo ./NVIDIA-Linux-x86_64-535.146.02.run -no-opengl-files -no-nouveau-check –no-x-check
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
第一个问题选择continue installation
,第二个问题选择No
(32位的兼容库)
安装完成,重启就OK了
三、CUDA工具包安装与卸载
1. CUDA安装
首先到官网下载CUDA Toolkit 11.3(举例)
由于我们需要安装指定版本,所以建议本地安装,最后一个选择deb(local)
然后按照下面的指令依次安装
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
安装cuda的时候一路确认,选择默认设置即可。但是,需要注意的是,当询问是否安装显卡驱动时,选择no,当输入nvidia-smi没问题的时候一般代表显卡驱动没问题
- cuda默认是安装在/usr/local目录下的,可执行文件都存放在bin目录下,需要用到的库放在lib64下。
- 安装完成后,local目录下出现了名为cuda-11.3的文件夹。由于在安装过程中选择了创建软连接,即创建了cuda目录指向cuda-11.3,故接下来添加路径只需添加cuda的路径即可。这样做,在进行不同版本的cuda切换时会方便很多。
2. 安装完成后,编辑bashrc文件,设置cuda环境变量
sudo gedit ~/.bashrc
在文件末尾添加:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
保存关闭文件后,运行
source ~/.bashrc
3. 测试安装成功
nvcc -V
4. 卸载
A: 运行卸载脚本
1.运行卸载脚本
cd /usr/local/cuda/bin
sudo ./cuda-uninstaller
2.删除安装文件夹
sudo rm -rf cuda
sudo rm -r cuda-12.2
B: 卸载软件及其配置
sudo apt-get --purge remove cuda :卸载软件及其配置
sudo apt-get autoremove cuda :卸载软件及其依赖的安装包
sudo apt-get autoclean ubuntu :删除残余
C: 手动卸载
sudo dpkg -P cuda 然后按Tab键补全,按两次就会弹出所有cuda开头的东西
5. 卸载干净检查
sudo dpkg -l |grep cuda :罗列已安装cuda开头的东西,发现还是有很多没有卸载掉
四、CuDNN安装与卸载
- 首先到CuDNN下载页面,选择合适的版本进行下载
- 然后解压,并进入相应目录,执行一下命令
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
- 通过以下命令查看CuDNN版本
cat /usr/local/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2