Cómo configurar una máquina Linux con múltiples GPU para aprendizaje profundo en 2024 |  por Nika |  mayo, 2024

APRENDIZAJE PROFUNDO CON MÚLTIPLES GPUS

¡Configuración súper rápida de CUDA y PyTorch en minutos!

Imagen del autor: máquina con múltiples GPU (dibujos animados)

A medida que los modelos de aprendizaje profundo (especialmente los LLM) siguen creciendo, la necesidad de más memoria GPU (VRAM) aumenta cada vez más para desarrollarlos y utilizarlos localmente. Construir u obtener una máquina con múltiples GPU es solo la primera parte del desafío. La mayoría de las bibliotecas y aplicaciones solo utilizan una GPU de forma predeterminada. Por lo tanto, la máquina también necesita tener controladores adecuados junto con bibliotecas que puedan aprovechar la configuración de múltiples GPU.

Esta historia proporciona una guía sobre cómo configurar una máquina Linux con múltiples GPU (Nvidia) con bibliotecas importantes. Con suerte, esto le ahorrará algo de tiempo en la experimentación y le permitirá comenzar con su desarrollo.

Al final, se proporcionan enlaces a bibliotecas populares de código abierto que pueden aprovechar la configuración de múltiples GPU para el aprendizaje profundo.

Objetivo

Configure un sistema Linux multi-GPU con las bibliotecas necesarias, como CUDA Toolkit y PyTorch, para comenzar con el aprendizaje profundo. 🤖. Los mismos pasos también se aplican a una máquina con una sola GPU.

Instalaremos 1) CUDA Toolkit, 2) PyTorch y 3) Miniconda para comenzar con el aprendizaje profundo utilizando marcos como exllamaV2 y torchtune.

©️ Todas las bibliotecas y la información mencionada en esta historia son de código abierto y/o están disponibles públicamente.

Empezando

Imagen del autor: Salida del comando nvidia-smi en una máquina Linux con 8 GPU Nvidia A10G

Verifique la cantidad de GPU instaladas en la máquina usando el nvidia-smi comando en la terminal. Debería imprimir una lista de todas las GPU instaladas. Si hay una discrepancia o si el comando no funciona, primero instale los controladores de Nvidia para su versión de Linux. Asegúrate que nvidia-smi El comando imprime una lista de todas las GPU instaladas en su máquina como se muestra arriba.

Siga esta página para instalar los controladores Nvidia si aún no lo ha hecho:

Cómo instalar los controladores NVIDIA en Ubuntu 22.04 — Tutoriales de Linux — Aprenda la configuración de Linux– (Fuente: linuxconfig.org)

Paso 1 Instalar el kit de herramientas CUDA

💡 Compruebe si hay alguna carpeta CUDA existente en usr/local/cuda-xx. Eso significa que ya hay una versión de CUDA instalada. Si ya tiene instalado el kit de herramientas CUDA deseado (consulte con el nvcc comando en su terminal) salte al Paso 2.

Verifique la versión de CUDA necesaria para la biblioteca PyTorch que desee: Comience localmente | PyTorch (Estamos instalando Instalar CUDA 12.1)

Ir a Descargas del kit de herramientas CUDA 12.1 | Desarrollador NVIDIA para obtener comandos de Linux para instalar CUDA 12.1 (elija la versión de su sistema operativo y el tipo de instalador “deb (local)” correspondiente).

Opciones seleccionadas para Ubuntu 22 (Fuente: desarrollador.nvidia.com)

Los comandos de terminal para el instalador base aparecerán según las opciones elegidas. Copie, pegue y ejecútelos en su terminal Linux para instalar el kit de herramientas CUDA. Por ejemplo, para x86_64 Ubuntu 22, ejecute los siguientes comandos abriendo la terminal en la carpeta de descargas:

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

⚠️Al instalar el kit de herramientas CUDA, el instalador puede solicitar una actualización del kernel. Si aparece alguna ventana emergente en la terminal para actualizar el kernel, presione el botón esc botón para cancelarlo. ¡No actualice el kernel durante esta etapa! Puede dañar los controladores de Nvidia. ☠️.

Reinicie la máquina Linux después de la instalación. El nvcc El comando todavía no funcionará. Debe agregar la instalación de CUDA a PATH. Abre el .bashrc archivo usando el editor nano.

nano /home/$USER/.bashrc

Desplácese hasta el final de la .bashrc archivo y agregue estas dos líneas:

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

💡 Tenga en cuenta que puede cambiar cuda-12.1 a su versión CUDA instalada, cuda-xx si es necesario en el futuro, siendo ‘xx’ su versión CUDA.

Guarde los cambios y cierre el nano editor:

 To save changes - On you keyboard, press the following: 

ctrl + o --> save
enter or return key --> accept changes
ctrl + x --> close editor

Cierra y vuelve a abrir la terminal. Ahora el nvcc--version El comando debería imprimir la versión CUDA instalada en su terminal.

Paso 2 Instalar Miniconda

Antes de instalar PyTorch, es mejor instalar Miniconda y luego instalar PyTorch dentro de un entorno Conda. También es útil crear un nuevo entorno Conda para cada proyecto.

Abra la terminal en la carpeta Descargas y ejecute los siguientes comandos:

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

Cierra y vuelve a abrir la terminal. Ahora el conda El comando debería funcionar.

Paso 3 Instalar PyTorch

(Opcional): cree un nuevo entorno conda para su proyecto. puedes reemplazar <environment-name> con el nombre de tu elección. Normalmente le pongo el nombre de mi proyecto. 💡 Puedes usar el conda activate <environment-name> y conda deactivate <environment-name> comandos antes y después de trabajar en su proyecto.

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

# activate the environment
conda activate <environment-name>

Instale la biblioteca PyTorch para su versión CUDA. Los siguientes comandos son para cuda-12.1 que instalamos:

pip3 install torch torchvision torchaudio

El comando anterior se obtiene de la guía de instalación de PyTorch: Comience localmente | PyTorch .

(Fuente: pytorch.org)

Después de la instalación de PyTorch, verifique la cantidad de GPU visibles para PyTorch en la terminal.

python

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

Esto debería imprimir la cantidad de GPU instaladas en el sistema (8 en mi caso) y también debe coincidir con la cantidad de GPU enumeradas en el nvidia-smi dominio.

¡Viola! ya está todo listo para comenzar a trabajar en sus proyectos de aprendizaje profundo que aprovechan múltiples GPU 🥳.

1. 🤗 Para comenzar, puedes clonar un modelo popular de abrazando la cara:

2. 💬 Para inferencia (usando modelos LLM), clonar e instalar exllamav2 en un ambiente separado. Esto utiliza todas sus GPU para una inferencia más rápida: (consulte mi página mediana para obtener un tutorial detallado)

3. 👨‍🏫 Para realizar ajustes o entrenar, puedes clonar e instalar melodía de antorcha. Siga las instrucciones para full finetune o lora finetune tus modelos, aprovechando todas tus GPU: (Consulta mi página mediana para ver un tutorial detallado)

Esta guía lo guía a través de la configuración de la máquina necesaria para el aprendizaje profundo con múltiples GPU. Ahora puedes empezar a trabajar en cualquier proyecto que aproveche varias GPU, ¡como torchtune para un desarrollo más rápido!

Manténganse al tanto para tutoriales más detallados sobre exllamaV2 y melodía de antorcha.