Risponderemo a tutte le tue domande!

Come eseguire il benchmark di DeepLearning

L'esecuzione di benchmark sui server di apprendimento automatico non è un compito semplicissimo. I test più diffusi includono benchmark come MLperf, ai-benchmark e deeplearning-benchmark. Il primo è un insieme di test destinati ai produttori di apparecchiature, non agli utenti comuni. Pertanto, l'esecuzione dei test della suite MLperf richiede una profonda conoscenza della programmazione e un'esperienza con le applicazioni containerizzate.

Il secondo benchmark citato è un po' più semplice, ma presenta alcune sfumature dovute alle sue istruzioni di installazione non aggiornate. Il pacchetto tensorflow-gpu è dichiarato "deprecato" e il comando pip install tensorflow[and-cuda] continua a produrre errori di inizializzazione. Pertanto, ci concentreremo sul terzo benchmark. Per prima cosa, aggiorniamo la cache dei pacchetti e installiamo automaticamente i driver della GPU. Queste istruzioni sono valide per Ubuntu 22.04

Prerequisiti

Aggiornamento del sistema

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

Riavviare il server:

sudo shutdown -r now

Aggiungere i repository

Poiché il pacchetto nvidia-container-toolkit e le sue dipendenze non fanno parte del repository standard, è necessario aggiungere un repository separato secondo la guida di 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

Aggiornare la cache dei pacchetti:

sudo apt-get update

Docker e NVIDIA® Container Toolkit

Installare il motore Docker e NVIDIA® Container Toolkit:

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

Per evitare di usare ogni Volta™ sudo con Docker, aggiungere l'utente al gruppo appropriato e crearlo:

sudo usermod -aG docker $USER
newgrp docker

Preparare un contenitore

Successivamente, è necessario scaricare un'immagine del contenitore preparata dal registro dei contenitori NVIDIA®, denominata pytorch:22.10-py3. Per evitare di digitarlo ogni Volta™, utilizziamo la capacità della shell di comando di creare variabili. Assegniamo questo valore alla variabile NAME_NGC:

export NAME_NGC=pytorch:22.10-py3

Ora, si estrae l'immagine dal registro usando la variabile creata:

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

Una Volta™ che l'immagine del contenitore è sul server, è necessario scaricare il contenuto da due repository. Clonare il primo repository con gli esempi di codice e passare al ramo di cui abbiamo bisogno:

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

Clonare il secondo repository, che contiene l'implementazione PyTorch del codice di benchmark:

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

Avviare il contenitore creato, montando contemporaneamente le directory necessarie e richiamando lo script per preparare il set di dati. Questo comando può richiedere circa mezz'ora per essere completato, quindi siate pazienti e aspettate che finisca:

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"

Eseguire il benchmark

Infine, eseguire i test di benchmark. La directory /deeplearning-benchmark/pytorch/scripts/ contiene molte configurazioni tipiche. Si può scegliere una di quelle già pronte o crearne una propria, la più adatta alla configurazione attuale del server. Per questo esempio, abbiamo usato la configurazione 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 Volta™ completati i benchmark, i risultati dei test si trovano nell'omonima directory. Inoltre, è possibile utilizzare script aggiuntivi per convertirli in altri formati.

Vedere anche:



Aggiornato: 28.03.2025

Pubblicato: 24.07.2024


Hai altre domande? Scrivici!

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