Convolutional Neural Networks (CNNs) have become the state-of-the-art approach for image recognition, classification and other computer vision tasks, but their increasing computational complexity results in long execution times and high power consumption. To run these networks at high performance, ad-hoc hardware accelerators are being developed on FPGAs and ASICs. In this thesis work, we developed and explored a fused-layer CNN accelerator design for FPGAs, which consists of running multiple layers of the neural network in parallel on the device, in contrast to the conventional layer-by-layer approach. This yielded a reduction of the external memory accesses up to 95% in our experiments. Our implementation focuses on the fast exploration in terms of the number of fused layers and the related parameters: this enabled us to analyze the behavior of the accelerator when increasing the number of fused layers. Once configured, the design has been synthesized in hardware through High-Level Synthesis. The experimental results have shown that our methodology achieves a speedup over single-layer accelerators when the target FPGA has enough hardware resources and when the layers that are being accelerated are quite similar to each other. However, we proved that fusing more than three layers does not provide significant improvements in terms of latency, nevertheless bandwidths savings are achieved. To enable a fast exploration of the possible instances of the proposed accelerator for a specific task, the thesis also proposes a machine-learning model to predict the latency and the resource utilization of the configurations of our design without requiring their synthesis and place & route phases. We obtained a prediction accuracy greater than 89% on the target variables. This result shows that our modeling approach enables a good trade-off in terms of accuracy and exploration time and it represents a suitable solution to prune the design space.

Le reti neurali convoluzionali (CNN) sono ormai le tecniche predominanti per svolgere compiti di computer vision, quali il riconoscimento e la classificazione di immagini. Tuttavia, la loro elevata complessità computazionale può comportare tempi di esecuzione prolungati ed elevato consumo energetico. Al fine di eseguire questi modelli con prestazioni adeguate, un approccio che sta acquisendo crescente popolarità è quello di sviluppare acceleratori hardware su FPGA e ASIC. Questo lavoro di tesi è focalizzato sullo sviluppo e sull'esplorazione di un acceleratore FPGA per reti neurali a fusione di livelli, che consiste nell'accelerare più livelli consecutivi della rete sullo stesso dispositivo, diversamente dall'approccio convenzionale che prevede l'esecuzione di un solo livello alla volta. Questa tecnica permette di ridurre gli accessi alla memoria esterna, che nei nostri esperimenti sono risultati essere inferiori fino al 95% rispetto agli acceleratori a livello singolo. La nostra implementazione è stata progettata per permettere di esplorare rapidamente il numero di livelli da accelerare e la relativa configurazione; questa flessibilità ci ha permesso di verificare il comportamento della nostra soluzione all'aumentare del numero di livelli fusi. Una volta configurato, il codice è stato sintetizzato in hardware tramite sintesi di alto livello. I risultati sperimentali hanno evidenziato che la soluzione proposta può portare ad un incremento della prestazioni in dispositivi con risorse hardware adeguate e quando vengono accelerati livelli simili fra loro. Tuttavia, è stato anche dimostrato che l'accelerazione di più di tre livelli non produce riduzioni significative della latenza di esecuzione, sebbene permetta di limitare l'utilizzo di banda. Per favorire l'esplorazione delle possibili configurazioni dell'implementazione proposta, la tesi propone anche un modello di machine-learning in grado di predire la latenza e l'utilizzo di risorse del nostro acceleratore, rimuovendo la necessità di sintetizzare ogni configurazione di prova. I risultati sperimentali hanno mostrato un'accuratezza di oltre l'89% nella predizione di tutte le variabili di interesse, evidenziando che il modello ottenuto rappresenta un buon compromesso fra accuratezza dei risultati e tempo di esplorazione.

Acceleration of convolutional neural networks on FPGAs based on fusion of multiple layers

INDIRLI, FABRIZIO
2018/2019

Abstract

