如何搭建深度学习的多 GPU 服务器

简介: 如何搭建深度学习的多 GPU 服务器

引言

随着深度学习模型,尤其是大型语言模型的规模不断扩大,对于开发和本地部署这些模型所需的图形处理单元(GPU)内存的需求也在日益增加。构建或获得一台装备有多个GPU的计算机只是面临的挑战之一。默认情况下,大多数库和应用程序仅支持单个GPU的使用。因此,计算机还需要安装合适的驱动程序和能够支持多GPU配置的库。

本文旨在提供一份设置多GPU(Nvidia)Linux系统的指南,以及一些重要库的安装方法。这将帮助你节省在实验过程中的时间,让你能够更快地开始你的开发工作。

文章最后还提供了一些流行的开源库的链接,这些库能够支持多GPU配置,以便于进行深度学习。

  • 目标

配置一个多GPU Linux系统,并安装必要的库,如CUDA Toolkit和PyTorch,以便开始你的深度学习之旅🤖。这些步骤也适用于只有单个GPU的计算机。

我们将安装1) CUDA Toolkit,2) PyTorch,以及3) Miniconda,以便于使用像exllamaV2和torchtune这样的框架来开始深度学习。

环境检查

在终端里运行 nvidia-smi 命令来查看计算机中安装了多少个GPU。该命令会列出所有安装的GPU。如果输出与预期不符或者命令执行失败,首先需要为您的Linux系统安装相应的Nvidia显卡驱动。确保 nvidia-smi 命令能够正确显示计算机中所有安装的GPU列表。

1. CUDA-Toolkit

请先查看 /usr/local/cuda-xx 路径下是否有 CUDA 文件夹,这表示可能已经安装了 CUDA 的某个版本。如果您已经安装了您需要的 CUDA 工具包版本(可以通过终端中的 nvcc 命令来验证),请直接跳过。

确认您希望使用的 PyTorch 库所需的 CUDA 版本:从本地开始 | PyTorch(我们计划安装的是 CUDA 12.1)。

访问 NVIDIA 开发者网站的 CUDA Toolkit 12.1 下载页面,获取适用于 Linux 的安装命令(选择与您的操作系统版本相匹配的“deb (本地)”安装器类型)。

根据您的选择,终端将显示基础安装器的命令。将这些命令复制并粘贴到您的 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-600
wget 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"

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

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 环境。您可以将 <环境名称> 替换为您自己选定的名称。我个人习惯用项目的名字来命名环境。

您可以在开始项目工作时使用 conda activate <环境名称> 命令来激活环境,在工作结束后使用 conda deactivate <环境名称> 命令来停用环境。

conda create -n <environment-name> python=3.11

# activate the environment
conda activate <environment-name>

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

pip3 install torch torchvision torchaudio

上述命令来自PyTorch安装指南:

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

python

>> import torch
>> print(torch.cuda.device_count())
8

这应该打印系统中安装的 GPU 数量(在我的例子中为 8),并且还应该与 nvidia-smi 命令中列出的 GPU 数量相匹配。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
3月前
|
机器学习/深度学习 测试技术 PyTorch
深度学习之测量GPU性能的方式
在深度学习中,测量GPU性能是一个多方面的任务,涉及运行时间、吞吐量、GPU利用率、内存使用情况、计算能力、端到端性能测试、显存带宽、框架自带性能工具和基准测试工具等多种方法。通过综合使用这些方法,可以全面评估和优化GPU的性能,提升深度学习任务的效率和效果。
270 2
|
4月前
|
机器学习/深度学习 人工智能 调度
显著提升深度学习 GPU 利用率,阿里云拿下国际网络顶会优胜奖!
显著提升深度学习 GPU 利用率,阿里云拿下国际网络顶会优胜奖!
310 7
|
4月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
62 0
|
6月前
|
机器学习/深度学习 并行计算 算法框架/工具
为什么深度学习模型在GPU上运行更快?
为什么深度学习模型在GPU上运行更快?
79 2
|
6月前
|
机器学习/深度学习 并行计算 PyTorch
【从零开始学习深度学习】20. Pytorch中如何让参数与模型在GPU上进行计算
【从零开始学习深度学习】20. Pytorch中如何让参数与模型在GPU上进行计算
|
7月前
|
机器学习/深度学习 弹性计算 自然语言处理
【阿里云弹性计算】深度学习训练平台搭建:阿里云 ECS 与 GPU 实例的高效利用
【5月更文挑战第28天】阿里云ECS结合GPU实例为深度学习提供高效解决方案。通过弹性计算服务满足大量计算需求,GPU加速训练。用户可按需选择实例规格,配置深度学习框架,实现快速搭建训练平台。示例代码展示了在GPU实例上使用TensorFlow进行训练。优化包括合理分配GPU资源和使用混合精度技术,应用涵盖图像识别和自然语言处理。注意成本控制及数据安全,借助阿里云推动深度学习发展。
262 2
|
7月前
|
机器学习/深度学习 并行计算 TensorFlow
TensorFlow与GPU加速:提升深度学习性能
【4月更文挑战第17天】本文介绍了TensorFlow如何利用GPU加速深度学习, GPU的并行处理能力适合处理深度学习中的矩阵运算,显著提升性能。TensorFlow通过CUDA和cuDNN库支持GPU,启用GPU只需简单代码。GPU加速能减少训练时间,使训练更大、更复杂的模型成为可能,但也需注意成本、内存限制和编程复杂性。随着技术发展,GPU将继续在深度学习中发挥关键作用,而更高效的硬件解决方案也将备受期待。
|
7月前
|
机器学习/深度学习 并行计算 算法框架/工具
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
991 3
|
2天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用及其面临的挑战。通过分析深度学习模型如卷积神经网络(CNN)的工作原理,我们揭示了这些模型如何有效地处理和识别图像数据。同时,文章也指出了当前深度学习在图像识别中遇到的一些主要问题,包括过拟合、数据集偏差和模型解释性等,为读者提供了对这一领域全面而深入的理解。
|
1天前
|
机器学习/深度学习 传感器 边缘计算
基于深度学习的图像识别技术在自动驾驶中的应用####
随着人工智能技术的飞速发展,深度学习已成为推动自动驾驶技术突破的关键力量之一。本文深入探讨了深度学习算法,特别是卷积神经网络(CNN)在图像识别领域的创新应用,以及这些技术如何被集成到自动驾驶汽车的视觉系统中,实现对复杂道路环境的实时感知与理解,从而提升驾驶的安全性和效率。通过分析当前技术的最前沿进展、面临的挑战及未来趋势,本文旨在为读者提供一个全面而深入的视角,理解深度学习如何塑造自动驾驶的未来。 ####
16 1