¡Pregunte, nosotros le respondemos!

Cómo ejecutar DeepLearning benchmark

Ejecutar pruebas comparativas en servidores de aprendizaje automático no es la tarea más sencilla. Entre las pruebas más populares se encuentran benchmarks como MLperf, ai-benchmark y deeplearning-benchmark. El primero es un conjunto de pruebas dirigidas a fabricantes de equipos, no a usuarios normales. Por lo tanto, ejecutar pruebas del conjunto MLperf requiere profundos conocimientos de programación y experiencia con aplicaciones en contenedores.

El segundo benchmark mencionado es un poco más sencillo, pero existen ciertos matices debido a sus anticuadas instrucciones de instalación. El paquete tensorflow-gpu está declarado como "obsoleto", y el comando pip install tensorflow[and-cuda] sigue produciendo errores de inicialización. Por lo tanto, nos centraremos en el tercer benchmark. En primer lugar, vamos a actualizar la caché de paquetes e instalar automáticamente los controladores de la GPU. Estas instrucciones se aplican a Ubuntu 22.04

Requisitos previos

Actualización del sistema

sudo apt update && sudo apt -y upgrade && sudo apt ubuntu-drivers autoinstall

Reiniciar el servidor:

sudo shutdown -r now

Añadir repositorios

Dado que el paquete nvidia-container-toolkit y sus dependencias no forman parte del repositorio estándar, deberá añadir un repositorio independiente de acuerdo con la guía de NVIDIA®:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Actualizar la caché de paquetes:

sudo apt-get update

Docker y NVIDIA® Container Toolkit

Instala el motor Docker y NVIDIA® Container Toolkit:

sudo apt-get install docker.io nvidia-container-toolkit

Para evitar usar sudo cada vez con Docker, añade el usuario al grupo apropiado y créalo:

sudo usermod -aG docker $USER
newgrp docker

Preparar un contenedor

A continuación, tendrás que descargar una imagen de contenedor preparada desde el Registro de Contenedores de NVIDIA® llamada pytorch:22.10-py3. Para evitar escribir esto cada vez, vamos a utilizar la capacidad del shell de comandos para crear variables. Asignemos este valor a la variable NAME_NGC:

export NAME_NGC=pytorch:22.10-py3

Ahora, saca la imagen del registro usando la variable creada:

docker pull nvcr.io/nvidia/${NAME_NGC}

Una vez que la imagen del contenedor está en el servidor, necesitas descargar el contenido de dos repositorios. Clona el primer repositorio con ejemplos de código y cambia a la rama que necesitamos:

git clone https://github.com/LambdaLabsML/DeepLearningExamples.git && \
cd DeepLearningExamples && \
git checkout lambda/benchmark && \
cd ..

Clonar el segundo repositorio, que contiene la implementación en PyTorch del código del benchmark:

git clone https://github.com/lambdal/deeplearning-benchmark.git && \
cd deeplearning-benchmark/pytorch

Lanzar el contenedor creado, montando simultáneamente los directorios necesarios y llamando al script para preparar el conjunto de datos. Este comando puede tardar aproximadamente media hora en completarse, así que ten paciencia y espera a que termine:

docker run --gpus all --rm --shm-size=64g \
  -v ~/DeepLearningExamples/PyTorch:/workspace/benchmark \
  -v ~/data:/data \
  -v $(pwd)"/scripts":/scripts \
  nvcr.io/nvidia/${NAME_NGC} \
  /bin/bash -c "cp -r /scripts/* /workspace;  ./run_prepare.sh"

Ejecuta el benchmark

Por último, ejecuta las pruebas del benchmark. El directorio /deeplearning-benchmark/pytorch/scripts/ contiene muchas configuraciones típicas. Puedes elegir una de las ya preparadas o crear la tuya propia, la más adecuada para la configuración actual del servidor. Para este ejemplo, hemos utilizado la configuración 4xA100_SXM4_80GB_v1:

docker run \
  --rm --shm-size=128g \
  --gpus all \
  -v ~/DeepLearningExamples/PyTorch:/workspace/benchmark \
  -v ~/data:/data \
  -v $(pwd)"/scripts":/scripts \
  -v $(pwd)"/results":/results \
  nvcr.io/nvidia/${NAME_NGC} \
  /bin/bash -c "cp -r /scripts/* /workspace; ./run_benchmark.sh 4xA100_SXM4_80GB_v1 all 1500"

Una vez completados los benchmarks, encontrarás los resultados de las pruebas en el directorio del mismo nombre. También puedes utilizar scripts adicionales para convertirlos a otros formatos.

Véase también:



Actualizado: 28.03.2025

Publicado: 24.07.2024


?Tiene más preguntas? ?Escribanos!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.