U vraagt, wij geven antwoord!

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


Hebt u nog vragen? Schrijf ons!

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