Neural networks are one of the most revolutionary topics in modern computer science, and their use is constantly increasing. Their application has made it possible to address problems that a few years ago seemed impossible to solve automatically, such as image recognition and classification. This thesis aims to compare the inference performance of convolutional neural networks on different commonly used hardware architectures (multi-core CPU and GPU) to identify the preferable architecture based on the parameters of the specific workload. The parameters studied are the batch size of the input features maps of the target image, and the number of repeated inference executions. The Google Tensorflow framework was used to create and run the network: Then, an orchestrator was developed to automate the execution of test cases and the collection of results by varying the input parameters that determine the various possible configurations to identify the optimal architecture setup for the target network. As specific use case, we analyze the performance of the VGG16 network, a widely used CNN (Convolutional Neural Network) for image recognition, and we analyzed the performance of the VGG16 inference on different hardware architectures, including two CPUs and a GPU. At the end of the data collection, it was possible to observe how in general the execution on the GPU is always faster than the execution on the CPUs examined, but this applies only to inference executions after the first one. When running on the GPU, the first inference time is slower than the next ones by about two orders of magnitude. This increase in execution time is due to the setup required to load the network into the GPU memory. Starting from this observation, a further analysis was carried out to identify the break-even point at which the cumulative inference time on GPU starts to be less than that on CPU as the workload parameters (number of iterations and batch size) change. It has been observed that this break-even point changes according to the input batch size: the smaller the batch size, the more iterations are needed to reach this break-even point. In conclusion, a performance analysis comparison was carried out between the inference experiments obtained on the GPU and the CPU.

Le reti neurali sono uno degli argomenti più rivoluzionari nel campo dell’informatica degli ultimi anni e il loro utilizzo aumenta sempre di più giorno dopo giorno. La loro applicazione ha permesso di affrontare problemi che in passato sembravano impossibili da risolvere in modo automatico, come il riconoscimento delle immagini e la loro classificazione. Questa tesi si pone come obiettivo il confronto prestazionale, in termini di tempi di inferenza, di reti neurali convoluzionali su diverse architetture hardware di uso comune (CPU multi-core e GPU) al fine di individuare l’architettura preferibile in base ai parametri del carico di lavoro specifico. I parametri studiati sono la dimensione del batch dell’immagine in input ed il numero di esecuzioni ripetute. Per creare ed eseguire la rete è stato utilizzato il framework di Google Tensorflow. Dopodichè, è stato sviluppato un orchestratore delle esecuzioni con il compito di automatizzare l’esecuzione dei test e la raccolta dei risultati, variando i parametri in ingresso che determinano le varie configurazioni possibili, al fine di individuare la configurazione ottimale per la rete scelta. Come caso d’uso specifico, abbiamo analizzato le prestazioni della rete VGG16, una CNN (Convolutional Neural Network) ampiamente utilizzata per il riconoscimento delle immagini, analizzando le prestazioni dell’inferenza su diverse architetture hardware, incluse due CPU ed una GPU. Al termine della raccolta dei dati si è potuto osservare come in generale l’esecuzione sulla GPU è sempre più veloce dell’esecuzione sulle CPU prese in esame, ma questo vale solo per esecuzioni dell’inferenza successive alla prima. Infatti, nell’esecuzione sulla GPU il primo tempo di inferenza risulta più lento delle successive di circa due unità di grandezza. Questo incremento del tempo di esecuzione è dovuto al tempo di setup necessario per caricare la rete nella memoria della GPU. Partendo da questa osservazione, è stata svolta un’ulteriore analisi per individuare il punto di svolta in cui il tempo cumulativo di inferenza su GPU inizia ad essere inferiore a quello su CPU, al variare dei parametri del carico di lavoro (numero di iterazioni e batch size). Si è osservato che questo punto cambia al variare della dimensione dell’immagine in input: nello specifico, più piccola risulta essere la dimensione, più iterazioni sono necessarie per raggiungere questo punto. In conclusione, è stata effettuata un’analisi delle prestazioni tra i valori di inferenza ottenuti dalla GPU e quelli ottenuti dalla CPU.

A performance analysis method for CNN inference on hardware architectures

CECINI, MATTEO
2021/2022

Abstract

