In recent years, there has been a considerable increase in interest in efficient neural networks for embedded contexts, driven by the need to perform real-time inference with minimal resource usage. Artificial intelligence is permeating more and more sectors, requiring devices capable of processing large amounts of data without compromising performance and power consumption. Solutions based on GPU, while powerful, often prove unsuitable for such constrained contexts, both due to their physical size and high energy consumption, and because of their price, which is not always sustainable for large-scale projects or particularly small end devices. Faced with increasingly strict cost and energy constraints, research has also turned to specialized hardware solutions capable of offering high flexibility and scalability: FPGA. In this scenario, FPGA prove to be a valuable resource, effectively meeting these needs thanks to their ability to reconfigure the internal logic and optimize it for specific tasks, as well as their inherently high degree of achievable parallelism. Furthermore, with a more mature market, there are now low-cost FPGA that are more affordable yet still able to deliver impressive computing performance when exploited correctly. Many sectors, such as mobile robotics or IoT, indeed require devices that can rapidly process large quantities of data while maintaining low power consumption. An especially interesting example is that of autonomous drones, which need high computational capacity to process data from IMU sensors and merge it with their camera data extremely quickly, while limiting power consumption to maximize flight time and reduce overall weight. Moreover, considering the wide-scale deployment of these devices, reducing production costs is another crucial factor, which makes FPGA a promising choice thanks to their versatility and the increasingly favorable balance between performance and price. The work in this thesis lies within this framework, aiming to develop a fully executable neural network on a low-cost FPGA and to verify its performance in terms of rapid inference, reliability, and contained power consumption. The process required the setup of an entire workflow: from preparing a Linux distribution on the chosen device, to training and quantizing a YOLOv3-Tiny model with specialized tools such as Brevitas, to converting it into hardware logic via the FINN framework, focusing on maximizing performance within the reprogrammable silicon area available on the device, and culminating in the creation of a driver that allows using the device as a TPU for real-time inference. Altogether, these steps have made it possible to fully leverage the available resources and demonstrate how even low-cost FPGA can meet the computational requirements typical of neural networks. In the experiments conducted, the final accelerator implemented on the Xilinx Zynq-7020 platform demonstrated competitive real-time performance, achieving up to 208 frames per second at a clock frequency of 200 MHz while consuming only 2.55 W. Compared to alternative solutions, such as Google’s Coral Edge TPU, the proposed system exhibits comparable inference speeds while offering greater design flexibility with a similar power budget. Finally, when compared to other FPGA-based works in the literature, the proposed solution is between three and seven times superior in terms of FPS/W.

Negli ultimi anni si è osservato un aumento considerevole dell'interesse verso reti neurali efficienti in contesti embedded, sospinto dalla necessità di eseguire inferenze in tempo reale con un impiego minimo di risorse. L'intelligenza artificiale pervade sempre più settori, richiedendo dispositivi che siano in grado di elaborare grandi quantità di dati senza sacrificare prestazioni e consumi. Le soluzioni basate su GPU, pur essendo potenti, risultano spesso inadatte a contesti così limitati, sia per le dimensioni fisiche e i consumi elevati sia per il prezzo, che non sempre risulta sostenibile in progetti di larga scala o in dispositivi finali particolarmente ristretti. Di fronte a vincoli di costo e di consumo energetico via via più stringenti, la ricerca si è direzionata anche su soluzioni hardware specializzate, in grado di offrire elevata flessibilità e scalabilità: gli FPGA. In questo scenario, gli FPGA si rivelano una risorsa preziosa, rispondendo in modo particolarmente efficace a queste esigenze, grazie alla possibilità di riconfigurare la logica interna e ottimizzarla per compiti specifici e al loro innato alto grado di parallelismo ottenibile; inoltre, grazie alla maggiore maturità del mercato, esistono oggi FPGA di fascia bassa sempre più economici ma comunque in grado di offrire prestazioni di calcolo sorprendenti quando sfruttati correttamente. Molti settori, come la robotica mobile o l'IoT, richiedono infatti dispositivi capaci di processare rapidamente grandi quantità di dati, ma con un consumo energetico contenuto. Un esempio particolarmente interessante è inoltre quello dei droni autonomi, che richiedono capacità computazionali elevate per elaborare i dati dai sensori delle IMU e fonderli con quelli delle loro telecamere in modo estremamente rapido, a fronte di un consumo energetico limitato per massimizzare l'autonomia di volo e ridurre il peso complessivo. In più, considerando la diffusione su larga scala di questi dispositivi, la riduzione dei costi di produzione è un ulteriore fattore cruciale, che rende gli FPGA una scelta promettente grazie alla loro versatilità e al rapporto sempre più vantaggioso tra prestazioni e prezzo. Il lavoro di questa tesi si colloca in questo panorama, con l’obiettivo di sviluppare una rete neurale completamente eseguibile su un FPGA a basso costo e di verificarne le prestazioni in termini di inferenza rapida, affidabilità e contenimento dei consumi. Il percorso ha richiesto la messa a punto di un intero flusso di lavoro: dalla predisposizione di una distribuzione Linux sul dispositivo scelto, all’allenamento e quantizzazione di un modello YOLOv3-Tiny con strumenti specializzati come Brevitas, alla conversione in logica hardware tramite il framework FINN, focalizzandosi sulla massimizzazione delle performance con l'area di silicio riprogrammabile disponibile nel dispositivo, fino alla creazione di un driver che permetta l'utilizzo del dispositivo come una TPU, effettuando inferenza real time. L’insieme di queste fasi ha permesso di sfruttare al meglio le risorse disponibili e di dimostrare come anche dispositivi FPGA di fascia bassa possano soddisfare le esigenze di calcolo tipiche delle reti neurali. Negli esperimenti effettuati, l'acceleratore finale implementato su piattaforma Xilinx Zynq-7020 ha dimostrato prestazioni competitive in tempo reale, raggiungendo fino a 208 frame al secondo a una frequenza di clock di 200 MHz, consumando solamente 2,55 W. In confronto a soluzioni alternative, come il Coral Edge TPU di Google, il sistema presentato mostra velocità di inferenza comparabili, offrendo al contempo una maggiore flessibilità progettuale con un budget di potenza simile. Infine, rispetto ad altri lavori in letteratura applicati ad FPGA, la soluzione presentata risulta essere dalle 3 alle 7 volte migliore, in termini di FPS/W.

Implementazione Efficiente di Reti Neurali per il Riconoscimento Real-Time di Immagini e Video su Architettura Ibrida FPGA-CPU

CALI', RICCARDO
2023/2024

Abstract

In recent years, there has been a considerable increase in interest in efficient neural networks for embedded contexts, driven by the need to perform real-time inference with minimal resource usage. Artificial intelligence is permeating more and more sectors, requiring devices capable of processing large amounts of data without compromising performance and power consumption. Solutions based on GPU, while powerful, often prove unsuitable for such constrained contexts, both due to their physical size and high energy consumption, and because of their price, which is not always sustainable for large-scale projects or particularly small end devices. Faced with increasingly strict cost and energy constraints, research has also turned to specialized hardware solutions capable of offering high flexibility and scalability: FPGA. In this scenario, FPGA prove to be a valuable resource, effectively meeting these needs thanks to their ability to reconfigure the internal logic and optimize it for specific tasks, as well as their inherently high degree of achievable parallelism. Furthermore, with a more mature market, there are now low-cost FPGA that are more affordable yet still able to deliver impressive computing performance when exploited correctly. Many sectors, such as mobile robotics or IoT, indeed require devices that can rapidly process large quantities of data while maintaining low power consumption. An especially interesting example is that of autonomous drones, which need high computational capacity to process data from IMU sensors and merge it with their camera data extremely quickly, while limiting power consumption to maximize flight time and reduce overall weight. Moreover, considering the wide-scale deployment of these devices, reducing production costs is another crucial factor, which makes FPGA a promising choice thanks to their versatility and the increasingly favorable balance between performance and price. The work in this thesis lies within this framework, aiming to develop a fully executable neural network on a low-cost FPGA and to verify its performance in terms of rapid inference, reliability, and contained power consumption. The process required the setup of an entire workflow: from preparing a Linux distribution on the chosen device, to training and quantizing a YOLOv3-Tiny model with specialized tools such as Brevitas, to converting it into hardware logic via the FINN framework, focusing on maximizing performance within the reprogrammable silicon area available on the device, and culminating in the creation of a driver that allows using the device as a TPU for real-time inference. Altogether, these steps have made it possible to fully leverage the available resources and demonstrate how even low-cost FPGA can meet the computational requirements typical of neural networks. In the experiments conducted, the final accelerator implemented on the Xilinx Zynq-7020 platform demonstrated competitive real-time performance, achieving up to 208 frames per second at a clock frequency of 200 MHz while consuming only 2.55 W. Compared to alternative solutions, such as Google’s Coral Edge TPU, the proposed system exhibits comparable inference speeds while offering greater design flexibility with a similar power budget. Finally, when compared to other FPGA-based works in the literature, the proposed solution is between three and seven times superior in terms of FPS/W.
2023
2025-02-13
Performance-Focused Implementation of Neural Networks for Real-Time Image and Video Recognition on Hybrid FPGA-CPU Architectures
Negli ultimi anni si è osservato un aumento considerevole dell'interesse verso reti neurali efficienti in contesti embedded, sospinto dalla necessità di eseguire inferenze in tempo reale con un impiego minimo di risorse. L'intelligenza artificiale pervade sempre più settori, richiedendo dispositivi che siano in grado di elaborare grandi quantità di dati senza sacrificare prestazioni e consumi. Le soluzioni basate su GPU, pur essendo potenti, risultano spesso inadatte a contesti così limitati, sia per le dimensioni fisiche e i consumi elevati sia per il prezzo, che non sempre risulta sostenibile in progetti di larga scala o in dispositivi finali particolarmente ristretti. Di fronte a vincoli di costo e di consumo energetico via via più stringenti, la ricerca si è direzionata anche su soluzioni hardware specializzate, in grado di offrire elevata flessibilità e scalabilità: gli FPGA. In questo scenario, gli FPGA si rivelano una risorsa preziosa, rispondendo in modo particolarmente efficace a queste esigenze, grazie alla possibilità di riconfigurare la logica interna e ottimizzarla per compiti specifici e al loro innato alto grado di parallelismo ottenibile; inoltre, grazie alla maggiore maturità del mercato, esistono oggi FPGA di fascia bassa sempre più economici ma comunque in grado di offrire prestazioni di calcolo sorprendenti quando sfruttati correttamente. Molti settori, come la robotica mobile o l'IoT, richiedono infatti dispositivi capaci di processare rapidamente grandi quantità di dati, ma con un consumo energetico contenuto. Un esempio particolarmente interessante è inoltre quello dei droni autonomi, che richiedono capacità computazionali elevate per elaborare i dati dai sensori delle IMU e fonderli con quelli delle loro telecamere in modo estremamente rapido, a fronte di un consumo energetico limitato per massimizzare l'autonomia di volo e ridurre il peso complessivo. In più, considerando la diffusione su larga scala di questi dispositivi, la riduzione dei costi di produzione è un ulteriore fattore cruciale, che rende gli FPGA una scelta promettente grazie alla loro versatilità e al rapporto sempre più vantaggioso tra prestazioni e prezzo. Il lavoro di questa tesi si colloca in questo panorama, con l’obiettivo di sviluppare una rete neurale completamente eseguibile su un FPGA a basso costo e di verificarne le prestazioni in termini di inferenza rapida, affidabilità e contenimento dei consumi. Il percorso ha richiesto la messa a punto di un intero flusso di lavoro: dalla predisposizione di una distribuzione Linux sul dispositivo scelto, all’allenamento e quantizzazione di un modello YOLOv3-Tiny con strumenti specializzati come Brevitas, alla conversione in logica hardware tramite il framework FINN, focalizzandosi sulla massimizzazione delle performance con l'area di silicio riprogrammabile disponibile nel dispositivo, fino alla creazione di un driver che permetta l'utilizzo del dispositivo come una TPU, effettuando inferenza real time. L’insieme di queste fasi ha permesso di sfruttare al meglio le risorse disponibili e di dimostrare come anche dispositivi FPGA di fascia bassa possano soddisfare le esigenze di calcolo tipiche delle reti neurali. Negli esperimenti effettuati, l'acceleratore finale implementato su piattaforma Xilinx Zynq-7020 ha dimostrato prestazioni competitive in tempo reale, raggiungendo fino a 208 frame al secondo a una frequenza di clock di 200 MHz, consumando solamente 2,55 W. In confronto a soluzioni alternative, come il Coral Edge TPU di Google, il sistema presentato mostra velocità di inferenza comparabili, offrendo al contempo una maggiore flessibilità progettuale con un budget di potenza simile. Infine, rispetto ad altri lavori in letteratura applicati ad FPGA, la soluzione presentata risulta essere dalle 3 alle 7 volte migliore, in termini di FPS/W.
File in questo prodotto:
File Dimensione Formato  
Tesi_Magistrale_Calì.pdf

accesso aperto

Descrizione: In allegato il documento di tesi definitivo, con frontespizio non firmato riportante il titolo definitivo
Dimensione 61.85 MB
Formato Adobe PDF
61.85 MB Adobe PDF Visualizza/Apri

I documenti in UNITESI 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/20.500.12075/20897