Come controllare il supporto multi-GPU in PyTorch
Il noleggio di un server con più GPU risolve un problema semplice: ridurre i tempi di calcolo grazie alla parallelizzazione dei carichi di lavoro. Tuttavia, le GPU da sole non sono in grado di garantire calcoli in parallelo: questa è sempre una responsabilità dello sviluppatore. Nella maggior parte dei casi, non è necessario un meccanismo separato. Se avete usato un framework come PyTorch per creare la vostra applicazione, questo include già questa funzionalità.
Supponiamo di aver affittato un server con 8 GPU e di volerci assicurare che siano disponibili per la nostra applicazione basata su PyTorch. Per un test rapido, si può usare uno dei piccoli set di dati standard già pronti, come CIFAR-10. Questo set di dati contiene 60.000 immagini e un'immagine di qualità. Questo set di dati contiene 60.000 immagini: 50.000 per l'addestramento e 10.000 per il test.
Per risparmiare tempo nella scrittura dei propri script, si possono utilizzare le soluzioni esistenti su GitHub. Ad esempio, si può clonare il seguente repository:
git clone https://github.com/kentaroy47/pytorch-mgpu-cifar10.git
Navigare nella directory scaricata:
cd pytorch-mgpu-cifar10
Ora è necessario impostare la variabile CUDA_VISIBLE_DEVICES in base alle GPU installate nel server. Questa variabile non specifica il numero di GPU, ma piuttosto il loro numero di identificazione. Ad esempio, se il server ha due schede, si deve specificare "0,1". Nel nostro caso, con 8 schede, specificheremo gli ID da 0 a 7:
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
A questo punto è possibile iniziare il processo di addestramento della rete neurale utilizzando questo set di dati:
python train_cifar10.py
Se non si verificano errori, è possibile installare ed eseguire l'utilità nvtop in una sessione SSH separata per monitorare il carico in tempo reale su ciascuna GPU:
sudo apt update && sudo apt -y install nvtop && nvtop
Questo approccio garantisce che tutte le GPU siano accessibili a PyTorch e caricate in modo uniforme.
Vedere anche:
Aggiornato: 28.03.2025
Pubblicato: 22.10.2024