Bootstrap

用通俗易懂的方式讲解大模型:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境

虽然现在有很多云厂商都提供了 GPU 服务器,但由于 GPU 的资源稀缺,云 GPU 服务器要么就是价格居高不下,要么就是数量不足无法购买,因此能拥有一块属于自己的 Nvidia 显卡来跑 AI 程序是最好不过了。

虽然现在高端的 Nvidia 显卡又贵又不好买,但是稍微低端的显卡还是好入手的,随着大模型的配置要求越来越低,在低端显卡上跑一些大模型也不是什么问题。不过即使你拥有了一块自己的 Nvidia 显卡,但环境配置也是一个麻烦的问题,今天就来分享一下如何在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动以及 PyTorch。

通俗易懂讲解大模型系列

技术交流

建了大模型技术交流群! 想要学习、技术交流、获取如下原版资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:来自CSDN + 技术交流

在这里插入图片描述

目标

我们的目标是在系统中执行以下命令并返回正确的执行结果(如下图所示):

  • nvcc --version: 显示 CUDA 版本

  • nvidia-smi: 显示 Nvidia 显卡信息

  • python -c “import torch; print(torch.cuda.is_available())”: 显示 PyTorch 是否可用

图片

只要这些命令执行正常,那就证明我们的 AI 环境搭建成功了。

预安装工作

如果你之前有安装过 Nvidia 驱动或者 CUDA 程序的话,那么在安装之前需要先卸载之前的驱动和 CUDA 程序,否则可能会导致安装失败。卸载命令如下:

sudo apt autoremove nvidia* --purge

如果你之前是使用 Nvidia 官方提供的run文件安装的驱动和 CUDA 程序的话,还需要使用以下命令进行完整卸载:

sudo /usr/bin/nvidia-uninstall
# 注意将下面的X和Y替换出你的 CUDA 版本
sudo /usr/local/cuda-X.Y/bin/cuda-uninstall

执行完以上命令后,你的系统就变成了一个"干净"的系统,可以开始安装了。

安装 CUDA

CUDA(Compute Unified Device Architecture)是 NVIDIA 推出的并行计算平台和编程模型。它允许开发者利用 NVIDIA 的 GPU 来进行高效的并行计算。CUDA 为各种应用程序提供了简化的 API 和工具,从而在 GPU 上加速计算密集型任务,如机器学习、科学模拟和图形处理。

首先进入Nvidia CUDA 版本列表页面[1],找到你需要的 CUDA 版本,我们的系统是 Ubuntu22.04,CUDA 最早支持 Ubuntu22 的版本是 11.7,因此我们选择 CUDA Toolkit 11.7.1 版本,个人不建议选择太新的版本(比如 12.x 的版本),因为新版本的 CUDA 可能会有兼容性问题。

进入该版本的下载页面,选择对应的操作系统、架构、操作系统、版本,安装方式,就可以看到相应的安装命令。

图片

注意上图中最后一步命令,不要执行sudo apt-get -y install cuda命令,不然会安装最新的 CUDA(12.x 的版本),我们是要安装 CUDA 11.7,安装命令如下:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring*.deb
sudo apt-get update
sudo apt-get -y install cuda-11-7

安装完成后,我们就可以在终端中直接使用nvcc命令了,命令执行结果如下:

$ nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0

安装驱动

安装完 CUDA 后,我们继续安装 Nvidia 显卡驱动程序。

NVIDIA 显卡驱动是一套软件程序,用于使操作系统和计算机硬件与 NVIDIA 图形卡进行通信。它能优化显卡的性能,支持新游戏的图形要求,同时修复已知的错误和兼容性问题。定期更新驱动可以确保显卡的最佳性能和稳定性。

首先检查下显卡的信息,执行以下命令:

$ lspci | grep -i nvidia

03:00.0 VGA compatible controller: NVIDIA Corporation GM200GL [Quadro M6000] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GM200 High Definition Audio (rev a1)

可以看到这台机器的显卡型号是 NVIDIA Quadro M6000 ,然后我们再看操作系统推荐安装的显卡驱动是什么,命令如下:

$ ubuntu-drivers devices

== /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0 ==
modalias : pci:v000010DEd000017F0sv000010DEsd00001129bc03sc00i00
vendor   : NVIDIA Corporation
model    : GM200GL [Quadro M6000]
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-525 - third-party non-free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-520 - third-party non-free
driver   : nvidia-driver-535 - third-party non-free
driver   : nvidia-driver-530 - third-party non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-515 - third-party non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-470 - distro non-free recommended # 这个就是推荐的驱动
driver   : xserver-xorg-video-nouveau - distro free builtin

可以看到系统推荐安装的驱动是 nvidia-driver-470,然后我们再通过如下命令安装显卡驱动:

