Sviluppo e Ottimizzazione di un Processore Configurabile con Unità di Calcolo a Precisione Variabile

Ottavi, Gianmarco (2019) Sviluppo e Ottimizzazione di un Processore Configurabile con Unità di Calcolo a Precisione Variabile. [Laurea magistrale], Università di Bologna, Corso di Studio in Ingegneria elettronica [LM-DM270], Documento full-text non disponibile
Il full-text non è disponibile per scelta dell'autore. (Contatta l'autore)

Abstract

Negli ultimi anni in applicazioni come il Machine Learning la complessità degli algoritmi è in continua crescita, per migliorarne l’efficienza e velocizzarne l’esecuzione si è iniziato ad usare nuovi formati di precisione, come ad esempio il brain float il quale, presenta lo stesso numero di bit per l’esponente di un floating point a 32 bit ma tronca la mantissa in modo da rientrare in 16 bit. In questa maniera si mantiene lo stesso range dinamico del fp32 riducendo però la precisione in modo accettabile per applicazioni come near-sensor-computing e machine learning. Il vantaggio di utilizzare un formato con ridotto numero di bit si vede in termini di memory-footprint e banda, e nelle performance grazie alla vettorizzazione delle operazioni. Altri formati che possiamo trovare in algoritmi di machine learning sono fixed-point a 4, 2 ed 1 bit che vengono usati in reti neurali quantizzate in modo da permetterne l’implementazione anche in dispositivi come i microcontollori con risorse limitate. Supportare tutti questi formati su processori general-purpose può essere difficoltoso per il rischio di saturare l’encoding space e soluzioni come l’implementazione di istruzioni a lunghezza variabili rischiano di complicare troppo lo stadio di decodifica con conseguente aumento di consumi. In questa tesi si propone la progettazione e ottimizzazione di un core basato su ISA RISC-V in modo da operare a stati: per ogni tipo di istruzione floating point e SIMD fixed point si ha un unica codifica indipendentemente dal formato, dove quest’ultimo (stato) è contenuto in un registro di controllo risolvendo quindi il problema dell’encoding space. Questo ci ha permesso di supportare 15 formati per istruzioni SIMD tra cui 6 a precisioni miste. Queste modifiche hanno reso possibile l’esecuzione di kernel convoluzionali a 4 e 2 bit con performance da 3,78 a 7,78 volte superiori al core originale.

Abstract
Tipologia del documento
Tesi di laurea (Laurea magistrale)
Autore della tesi
Ottavi, Gianmarco
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
RISC-V,CNN,QNN,Estensione ISA,PULPissimo,RISCY
Data di discussione della Tesi
19 Dicembre 2019
URI

Altri metadati

Gestione del documento: Visualizza il documento

^