Vai al contenuto

DELiRium: il nuovo compilatore di Deep Learning per FPGA

Portare l'intelligenza artificiale sull'edge

Implementare modelli di Deep Learning su dispositivi edge rappresenta una delle sfide hardware e software più ambiziose per l'AI nel 2020. Sma-RTy, start-up francese con sede a Clermont-Ferrand, fondata da tre dottori di ricerca e un professore ordinario, ha deciso di raccogliere questa sfida concentrandosi sui sistemi embedded per l'elaborazione delle immagini e la computer vision.

Per ottimizzare i modelli in scenari operativi integrati servono architetture software efficienti (come pruning e quantizzazione) affiancate da hardware in grado di supportarle pienamente. Gli FPGA offrono vantaggi enormi per il Deep Learning in tempo reale: garantiscono riconfigurabilità, flessibilità strutturale e un'architettura fine-grain ideale per le reti quantizzate. Il problema principale per la loro adozione su larga scala resta però l'elevata difficoltà di programmazione.

Gli FPGA offrono la flessibilità hardware essenziale per l'Edge AI, ma la reale programmabilità resta una delle maggiori sfide aperte per gli sviluppatori.

La soluzione di Sma-RTy: DELiRium e il Direct Hardware Mapping

Per superare l'ostacolo tecnico della programmabilità, Sma-RTy ha sviluppato DELiRium, un compilatore di Deep Learning per dispositivi riconfigurabili. DELiRium riceve in ingresso una rete neurale pre-addestrata e ottimizzata nel formato standard ONNX e genera automaticamente in uscita codice VHDL indipendente dal target, pronto per la sintesi.

Il compilatore si basa su IP parametrizzati (come ConvLayer.vhd, PoolLayer.vhd e moduli matematici) e spinge l'implementazione fisica al limite grazie al Direct Hardware Mapping (DHM). A differenza dei classici paradigmi streaming, il DHM esegue l'unrolling completo dell'elaborazione della rete neurale convoluzionale (CNN): ogni attore e ogni livello del grafo computazionale viene mappato su una propria istanza hardware dedicata.

Direct Hardware Mapping: pro e contro tecnici
Vantaggi del DHMSvantaggi del DHM
Elevato throughput computazionale, con risultati in uscita a ogni ciclo di clock.Problemi di scalabilità: alcuni modelli di grandi dimensioni potrebbero non entrare interamente nell'FPGA.
Nessuna limitazione di banda di memoria; i dati intermedi restano locali nelle FIFO.Mancanza di flessibilità post-deploy: a reti diverse corrispondono bitstream diversi.
Sfrutta appieno le reti sottoposte a pruning (meno nodi) e quantizzazione (basso utilizzo di risorse).Richiede ottimizzazioni software preliminari per ridurre al minimo l'impronta hardware.

Superare i limiti fisici: la Single Constant Multiplication

Il limite maggiore di un mapping diretto 1:1 risiede nelle risorse fisiche disponibili. Per esempio, l'unrolling del solo secondo layer di una LeNet5 (con C=6, N=16, K=5) richiederebbe 2400 moltiplicatori, superando i 680 blocchi DSP disponibili nel più grande Intel Cyclone V.

Per rendere praticabile il DHM, DELiRium introduce un'importante ottimizzazione architetturale chiamata Single Constant Multiplication. Poiché i pesi della rete sono costanti durante l'inferenza, i moltiplicatori vengono specializzati:

  • Se il peso (𝚹) è 0, il moltiplicatore e la connessione vengono semplicemente rimossi.
  • Se il peso è 1, l'hardware è sostituito da un semplice collegamento.
  • Se il peso è una potenza di 2, il compilatore sostituisce il costoso DSP con uno shift register.

Risultati e prospettive

I test confermano che, grazie a queste ottimizzazioni congiunte hardware/software, è possibile implementare efficacemente l'inferenza di CNN su FPGA entry-level. Dispositivi come l'Intel Cyclone V o il Xilinx Kintex 7 possono mantenere consumi sotto i 10 W operando a oltre 50 FPS su flussi video 720p.

E le architetture storicamente pesanti addestrate su ImageNet, come AlexNet? Anche quando le risorse dell'FPGA non possono ospitare l'intera profondità della rete, DELiRium può mappare fisicamente i primi tre layer convoluzionali, offrendo un sistema imbattibile per il pre-processing in tempo reale sul nodo IoT periferico.