sudo apt install nvidia-driver-470

安装完驱动程序后需要重启系统,执行命令sudo reboot重启系统,重启完成后再执行nvidia-smi查看显卡详细信息:

$ nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.199.02   Driver Version: 470.199.02   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro M6000        Off  | 00000000:03:00.0 Off |                  Off |
| 28%   41C    P8    13W / 250W |     15MiB / 12210MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       975      G   /usr/lib/xorg/Xorg                  9MiB |
|    0   N/A  N/A      1164      G   /usr/bin/gnome-shell                2MiB |
+-----------------------------------------------------------------------------+

安装 PyTorch

我们的目标已经完成了三分之二了,最后我们再来看如何安装 PyTorch。

PyTorch 是一个开源的深度学习框架,由 Facebook 的 AI 研究组开发。它提供了灵活的张量计算工具,支持 GPU 加速,并具有动态计算图特性,使其在研究和原型设计中受到青睐。PyTorch 不仅支持神经网络建模,还提供广泛的 API 和库,适用于机器学习、计算机视觉和自然语言处理任务。

安装 PyTorch 可以使用 Pip 安装,但推荐先使用 Conda 来进行 Python 环境管理,Conda 是一个开源的包管理和环境管理系统,主要用于安装各种软件包和依赖,以及创建、保存和切换多个环境。它支持多种语言,尤其是 Python。Conda 的主要优势在于其能够解决库与依赖项之间的兼容性问题,并允许用户轻松地创建隔离的开发或运行环境,避免软件冲突。Conda 的安装可以看这里[2],选择 Miniconda 就可以了。

安装完 Conda 后,我们进入PyTorch 的页面[3],在INSTALL PYTORCH章节选择 PyTorch 版本、操作系统、安装方式、编程语言、CUDA 版本,然后就可以看到 PyTorch 的安装命令了。

图片

安装完后执行命令显示 PyTorch 是否可用:

$ python -c "import torch; print(torch.cuda.is_available())"
True

有时候我们安装了 CUDA 和 PyTorch 后,执行以上命令仍显示Flase(不可用),系统会提示Torch not compiled with CUDA的错误,这是因为 CUDA 和 PyTorch 的版本不兼容导致的,我们可以通过以下命令查看 CUDA 和 PyTorch 的版本:

$ nvcc --version # 查看 CUDA 版本
...
Build cuda_11.7.r11.7/compiler.31442593_0
$ python -c "import torch; print(torch.__version__)" # 查看 PyTorch 版本
2.0.1+cu117

如果 CUDA 和 PyTorch 的版本不兼容,那么我们就需要重新安装 PyTorch,需要先卸载老的 PyTorch 版本:

pip uninstall torch torchvision torchaudio

卸载完成后,重新按照上面的方法安装 PyTorch 即可。

总结

刚接触 AI 环境部署时,可能很多人对这些概念不是很清楚,比如 CUDA、Nvidia 驱动、PyTorch 等,在部署过程中可能也会遇到诸多问题,但只要慢慢了解这些概念,同时多部署几次,就会熟悉其中的操作,希望这篇文章可以帮助你快速的熟悉 AI 环境的部署,如果你有什么问题,欢迎在评论区留言讨论。

关注我,一起学习各种人工智能和 AIGC 新技术,欢迎交流,如果你有什么想问想说的,欢迎在评论区留言。

参考资料

  • How to Install NVIDIA Drivers on Ubuntu 22.04 | 20.04[4]

  • Installing any version of CUDA on Ubuntu and using Tensorflow and Torch on GPU[5]

  • How to remove cuda completely from ubuntu?[6]

  • NVML driver/library mismatch after libnvidia-compute update[7]

参考:

[1]Nvidia CUDA 版本列表页面: https://developer.nvidia.com/cuda-toolkit-archive

[2]这里: https://conda.io/projects/conda/en/latest/user-guide/install/index.html

[3]PyTorch 的页面: https://pytorch.org/

[4]How to Install NVIDIA Drivers on Ubuntu 22.04 | 20.04: https://www.linuxcapable.com/install-nvidia-drivers-on-ubuntu-linux/

[5]Installing any version of CUDA on Ubuntu and using Tensorflow and Torch on GPU: https://medium.com/analytics-vidhya/installing-any-version-of-cuda-on-ubuntu-and-using-tensorflow-and-torch-on-gpu-b1a954500786

[6]How to remove cuda completely from ubuntu?: https://stackoverflow.com/questions/56431461/how-to-remove-cuda-completely-from-ubuntu

[7]NVML driver/library mismatch after libnvidia-compute update: https://stackoverflow.com/questions/62250491/nvml-driver-library-mismatch-after-libnvidia-compute-update

;