概述
总所周知,在计算机视觉与机器学习/深度学习领域,有相当多数据计算量十分巨大,比如说深度学习模型的训练与大型图像矩阵的处理。若将这些计算任务全部交给 CPU 这个“万金油”来执行,效果是远不如交给能做并行计算任务的 GPU 或 NPU 的。因此,在上述领域的开发环境中配置 GPU 硬件加速必要的驱动与开发套件就显得很重要了,本文在下面将以 Ubuntu 20.04.6 LTS 为例,介绍如何在 Linux 上简易地安装 NVIDIA 显卡驱动,并安装配置并行计算套件 CUDA Toolkit 与深度神经网络开发模块 cuDNN。
附 笔者使用的计算机情况:
- CPU: Intel(R) Core i9-13900HX x 32
- GPU: NVIDIA GeForce RTX 4080 Laptop 12G
- RAM: SAMSUNG DDR5-5600MHz 16GB × 2
- OS: Ubuntu 20.04.6 (Desktop) LTS
安装流程
安装 NVIDIA 的 显卡 驱动
在 Ubuntu 20.04.6 LTS 中,打开应用列表,找到“附加驱动”并运行。以笔者这台计算机为例,可在新的窗口中选择“使用NVIDIA driver metapackage 来在 nvidia-driver-535(专有,tested )”,然后点击“应用更改”以安装(最新的)NVIDIA 显卡驱动。
若您发觉在此页面中未找到与 NVIDIA 相关的选项,那么很有可能您当前使用的计算机显示卡为 AMD 或 Intel 提供的,自然无法安装 NVIDIA 相关的驱动与软件。若您身处计算机视觉、机器学习与深度学习领域,请考虑更换计算机或更换显卡,因为有且仅有 NVIDIA 的显卡可以使用 CUDA Toolkit ,而 CUDA Toolkit 已深度应用于计算机视觉和深度学习领域。
在等待应用更改的过程中,可能会出现一个窗口,请点击“Next”。这是 UEFI 为了保护数据与硬件安全而采取的引导保护,需要用户在下一次重启时输入密钥,请设置至少8位且便于记忆和输入的密钥。
请注意:这里使用了“可能”一词来描述密码保护页的出现。如果您的计算机的 BIOS 中并没有开启“安全引导”或“引导保护”等功能,则不会出现下面的任何“密码输入”与“蓝屏”现象,仅会提示您需要重启。请注意观察,与密码保护相关的操作流程仅供参考:
在重启电脑后,将会看到一个“蓝屏界面”。不要害怕,首先,使用“↓”键将光标移至“Enroll MOK”,接着按下 Enter 键,
接着,使用“↓”键将光标移至“Continue”,按下 Enter 键:
然后,选择“Yes”,按 Enter 继续:
输入刚才我们设置的密钥即可。请在输入时确保您的输入无误,因为它不会显示密码输入:
最后,选择“Reboot”,按下 Enter 键即可重启
重启后,打开终端,输入以下命令来查看 NVIDIA 显卡驱动的安装情况:
nvidia-smi
可以看到,笔者的 Ubuntu 系统目前已成功安装 NVIDIA 显卡驱动,并且最高支持的CUDA版本为 12.2。
安装 CUDA Toolkit
笔者为了后续与 Pytorch 深度学习框架,ZED SDK 和 OpenCV 4.9.0 进行匹配,选择的 CUDA Toolkit 版本为 11.7。重要提醒:若您安装 CUDA ToolKit 是为了深度学习与其它对 CUDA 版本有硬性要求的用途,请务必在它们的官网查看“对应的 CUDA 版本”(例如,可在 PyTorch官网 查询到,PyTorch v1.13 对应的 CUDA 版本有 11.7 与 11.6 )!
首先,我们从 CUDA ToolKit 归档页 下载适用于 Ubuntu 20.04 x64 的 CUDA TookKit 的 .sh
可执行文件:
将这两行命令分别粘贴到终端中运行,第一个命令用于下载,第二个命令用于运行下载的文件。第一个命令可能会执行很长时间,视网络环境而定,耐心等待即可。
运行第二个命令后,终端可能会卡一会,请不要打断或关闭窗口。片刻之后,会看到终端上显示的 CUDA安装向导,使用“↑”、“↓”键移动高亮光标至“继续”上,并按 Enter 继续:
输入“accept”以接受用户协议:
接下来依然可使用方向键来控制选项,使用 Enter 键来执行“点击”操作,“[ ]”中打“X”则代表选中,反之则未选中。
由于我们先前已安装 NVIDIA 显卡驱动,因此将第一项“Driver”取消选择,仅选择 CUDA 相关的三个选项。最后,将光标移至“安装”以确认安装:
随后,终端会“卡住”一会。等待片刻后,会看到终端的如下提示。这并非安装失败或报错,我们仅需配置环境变量即可完成 CUDA 11.7 的安装:
在终端中输入以下命令以编辑用户环境变量:
sudo gedit ~/.bashrc
在 ~/.bashrc
文件的最后添加上这两行内容:
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
保存文件后,回到终端,运行下面的命令以刷新环境变量:
source ~/.bashrc
最后,输入下面的命令,若输出与下图类似,则代表 CUDA ToolKit 已安装配置完成:
nvcc -V
安装 cuDNN
在完成 CUDA ToolKit 的安装后,我们访问 cuDNN 归档页 来查找与下载匹配我们 CUDA ToolKit 版本的 cuDNN 模块。
在一众版本的 cuDNN 中,虽然大部分都标注着支持 “11.x” 或 “12.x” 全版本,但笔者有个选择建议:在满足软件依赖的前提下,选择与你的 CUDA ToolKit 、Pytorch 等框架发行时间相近的 cuDNN 版本。例如,笔者的 Python
版本是 Python
3.8 ,CUDA ToolKit 版本为 11.7 ,发行于 2022 年 5 月。因此,可选择发行于 2022 年 5 月的 cnDNN v8.4.1:
选择“Local Installer for Linux x86_64 (Tar)”下载:
当然,下载 cuDNN 需要登录 NVIDIA 账户。账号注册流程非常简单常规,本文不再过多赘述:
下载后,在文件下载目录中打开终端,分别运行下面的命令进行 cuDNN 的配置安装
# [your-cudnn-tar-xz-package] 为刚才下载的 cuDNN 文件名
# 请根据实际情况输入第一条命令
tar -xvf [your-cudnn-tar-xz-package]
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
最后,输入以下命令来验证 cuDNN 是否配置完成。若终端中的内容如下图所示,则说明配置完成:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
至此,NVIDIA 的显卡驱动、CUDA ToolKit 与 cuDNN 模块都已安装完毕。
总结
本文在安装 GPU 驱动时未采用大多数博客中采用的命令行或无 GUI 模式安装,而是利用 Ubuntu 附加驱动程序实现了相对简单的安装操作,另外在安装 cuDNN 时也使用了拷贝覆盖法而非 Debian/Ubuntu 系统中使用的 deb
包安装法,但最终实现的效果与逻辑其实都是相似的。当我们安装好驱动,配置好 CUDA 后,就可以开始借助 GPU 的力量进行并行计算,玩转计算机视觉/深度学习了,若各位对此部分还有其他的看法与建议,也欢迎在下方评论区留言、评论。