Koltraka, Kevin
(2026)
Vettorizzazione automatica di codice C tramite analisi strutturale di rappresentazioni intermedie ad alto livello.
[Laurea magistrale], Università di Bologna, Corso di Studio in
Ingegneria informatica [LM-DM270], Documento full-text non disponibile
Il full-text non è disponibile per scelta dell'autore.
(
Contatta l'autore)
Abstract
L’adozione di acceleratori nei sistemi eterogenei moderni permette di incrementare le performance senza peggiorare l’efficienza energetica. Allo stesso tempo, l’utilizzo di acceleratori introduce una notevole complessit`a nello sviluppo del software. I modelli di programmazione a delega completa verso il compilatore promettono di nascondere tale complessit`a, tuttavia i compilatori tradizionali falliscono frequentemente nell’accelerare il codice automaticamente a causa dell’abbassamento precoce del livello di astrazione all’interno dell’ottimizzatore.
Per superare tali limitazioni, questa tesi presenta Vekt, un autovettorizzatore basato su MLIR che opera nelle fasi iniziali della pipeline di compilazione.
Vekt semplifica la vettorizzazione automatica del codice operando su una rappresentazione del programma di alto livello in cui vengono individuati pattern computazionali complessi. La vettorizzazione consiste nella sostituzione dei pattern individuati nelle rispettive versioni vettorizzate. I risultati sperimentali confermano l’efficacia dell’approccio: Vekt supera la vettorizzazione effettuata dai compilatori tradizionali su diversi kernel, raggiungendo speedup equivalenti a una vettorizzazione manuale tramite intrinseci.
Questo lavoro dimostra il valore della compilazione multi-livello nel contesto
della ricerca sui modelli di programmazione per sistemi eterogenei, provando come il pattern matching di alto livello rappresenti una strategia scalabile e generalizzabile per colmare il divario tra linguaggi ad alto livello e acceleratori. L’analisi condotta ha tuttavia evidenziato limiti nelle capacit`a di pattern matching attuali di Vekt quando lo stesso pattern si pu`o presentare nel codice con forme diverse. Gli sviluppi futuri prevedono quindi l’integrazione di trasformazioni di normalizzazione per incrementare il numero di varianti dello stesso pattern individuabili, oltre all’estensione di Vekt con capacit`a di offloading automatico.
Abstract
L’adozione di acceleratori nei sistemi eterogenei moderni permette di incrementare le performance senza peggiorare l’efficienza energetica. Allo stesso tempo, l’utilizzo di acceleratori introduce una notevole complessit`a nello sviluppo del software. I modelli di programmazione a delega completa verso il compilatore promettono di nascondere tale complessit`a, tuttavia i compilatori tradizionali falliscono frequentemente nell’accelerare il codice automaticamente a causa dell’abbassamento precoce del livello di astrazione all’interno dell’ottimizzatore.
Per superare tali limitazioni, questa tesi presenta Vekt, un autovettorizzatore basato su MLIR che opera nelle fasi iniziali della pipeline di compilazione.
Vekt semplifica la vettorizzazione automatica del codice operando su una rappresentazione del programma di alto livello in cui vengono individuati pattern computazionali complessi. La vettorizzazione consiste nella sostituzione dei pattern individuati nelle rispettive versioni vettorizzate. I risultati sperimentali confermano l’efficacia dell’approccio: Vekt supera la vettorizzazione effettuata dai compilatori tradizionali su diversi kernel, raggiungendo speedup equivalenti a una vettorizzazione manuale tramite intrinseci.
Questo lavoro dimostra il valore della compilazione multi-livello nel contesto
della ricerca sui modelli di programmazione per sistemi eterogenei, provando come il pattern matching di alto livello rappresenti una strategia scalabile e generalizzabile per colmare il divario tra linguaggi ad alto livello e acceleratori. L’analisi condotta ha tuttavia evidenziato limiti nelle capacit`a di pattern matching attuali di Vekt quando lo stesso pattern si pu`o presentare nel codice con forme diverse. Gli sviluppi futuri prevedono quindi l’integrazione di trasformazioni di normalizzazione per incrementare il numero di varianti dello stesso pattern individuabili, oltre all’estensione di Vekt con capacit`a di offloading automatico.
Tipologia del documento
Tesi di laurea
(Laurea magistrale)
Autore della tesi
Koltraka, Kevin
Relatore della tesi
Scuola
Corso di studio
Indirizzo
CURRICULUM INGEGNERIA INFORMATICA
Ordinamento Cds
DM270
Parole chiave
LLVM, MLIR, Acceleratori, Sistemi eterogenei, Compilatori, Ottimizzazione, Autovettorizzazione, Rappresentazioni intermedie, Modelli di programmazione
Data di discussione della Tesi
6 Ottobre 2026
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Koltraka, Kevin
Relatore della tesi
Scuola
Corso di studio
Indirizzo
CURRICULUM INGEGNERIA INFORMATICA
Ordinamento Cds
DM270
Parole chiave
LLVM, MLIR, Acceleratori, Sistemi eterogenei, Compilatori, Ottimizzazione, Autovettorizzazione, Rappresentazioni intermedie, Modelli di programmazione
Data di discussione della Tesi
6 Ottobre 2026
URI
Gestione del documento: