news 2026/4/23 18:00:11

如何在 2024 年设置一个用于深度学习的多 GPU Linux 机器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在 2024 年设置一个用于深度学习的多 GPU Linux 机器

原文:towardsdatascience.com/how-to-setup-a-multi-gpu-linux-machine-for-deep-learning-in-2024-df561a2d3328?source=collection_archive---------0-----------------------#2024-05-19

使用多个 GPU 进行深度学习

在几分钟内快速设置 CUDA 和 PyTorch!

https://medium.com/@nirajkamal?source=post_page---byline--df561a2d3328--------------------------------https://towardsdatascience.com/?source=post_page---byline--df561a2d3328-------------------------------- Nika

·发布于 Towards Data Science ·6 分钟阅读·2024 年 5 月 19 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3cef01ab529215b4b49adeed49721c78.png

作者提供的图像:多 GPU 机器(卡通图)

随着深度学习模型(尤其是 LLM)不断变得更大,开发和本地使用这些模型对 GPU 内存(VRAM)的需求日益增加。构建或获得一台多 GPU 机器仅仅是挑战的第一部分。大多数库和应用程序默认只使用单个 GPU。因此,机器还需要配备适当的驱动程序以及能够利用多 GPU 设置的库。

本文提供了一个如何设置多 GPU(Nvidia)Linux 机器并安装重要库的指南。希望能够节省你在实验中的时间,帮助你更快开始开发。

最后,提供了可以利用多 GPU 设置进行深度学习的流行开源库的链接。

目标

设置一个多 GPU 的 Linux 系统,并安装必要的库,如 CUDA 工具包和 PyTorch,以开始进行深度学习🤖。相同的步骤也适用于单 GPU 机器。

我们将安装 1)CUDA 工具包,2)PyTorch 和 3)Miniconda,开始使用 exllamaV2 和 torchtune 等框架进行深度学习。

©️ 本文中提到的所有库和信息均为开源和/或公开可用。

入门

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cf98219698c22c0bc7ba55518467eb1f.png

作者提供的图像:在配备 8 个 Nvidia A10G GPU 的 Linux 机器上运行 nvidia-smi 命令的输出

使用终端中的nvidia-smi命令检查机器中安装的 GPU 数量。它应该打印出所有已安装的 GPU 列表。如果有任何不一致,或者命令无法工作,请首先为你的 Linux 版本安装 Nvidia 驱动程序。确保nvidia-smi命令能正确打印出所有已安装的 GPU,如上所示。

如果尚未安装 Nvidia 驱动程序,请按照此页面安装:

如何在 Ubuntu 22.04 上安装 NVIDIA 驱动程序 — Linux 教程 — 学习 Linux 配置(来源:linuxconfig.org)

第 1 步 安装 CUDA 工具包

💡检查是否存在现有的 CUDA 文件夹*usr/local/cuda-xx*。这意味着已经安装了一个版本的 CUDA。如果你已经安装了所需的 CUDA 工具包(通过在终端中使用*nvcc*命令检查),请跳到第 2 步。

检查你所需的 PyTorch 库所需的 CUDA 版本:从本地开始 | PyTorch(我们正在安装 CUDA 12.1)

前往 CUDA Toolkit 12.1 下载 | NVIDIA 开发者 获取 Linux 安装 CUDA 12.1 的命令(选择你的操作系统版本和相应的“deb(本地)”安装类型)。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/29309c4402baba465c39b23a0bc89e15.png

为 Ubuntu 22 选择的选项(来源:developer.nvidia.com)

基础安装程序的终端命令将根据你选择的选项出现。将它们复制并粘贴到你的 Linux 终端中运行,以安装 CUDA 工具包。例如,对于 x86_64 Ubuntu 22,打开下载文件夹中的终端并运行以下命令:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin/etc/apt/preferences.d/cuda-repository-pin-600wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb sudo dpkg-i cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb sudo cp/var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg/usr/share/keyrings/sudo apt-get update sudo apt-get-y install cuda

⚠️在安装 CUDA 工具包时,安装程序可能会提示更新内核。如果终端中出现任何提示更新内核的弹窗,按*esc*按钮取消。此阶段不要更新内核!——这样可能会破坏你的 Nvidia 驱动程序☠️。

安装完成后,请重新启动 Linux 机器。nvcc命令仍然无法使用。你需要将 CUDA 安装路径添加到 PATH 中。使用 nano 编辑器打开.bashrc文件。

nano/home/$USER/.bashrc

滚动到.bashrc文件的底部,并添加以下两行:

export PATH="/usr/local/cuda-12.1/bin:$PATH"export LD_LIBRARY_PATH="/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH"

💡请注意,你可以将*cuda-12.1*更改为你安装的 CUDA 版本,*cuda-xx*,如果将来需要,‘xx’ 表示你的 CUDA 版本。

保存更改并关闭 nano 编辑器:

To save changes-On you keyboard,press the following:ctrl+o-->save enterorreturnkey-->accept changes ctrl+x-->close editor

关闭并重新打开终端。现在,nvcc--version命令应该在终端中打印已安装的 CUDA 版本。

第 2 步 安装 Miniconda

在安装 PyTorch 之前,最好先安装 Miniconda,然后在 Conda 环境中安装 PyTorch。为每个项目创建一个新的 Conda 环境也是很方便的。

打开下载文件夹中的终端,并运行以下命令:

mkdir-p~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh-O~/miniconda3/miniconda.sh bash~/miniconda3/miniconda.sh-b-u-p~/miniconda3 rm-rf~/miniconda3/miniconda.sh# initiate conda~/miniconda3/bin/conda init bash~/miniconda3/bin/conda init zsh

关闭并重新打开终端。现在,conda命令应该可以正常工作。

第 3 步 安装 PyTorch

(可选)— 为你的项目创建一个新的 conda 环境。你可以将<environment-name>替换为你喜欢的名称。我通常使用项目名称来命名。💡你可以在工作前后使用*conda activate <environment-name>**conda deactivate <environment-name>*命令。

conda create-n<environment-name>python=3.11# activate the environmentconda activate<environment-name>

为你的 CUDA 版本安装 PyTorch 库。以下命令适用于我们安装的 cuda-12.1 版本:

pip3 install torch torchvision torchaudio

上述命令来源于 PyTorch 安装指南 — Start Locally | PyTorch。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2cb51751b02a7e251fb9eb15d57fab1e.png

(来源:pytorch.org)

安装 PyTorch 后,检查在终端中 PyTorch 可见的 GPU 数量。

python>>importtorch>>print(torch.cuda.device_count())8

这应该打印出系统中安装的 GPU 数量(在我的案例中是 8 个),并且应与nvidia-smi命令中列出的 GPU 数量一致。

完成!你已经准备好开始使用多 GPU 进行深度学习项目了 🥳。

下一步?开始进行利用你的多 GPU 设置的深度学习项目(LLM)。

1. 🤗 开始时,你可以从Hugging Face克隆一个流行的模型:

[## meta-llama/Meta-Llama-3-8B · Hugging Face

我们的目标是通过开源和开放科学推动人工智能的发展和普及。

huggingface.co

2. 💬 对于推理(使用 LLM 模型),请在一个单独的环境中克隆并安装exllamav2。这将使用你所有的 GPU 来加速推理:(查看我的 Medium 页面获取详细教程)

[## GitHub - turboderp/exllamav2: A fast inference library for running LLMs locally on modern…

一款适用于现代消费级 GPU 上运行 LLM 的快速推理库 - turboderp/exllamav2

github.com

3. 👨‍🏫 对于微调或训练,你可以克隆并安装torchtune。按照说明进行full finetunelora finetune,并利用你所有的 GPU:(查看我的 Medium 页面获取详细教程)

[## GitHub - pytorch/torchtune: A Native-PyTorch Library for LLM Fine-tuning

一个用于 LLM 微调的原生 PyTorch 库。通过在…创建账户参与 pytorch/torchtune 的开发

github.com

结论

本指南将带你完成多 GPU 深度学习所需的机器设置。现在,你可以开始进行任何使用多 GPU 的项目——例如 torchtune 来加速开发!

敬请关注有关exllamaV2torchtune的更多详细教程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 13:58:28

大模型推理服务灰度发布Checklist

大模型推理服务灰度发布Checklist 在大模型应用日益深入生产环境的今天&#xff0c;如何安全、高效地将新版本模型推上线&#xff0c;成为AI工程团队面临的核心挑战之一。一个微小的性能退化或稳定性问题&#xff0c;可能在高并发场景下被迅速放大&#xff0c;导致用户体验下降…

作者头像 李华
网站建设 2026/4/23 3:42:12

智能手机bootloader模式下fastboot驱动工作流程解析

深入理解智能手机的Fastboot机制&#xff1a;从Bootloader到刷机全过程实战解析你有没有过这样的经历&#xff1f;手机变砖、系统无法启动&#xff0c;ADB进不去&#xff0c;应用打不开——但只要一条fastboot flash boot boot.img命令&#xff0c;设备就“起死回生”了。这背后…

作者头像 李华
网站建设 2026/4/23 9:27:57

基于TensorRT的智能电网故障预警系统

基于TensorRT的智能电网故障预警系统 在现代电力系统的运行中&#xff0c;一次突发短路或设备劣化可能引发连锁反应&#xff0c;轻则造成局部停电&#xff0c;重则导致区域级电网震荡。传统基于阈值和统计模型的故障检测手段&#xff0c;往往只能“事后响应”&#xff0c;难以捕…

作者头像 李华
网站建设 2026/4/23 12:14:14

rs232串口调试工具数据帧解析的系统学习路径

从波形到协议&#xff1a;如何真正“看懂”RS232串口通信当你的串口输出全是乱码时&#xff0c;你在调试什么&#xff1f;你有没有过这样的经历&#xff1f;嵌入式板子一上电&#xff0c;打开XCOM、SSCOM或者PuTTY&#xff0c;屏幕上刷出一堆~[之类的字符&#xff0c;像是某种外…

作者头像 李华
网站建设 2026/4/22 20:22:20

嵌入式开发环境搭建:STM32CubeMX安装核心要点

从零开始搭建STM32开发环境&#xff1a;STM32CubeMX安装避坑全指南 你有没有遇到过这样的情况&#xff1f; 刚下定决心入手STM32&#xff0c;兴致勃勃地下载了STM32CubeMX&#xff0c;结果双击图标却弹出一个黑框闪退&#xff1b;或者启动后卡在“Loading”界面&#xff0c;提…

作者头像 李华
网站建设 2026/4/23 12:13:42

Proteus示波器方波时序分析:项目实战示例

用Proteus示波器“解剖”方波&#xff1a;一次真实的时序实战你有没有遇到过这样的情况&#xff1f;MCU输出的PWM信号明明配置成1kHz&#xff0c;接上电机却发现转速不对&#xff1b;或者555定时器搭了个振荡电路&#xff0c;结果LED闪烁频率和计算值差了一大截。这时候你会想&…

作者头像 李华