Hoe DeepLearning-benchmark uitvoeren
Benchmarks uitvoeren op machine learning-servers is niet eenvoudig. Populaire tests zijn benchmarks zoals MLperf, ai-benchmark en deeplearning-benchmark. De eerste is een set tests voor fabrikanten van apparatuur, niet voor gewone gebruikers. Daarom vereist het uitvoeren van tests uit de MLperf-suite diepgaande programmeerkennis en ervaring met gecontaineriseerde applicaties.
De tweede bovengenoemde benchmark is iets eenvoudiger, maar er zijn bepaalde nuances vanwege de verouderde installatie-instructies. Het tensorflow-gpu pakket is gedeclareerd als "deprecated" en het commando pip install tensorflow[and-cuda] blijft initialisatiefouten produceren. Daarom zullen we ons richten op de derde benchmark. Laten we eerst de pakketcache bijwerken en automatisch GPU-stuurprogramma's installeren. Deze instructies gelden voor Ubuntu 22.04
Vereisten
Systeem bijwerken
sudo apt update && sudo apt -y upgrade && sudo apt ubuntu-drivers autoinstall
Herstart de server:
sudo shutdown -r now
Opslagplaatsen toevoegen
Aangezien het nvidia-container-toolkit pakket en zijn afhankelijkheden geen deel uitmaken van de standaard repository, moet je een aparte repository toevoegen in overeenstemming met de NVIDIA® gids:
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
Update de pakketcache:
sudo apt-get update
Docker en NVIDIA® Container Toolkit
Installeer de Docker-engine en NVIDIA® Container Toolkit:
sudo apt-get install docker.io nvidia-container-toolkit
Om te voorkomen dat je elke keer sudo gebruikt met Docker, voeg je de gebruiker toe aan de juiste groep en maak je deze aan:
sudo usermod -aG docker $USER
newgrp docker
Een container voorbereiden
Vervolgens moet je een voorbereid container image downloaden van de NVIDIA® Container Registry met de naam pytorch:22.10-py3. Om dit niet elke keer te hoeven typen, maken we gebruik van de mogelijkheid van de commandoregel om variabelen aan te maken. We wijzen deze waarde toe aan de variabele NAME_NGC:
export NAME_NGC=pytorch:22.10-py3
Haal nu de image uit het register met behulp van de aangemaakte variabele:
docker pull nvcr.io/nvidia/${NAME_NGC}
Zodra het container image op de server staat, moet je de inhoud uit twee repositories downloaden. Kloon de eerste repository met codevoorbeelden en schakel over naar de branch die we nodig hebben:
git clone https://github.com/LambdaLabsML/DeepLearningExamples.git && \
cd DeepLearningExamples && \
git checkout lambda/benchmark && \
cd ..
Kloon de tweede repository, die de PyTorch-implementatie van de benchmarkcode bevat:
git clone https://github.com/lambdal/deeplearning-benchmark.git && \
cd deeplearning-benchmark/pytorch
Start de aangemaakte container, koppel tegelijkertijd de benodigde directories en roep het script aan om de dataset voor te bereiden. Dit commando kan ongeveer een half uur duren, dus wees geduldig en wacht tot het klaar is:
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"
Voer de benchmark uit
Voer ten slotte de benchmarktests uit. De map /deeplearning-benchmark/pytorch/scripts/ bevat veel typische configuraties. Je kunt een van de kant-en-klare kiezen of je eigen configuratie maken, die het meest geschikt is voor de huidige serverconfiguratie. Voor dit voorbeeld hebben we de configuratie 4xA100_SXM4_80GB_v1 gebruikt:
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"
Nadat de benchmarks zijn voltooid, vind je de testresultaten in de map met dezelfde naam. U kunt ook extra scripts gebruiken om ze naar andere formaten te converteren.
Zie ook:
Bijgewerkt: 28.03.2025
Gepubliceerd: 24.07.2024