Convolutional Neural Networks (CNNs) have become the state-of-the-art approach for image recognition, classification and other computer vision tasks, but their increasing computational complexity results in long execution times and high power consumption. To run these networks at high performance, ad-hoc hardware accelerators are being developed on FPGAs and ASICs. In this thesis work, we developed and explored a fused-layer CNN accelerator design for FPGAs, which consists of running multiple layers of the neural network in parallel on the device, in contrast to the conventional layer-by-layer approach. This yielded a reduction of the external memory accesses up to 95% in our experiments. Our implementation focuses on the fast exploration in terms of the number of fused layers and the related parameters: this enabled us to analyze the behavior of the accelerator when increasing the number of fused layers. Once configured, the design has been synthesized in hardware through High-Level Synthesis. The experimental results have shown that our methodology achieves a speedup over single-layer accelerators when the target FPGA has enough hardware resources and when the layers that are being accelerated are quite similar to each other. However, we proved that fusing more than three layers does not provide significant improvements in terms of latency, nevertheless bandwidths savings are achieved. To enable a fast exploration of the possible instances of the proposed accelerator for a specific task, the thesis also proposes a machine-learning model to predict the latency and the resource utilization of the configurations of our design without requiring their synthesis and place & route phases. We obtained a prediction accuracy greater than 89% on the target variables. This result shows that our modeling approach enables a good trade-off in terms of accuracy and exploration time and it represents a suitable solution to prune the design space.
ERDEM, AHMET
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-dic-2019
2018/2019
Le reti neurali convoluzionali (CNN) sono ormai le tecniche predominanti per svolgere compiti di computer vision, quali il riconoscimento e la classificazione di immagini. Tuttavia, la loro elevata complessità computazionale può comportare tempi di esecuzione prolungati ed elevato consumo energetico. Al fine di eseguire questi modelli con prestazioni adeguate, un approccio che sta acquisendo crescente popolarità è quello di sviluppare acceleratori hardware su FPGA e ASIC. Questo lavoro di tesi è focalizzato sullo sviluppo e sull'esplorazione di un acceleratore FPGA per reti neurali a fusione di livelli, che consiste nell'accelerare più livelli consecutivi della rete sullo stesso dispositivo, diversamente dall'approccio convenzionale che prevede l'esecuzione di un solo livello alla volta. Questa tecnica permette di ridurre gli accessi alla memoria esterna, che nei nostri esperimenti sono risultati essere inferiori fino al 95% rispetto agli acceleratori a livello singolo. La nostra implementazione è stata progettata per permettere di esplorare rapidamente il numero di livelli da accelerare e la relativa configurazione; questa flessibilità ci ha permesso di verificare il comportamento della nostra soluzione all'aumentare del numero di livelli fusi. Una volta configurato, il codice è stato sintetizzato in hardware tramite sintesi di alto livello. I risultati sperimentali hanno evidenziato che la soluzione proposta può portare ad un incremento della prestazioni in dispositivi con risorse hardware adeguate e quando vengono accelerati livelli simili fra loro. Tuttavia, è stato anche dimostrato che l'accelerazione di più di tre livelli non produce riduzioni significative della latenza di esecuzione, sebbene permetta di limitare l'utilizzo di banda. Per favorire l'esplorazione delle possibili configurazioni dell'implementazione proposta, la tesi propone anche un modello di machine-learning in grado di predire la latenza e l'utilizzo di risorse del nostro acceleratore, rimuovendo la necessità di sintetizzare ogni configurazione di prova. I risultati sperimentali hanno mostrato un'accuratezza di oltre l'89% nella predizione di tutte le variabili di interesse, evidenziando che il modello ottenuto rappresenta un buon compromesso fra accuratezza dei risultati e tempo di esplorazione.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2019_12_Indirli.pdf

non accessibile

Descrizione: Testo della tesi
Dimensione 3.98 MB
Formato Adobe PDF
3.98 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/152285