随着深度学习模型(特别是大型语言模型)不断变大,开发和本地使用它们对更多GPU内存(VRAM)的需求也在不断增加。构建或获取多GPU机器只是挑战的第一部分。大多数库和应用程序默认只使用一个GPU。因此,机器还需要有适当的驱动程序以及可以利用多GPU设置的库。
这篇文章提供了如何在多GPU(Nvidia)Linux机器上设置重要库(如CUDA Toolkit和PyTorch)的指南。这将希望节省你在实验上的时间,并让你开始你的开发。最后,提供了可以利用多GPU设置进行深度学习的流行开源库的链接。
目标:设置一个带有必要库(如CUDA Toolkit和PyTorch)的多GPU Linux系统,以开始深度学习。(相同的步骤也适用于单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命令),请跳到步骤2。
检查你所需的PyTorch库所需的CUDA版本:
基础安装程序的终端命令将根据你选择的选项出现。复制并粘贴它们在你的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"
注意你可以将cuda-12.1更改为你安装的CUDA版本,如果将来需要,cuda-xx,'xx'是你的CUDA版本。
保存更改并关闭nano编辑器:
To save changes - On you keyboard, press the following:
ctrl + o --> save
enter or return key --> 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环境。
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可见的GPU数量。
python
>> import torch
>> print(torch.cuda.device_count())
8
这应该打印出系统中安装的GPU数量(我的情况下是8),也应该与nvidia-smi命令中列出的GPU数量相匹配。