Comment exécuter le benchmark DeepLearning
L'exécution de tests sur des serveurs d'apprentissage automatique n'est pas la tâche la plus simple. Les tests les plus répandus sont MLperf, ai-benchmark et deeplearning-benchmark. Le premier est un ensemble de tests destinés aux fabricants d'équipements, et non aux utilisateurs ordinaires. Par conséquent, l'exécution des tests de la suite MLperf nécessite des connaissances approfondies en programmation et une expérience des applications conteneurisées.
Le second benchmark mentionné ci-dessus est un peu plus simple, mais il y a certaines nuances dues à ses instructions d'installation obsolètes. Le paquet tensorflow-gpu est déclaré comme "deprecated", et la commande pip install tensorflow[and-cuda] continue de produire des erreurs d'initialisation. Par conséquent, nous allons nous concentrer sur le troisième benchmark. Tout d'abord, mettons à jour le cache des paquets et installons automatiquement les pilotes GPU. Ces instructions s'appliquent à Ubuntu 22.04.
Conditions préalables
Mise à jour du système
sudo apt update && sudo apt -y upgrade && sudo apt ubuntu-drivers autoinstall
Redémarrer le serveur :
sudo shutdown -r now
Ajout de dépôts
Comme le paquet nvidia-container-toolkit et ses dépendances ne font pas partie du dépôt standard, vous allez ajouter un dépôt séparé conformément au guide 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
Mettre à jour le cache des paquets :
sudo apt-get update
Docker et NVIDIA® Container Toolkit
Installez le moteur Docker et NVIDIA® Container Toolkit :
sudo apt-get install docker.io nvidia-container-toolkit
Pour éviter d'utiliser sudo à chaque fois avec Docker, ajoutez l'utilisateur au groupe approprié et créez-le :
sudo usermod -aG docker $USER
newgrp docker
Préparer un conteneur
Ensuite, vous devrez télécharger une image de conteneur préparée à partir du NVIDIA® Container Registry, nommée pytorch:22.10-py3. Pour éviter d'avoir à le taper à chaque fois, utilisons la capacité de l'interpréteur de commandes à créer des variables. Assignons cette valeur à la variable NAME_NGC™ :
export NAME_NGC=pytorch:22.10-py3
Maintenant, extrayez l'image du registre à l'aide de la variable créée :
docker pull nvcr.io/nvidia/${NAME_NGC}
Une fois que l'image du conteneur est sur le serveur, vous devez télécharger le contenu de deux dépôts. Clonez le premier dépôt avec les exemples de code et passez à la branche dont nous avons besoin :
git clone https://github.com/LambdaLabsML/DeepLearningExamples.git && \
cd DeepLearningExamples && \
git checkout lambda/benchmark && \
cd ..
Clonez le second dépôt, qui contient l'implémentation PyTorch du code de référence :
git clone https://github.com/lambdal/deeplearning-benchmark.git && \
cd deeplearning-benchmark/pytorch
Lancer le conteneur créé, en montant simultanément les répertoires nécessaires et en appelant le script pour préparer l'ensemble de données. Cette commande peut prendre environ une demi-heure, alors soyez patient et attendez qu'elle se 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"
Exécuter le test de référence
Enfin, exécutez les tests de référence. Le répertoire /deeplearning-benchmark/pytorch/scripts/ contient de nombreuses configurations typiques. Vous pouvez choisir l'une d'entre elles ou créer la vôtre, la plus adaptée à la configuration actuelle du serveur. Pour cet exemple, nous avons utilisé la configuration 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"
Une fois les benchmarks terminés, vous trouverez les résultats des tests dans le répertoire du même nom. Vous pouvez également utiliser des scripts supplémentaires pour les convertir dans d'autres formats.
Voir aussi :
Mis à jour: 28.03.2025
Publié: 24.07.2024