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
      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.
     
  
  
    
    
      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
    
      Tipologia del documento
      Tesi di laurea
(NON SPECIFICATO)
      
      
      
      
        
      
        
          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
      
      
     
   
  
  
  
  
  
  
    
      Gestione del documento: