Pubblicato da PNY Pro, 3 maggio 2019
Da appassionato di PC, mi piace mettere a confronto diverse soluzioni hardware per determinare le loro prestazioni relative nell'esecuzione di un determinato compito. Questo processo è noto anche come "benchmarking". I risultati del benchmarking sono generalmente considerati lo strumento migliore per valutare i vantaggi dei sistemi concorrenti al momento della decisione di acquisto.
In questa serie di blog in tre parti discutiamo come costruire un sistema incentrato sul benchmarking delle prestazioni della GPU per il deep learning con Ubuntu 18.04, NVIDIA GPU Cloud (NGC) e TensorFlow.
La serie di blog si svolgerà come segue:
Prima parte: Introduzione
Seconda parte: Considerazioni sull'hardware
Terza parte: Configurazione del software
La maggior parte dei giocatori ha familiarità con strumenti di benchmarking come 3DMark e Unigene Superposition, mentre i professionisti si affidano a suite affidabili come SPECviewperf e PassMark. Quando si tratta di benchmark di deep learning, il "metro di misura" più noto è l'addestramento di una rete neurale ResNet-50 utilizzando il set di dati ImageNet, più precisamente il set di dati ImageNet-2012 per la classificazione delle immagini.
Le aziende che si concentrano sul deep learning utilizzano spesso questa metrica per misurare e confrontare la potenza di calcolo. Questa metrica è apparsa di recente in un blog NVIDIA, in cui sono state confrontate le prestazioni di diversi framework di deep learning. Per saperne di più, visitate: https://developer.nvidia.com/deep-learning-performance-training-inference
Poiché il deep learning è in rapida evoluzione, questo indicatore non rappresenta in modo completo le prestazioni del deep learning. Tuttavia, è utile e rilevante in quanto ci fornisce uno standard equo per confrontare i risultati in termini di "immagini al secondo".
Vorrei sottolineare che il dottor Kinghorn, partner di PNY Puget Systems, ha scritto su questo argomento un anno fa; i suoi blog sono una guida utile per i principianti e offrono consigli utili anche per gli utenti avanzati. Il suo impegno è molto apprezzato. Prendetevi il tempo di leggere il suo blog originale in 5 parti.
Introduzione a NGC.
L'arma segreta per la creazione di questo benchmark del flusso di lavoro è NVIDIA GPU Cloud, o NGC.
NGC è un registro gratuito di container Docker, una raccolta dei migliori software per accelerare la scienza dei dati, l'apprendimento automatico e l'analisi. Tra i framework più popolari disponibili su NGC figurano TensorFlow, PyTorch, Caffe2 e molti altri. È possibile consultare il registro NGC al seguente link: https://ngc.nvidia.com/catalog, non è richiesta la registrazione.

Che cos'è un container? Secondo Docker.com :
“Un container è un'unità standard di software che racchiude il codice e tutte le sue dipendenze, in modo che l'applicazione possa funzionare in modo rapido e affidabile da un ambiente informatico all'altro. Un'immagine container Docker è un pacchetto software leggero, autonomo ed eseguibile che contiene tutto il necessario per eseguire un'applicazione: codice, runtime, strumenti di sistema, librerie di sistema e impostazioni.” https://www.docker.com/resources/what-container
Alla luce di questa definizione, un container è un ambiente software controllato in cui l'intero software è progettato per funzionare bene insieme. Utilizzando un container Docker, si garantisce che l'ambiente software sia coerente tra i test e che le dipendenze tra le diverse librerie siano prive di errori. I container NGC hanno l'ulteriore vantaggio di essere ottimizzati, convalidati e accelerati dalla GPU da NVIDIA, in modo da funzionare bene con le GPU NVIDIA.
Perché è necessario utilizzare un sistema Linux? Al momento NGC funziona solo su Linux.
Prima di passare alle considerazioni sull'hardware nel prossimo blog, visitate il registro NGC per avere una panoramica dei vari container disponibili. Visitate quindi la landing page di PNY dedicata all'intelligenza artificiale per ulteriori informazioni su come le GPU NVIDIA stanno cambiando il mondo.






