Wie man den DeepLearning-Benchmark ausführt
Die Durchführung von Benchmarks auf Servern für maschinelles Lernen ist nicht die einfachste Aufgabe. Zu den beliebten Tests gehören Benchmarks wie MLperf, ai-benchmark und deeplearning-benchmark. Der erste ist eine Reihe von Tests für Gerätehersteller, nicht für normale Benutzer. Daher erfordert die Durchführung von Tests aus der MLperf-Suite fundierte Programmierkenntnisse und Erfahrung mit containerisierten Anwendungen.
Der zweite oben erwähnte Benchmark ist etwas einfacher, aber aufgrund seiner veralteten Installationsanweisungen gibt es gewisse Nuancen. Das Paket tensorflow-gpu ist als "veraltet" deklariert, und der Befehl pip install tensorflow[and-cuda] erzeugt weiterhin Initialisierungsfehler. Daher werden wir uns auf den dritten Benchmark konzentrieren. Zunächst aktualisieren wir den Paket-Cache und installieren automatisch die GPU-Treiber. Diese Anweisungen gelten für Ubuntu 22.04
Voraussetzungen
System-Update
sudo apt update && sudo apt -y upgrade && sudo apt ubuntu-drivers autoinstall
Starten Sie den Server neu:
sudo shutdown -r now
Hinzufügen von Repositories
Da das nvidia-container-toolkit-Paket und seine Abhängigkeiten nicht Teil des Standard-Repositorys sind, fügen Sie ein separates Repository gemäß der Anleitung von NVIDIA® hinzu:
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
Aktualisieren Sie den Paket-Cache:
sudo apt-get update
Docker und NVIDIA® Container Toolkit
Installieren Sie die Docker-Engine und das NVIDIA® Container Toolkit:
sudo apt-get install docker.io nvidia-container-toolkit
Um zu vermeiden, dass sudo jedes Mal mit Docker verwendet wird, fügen Sie den Benutzer zur entsprechenden Gruppe hinzu und erstellen Sie ihn:
sudo usermod -aG docker $USER
newgrp docker
Bereiten Sie einen Container vor
Als nächstes müssen Sie ein vorbereitetes Container-Image von der NVIDIA® Container Registry mit dem Namen pytorch:22.10-py3 herunterladen. Um dies nicht jedes Mal eintippen zu müssen, nutzen wir die Fähigkeit der Kommando-Shell, Variablen zu erstellen. Weisen wir diesen Wert der Variable NAME_NGC™ zu:
export NAME_NGC=pytorch:22.10-py3
Ziehen Sie nun das Image mit Hilfe der erstellten Variable aus der Registry:
docker pull nvcr.io/nvidia/${NAME_NGC}
Sobald sich das Container-Image auf dem Server befindet, müssen Sie den Inhalt aus zwei Repositories herunterladen. Klonen Sie das erste Repository mit den Codebeispielen und wechseln Sie zu dem von uns benötigten Zweig:
git clone https://github.com/LambdaLabsML/DeepLearningExamples.git && \
cd DeepLearningExamples && \
git checkout lambda/benchmark && \
cd ..
Klonen Sie das zweite Repository, das die PyTorch-Implementierung des Benchmark-Codes enthält:
git clone https://github.com/lambdal/deeplearning-benchmark.git && \
cd deeplearning-benchmark/pytorch
Starten Sie den erstellten Container, mounten Sie gleichzeitig die erforderlichen Verzeichnisse und rufen Sie das Skript zur Vorbereitung des Datensatzes auf. Die Ausführung dieses Befehls kann etwa eine halbe Stunde dauern, haben Sie also etwas Geduld und warten Sie, bis er abgeschlossen ist:
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"
Starten Sie den Benchmark
Führen Sie schließlich die Benchmark-Tests durch. Das Verzeichnis /deeplearning-benchmark/pytorch/scripts/ enthält viele typische Konfigurationen. Sie können eine der vorgefertigten Konfigurationen wählen oder eine eigene erstellen, die am besten zur aktuellen Serverkonfiguration passt. Für dieses Beispiel haben wir die Konfiguration 4xA100_SXM4_80GB_v1 verwendet:
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"
Nachdem die Benchmarks abgeschlossen sind, finden Sie die Testergebnisse im gleichnamigen Verzeichnis. Sie können auch zusätzliche Skripte verwenden, um sie in andere Formate zu konvertieren.
Siehe auch:
Aktualisiert: 28.03.2025
Veröffentlicht: 24.07.2024