Neural networks are one of the most revolutionary topics in modern computer science, and their use is constantly increasing. Their application has made it possible to address problems that a few years ago seemed impossible to solve automatically, such as image recognition and classification. This thesis aims to compare the inference performance of convolutional neural networks on different commonly used hardware architectures (multi-core CPU and GPU) to identify the preferable architecture based on the parameters of the specific workload. The parameters studied are the batch size of the input features maps of the target image, and the number of repeated inference executions. The Google Tensorflow framework was used to create and run the network: Then, an orchestrator was developed to automate the execution of test cases and the collection of results by varying the input parameters that determine the various possible configurations to identify the optimal architecture setup for the target network. As specific use case, we analyze the performance of the VGG16 network, a widely used CNN (Convolutional Neural Network) for image recognition, and we analyzed the performance of the VGG16 inference on different hardware architectures, including two CPUs and a GPU. At the end of the data collection, it was possible to observe how in general the execution on the GPU is always faster than the execution on the CPUs examined, but this applies only to inference executions after the first one. When running on the GPU, the first inference time is slower than the next ones by about two orders of magnitude. This increase in execution time is due to the setup required to load the network into the GPU memory. Starting from this observation, a further analysis was carried out to identify the break-even point at which the cumulative inference time on GPU starts to be less than that on CPU as the workload parameters (number of iterations and batch size) change. It has been observed that this break-even point changes according to the input batch size: the smaller the batch size, the more iterations are needed to reach this break-even point. In conclusion, a performance analysis comparison was carried out between the inference experiments obtained on the GPU and the CPU.
INDIRLI, FABRIZIO
ING - Scuola di Ingegneria Industriale e dell'Informazione
20-dic-2022
2021/2022
Le reti neurali sono uno degli argomenti più rivoluzionari nel campo dell’informatica degli ultimi anni e il loro utilizzo aumenta sempre di più giorno dopo giorno. La loro applicazione ha permesso di affrontare problemi che in passato sembravano impossibili da risolvere in modo automatico, come il riconoscimento delle immagini e la loro classificazione. Questa tesi si pone come obiettivo il confronto prestazionale, in termini di tempi di inferenza, di reti neurali convoluzionali su diverse architetture hardware di uso comune (CPU multi-core e GPU) al fine di individuare l’architettura preferibile in base ai parametri del carico di lavoro specifico. I parametri studiati sono la dimensione del batch dell’immagine in input ed il numero di esecuzioni ripetute. Per creare ed eseguire la rete è stato utilizzato il framework di Google Tensorflow. Dopodichè, è stato sviluppato un orchestratore delle esecuzioni con il compito di automatizzare l’esecuzione dei test e la raccolta dei risultati, variando i parametri in ingresso che determinano le varie configurazioni possibili, al fine di individuare la configurazione ottimale per la rete scelta. Come caso d’uso specifico, abbiamo analizzato le prestazioni della rete VGG16, una CNN (Convolutional Neural Network) ampiamente utilizzata per il riconoscimento delle immagini, analizzando le prestazioni dell’inferenza su diverse architetture hardware, incluse due CPU ed una GPU. Al termine della raccolta dei dati si è potuto osservare come in generale l’esecuzione sulla GPU è sempre più veloce dell’esecuzione sulle CPU prese in esame, ma questo vale solo per esecuzioni dell’inferenza successive alla prima. Infatti, nell’esecuzione sulla GPU il primo tempo di inferenza risulta più lento delle successive di circa due unità di grandezza. Questo incremento del tempo di esecuzione è dovuto al tempo di setup necessario per caricare la rete nella memoria della GPU. Partendo da questa osservazione, è stata svolta un’ulteriore analisi per individuare il punto di svolta in cui il tempo cumulativo di inferenza su GPU inizia ad essere inferiore a quello su CPU, al variare dei parametri del carico di lavoro (numero di iterazioni e batch size). Si è osservato che questo punto cambia al variare della dimensione dell’immagine in input: nello specifico, più piccola risulta essere la dimensione, più iterazioni sono necessarie per raggiungere questo punto. In conclusione, è stata effettuata un’analisi delle prestazioni tra i valori di inferenza ottenuti dalla GPU e quelli ottenuti dalla CPU.
File allegati
File Dimensione Formato  
A_performance_analysis_method_for_CNN_inference_on_hardware_architectures_Cecini_Matteo.pdf

accessibile in internet solo dagli utenti autorizzati

Dimensione 1.38 MB
Formato Adobe PDF
1.38 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/197821