随着深度学习模型,特别是大语言模型(LLM)的规模不断膨胀,在本地开发和部署它们时,对GPU显存(VRAM)的需求也跟着水涨船高。搞一台多GPU的机器,不过是万&里长征第一步。真正麻烦的地方在于,大多数库和应用程序默认只认单卡。这意味着,你得给这台机器配上合适的驱动,以及能真正发挥多卡优势的库,才算大功告成。

这篇文章就是一份实战指南,专门教你如何给一台多GPU(Nvidia)的Linux机器装好关键软件。希望能帮你省下那些反复试错的时间,直接上手干活。
文末还附上了一些能充分利用多GPU设置的开源库链接,方便你进一步探索。
目标
搭建一个多GPU的Linux系统,把CUDA Toolkit、PyTorch这些必备工具一股脑装好,为后续的深度学习项目铺平道路。这其中的步骤,对单卡机器也同样适用。
具体来说,我们会依次搞定:1) CUDA Toolkit、2) PyTorch和3) Miniconda,为之后使用exllamaV2、torchtune这类框架做好准备。
(说明一下,本文涉及的所有库和信息均为开源或公开可用的资源。)
开始行动
首先,在终端里敲下 nvidia-smi 命令,确认一下机器上装了多少块GPU。这条命令会把所有已安装的显卡都列出来。如果结果不对,或者命令压根不管用,那就得先去装一个和你Linux版本匹配的Nvidia驱动了。一定要让 nvidia-smi 命令能把机器里所有的显卡都正确显示出来。
如果还没装驱动,按下面几步操作就行(以Ubuntu 22.04为例,演示如何从默认的开源Nouveau驱动切换到Nvidia专有驱动)。虽然Nouveau是系统自带的,但Nvidia的官方驱动通常在性能和兼容性上更胜一筹。
整个过程我们统一用命令行来搞定。
第一步:查型号,找驱动
先确认你的Nvidia显卡型号和推荐的驱动版本。执行以下命令(注意,你的输出结果很可能和示例不一样):
ubuntu-drivers devices
从输出结果我们能判断,当前系统装了NVIDIA GeForce RTX 3080,推荐的驱动是 nvidia-driver-470。
第二步:装驱动
如果觉得推荐版本合适,直接用 ubuntu-drivers 命令安装全部推荐驱动:
sudo ubuntu-drivers autoinstall
或者,你也可以用 apt 命令有选择地安装,比如:
sudo apt install nvidia-driver-470
第三步:重启生效
安装完毕后,重启系统:
sudo reboot
安装 CUDA Toolkit
先检查一下,看看 /usr/local/cuda-xx 文件夹存不存在。如果有,说明之前已经装过CUDA。用 nvcc --version 命令确认一下版本,如果正是你需要的,直接跳到下一节。
首先,去PyTorch官网(https://pytorch.org/get-started/locally/)查一下你打算装的PyTorch版本需要哪个CUDA版本。
然后,前往CUDA Toolkit下载页面(https://developer.nvidia.com/cuda-downloads),选择对应的操作系统和“deb (local)”安装包类型。页面会自动生成安装命令。比如,对于x86_64架构的Ubuntu 22.04,可以在下载文件夹里打开终端,依次运行以下命令(以CUDA 12.1为例):
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驱动搞坏。
安装完成后,重启机器。这时你会发现 nvcc 命令还是没法用,别急,需要手动把CUDA的安装路径添加到系统环境变量里。用nano编辑器打开 .bashrc 文件:
nano /home/$USER/.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版本号。
保存并退出(按 Ctrl+O 保存,按 Enter 确认,再按 Ctrl+X 关闭)。之后,关掉终端再重新打开,运行 nvcc --version,就能看到安装好的CUDA版本了。
安装 MiniConda
在安装PyTorch之前,强烈建议先装Miniconda,然后在Conda环境中安装PyTorch。这样做的好处是,你可以为每个项目创建独立的虚拟环境,避免各种库的版本冲突。
在下载文件夹里打开终端,依次运行这些命令:
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
# 初始化 conda
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
同样,关掉终端再重新打开,conda 命令就生效了。
安装 PyTorch
先为你的项目创建一个新的 Conda 环境。把 替换成你喜欢的名字,比如项目名:
conda create -n python=3.11
# 激活环境
conda activate
接着,安装与你CUDA版本匹配的PyTorch。对于刚才装的CUDA 12.1,可以直接用这条命令(来自PyTorch安装指南):
pip3 install torch torchvision torchaudio
安装完成后,在终端里启动Python,检查PyTorch能看到几张显卡:
python
>>> import torch
>>> print(torch.cuda.device_count())
8
这个数字应该和 nvidia-smi 命令列出的GPU数量一致(我这里显示的是8张)。
好!一切准备就绪,现在就可以用上多块GPU,开启你的深度学习项目了。
附:一些值得关注的多GPU深度学习开源框架
- exllamaV2:一个专注于高效运行和微调LLaMA系列模型的库,对多GPU有很好的支持。
- torchtune:PyTorch官方推出的、用于简化大语言模型微调的工具,同样原生支持多卡并行。
- DeepSpeed:微软的深度学习优化库,其ZeRO系列优化技术能极大提升多GPU训练的效率。
- Hugging Face Accelerate:一个轻量级的库,能让PyTorch代码轻松实现多GPU、TPU或混合精度训练。
- FSDP:PyTorch官方原生的完全分片数据并行策略,是训练超大模型时的有力武器。
