Sparse linear algebra is a fundamental tool in numerical analysis, scientific computing, and data analytics. Sparsity in data structures can be leveraged in order to save on memory usage and to speed up algorithms. Hardware accelerators like GPUs play an important role in enabling heavier and heavier workloads, but require a deep understanding of specific interfacing technologies and computational models. Additionally, sparse linear algebra libraries offering hardware acceleration features require a considerable programming effort and are error prone, as they often implement low level routines. Domain specific languages and frameworks promise to open up the acceleration of domain specific algorithms to scientists and experts whose background is not strictly programming related. In this framework, the GraalVM offers interoperability of different languages and mature tools to implement efficiently new languages targeted at specific tasks in an easy way. The proposed work provides an extension to the GrCUDA domain specific language. It introduces modifications that integrate seamlessly with the existing automatic multi-GPU scheduler and invoke routines from state of the art libraries for the acceleration of sparse linear algebra. It provides the final user with an intuitive and polyglot interface composed of classes and methods, hiding away setup and management logic while keeping functionality and flexibility. Tests implement real-world use cases and demonstrate negligible overhead with respect to highly optimized baseline versions, but with great advantages with respect to the size of the source code and the general development effort.
L'algebra lineare sparsa è uno strumento fondamentale nell'analisi numerica, nel calcolo scientifico, e nell'analisi di dati. La sparsità nelle strutture dati può essere sfruttata per risparmiare sull'utilizzo di memoria e per velocizzare gli algoritmi. Gli acceleratori hardware come le GPU giocano un ruolo importante nel permettere carichi di lavoro sempre più pesanti, ma richiedono una comprensione profonda di tecnologie di interfacciamento e di modelli computazionali specifici. Inoltre, le librerie di algebra lineare sparsa che offrono funzionalità di accelerazione hardware richiedono un considerevole sforzo di programmazione e sono inclini ad errori, in quanto spesso implementano routine di basso livello. Linguaggi di dominio specifico promettono di aprire l'accelerazione di algoritmi di dominio specifico a scienziati ed esperti il cui bagaglio di conoscenze non è strettamente legato alla programmazione. In questo panorama, la GraalVM offre interoperabilità tra diversi linguaggi e strumenti maturi per implementare efficientemente nuovi linguaggi mirati a compiti specifici in maniera facile. Il lavoro proposto fornisce un'estenzione al linguaggio di dominio specifico GrCUDA. Introduce modifiche che si integrano uniformemente con l'esistente scheduler multi-GPU automatico, e invocano routine da librerie stato dell'arte per l'accelerazione di algebra lineare sparsa. Forniscee all'utente finale un'interfaccia intuitiva e poliglotta composta da classi e metodi, nascondendo la logica di setup e gestione e al tempo stesso mantenendo piena funzionalità e flessibilità. I test implementano casi d'uso reali, e dimostrano solo piccoli sovraccarichi rispetto a versioni ottimizzate di riferimento, ma con considerevoli vantaggi per quanto riguarda la dimensione del codice sorgente e il generale sforzo di sviluppo.
Providing a polyglot interface for the GPU acceleration of sparse linear algebra
Fusco, Luigi
2021/2022
Abstract
Sparse linear algebra is a fundamental tool in numerical analysis, scientific computing, and data analytics. Sparsity in data structures can be leveraged in order to save on memory usage and to speed up algorithms. Hardware accelerators like GPUs play an important role in enabling heavier and heavier workloads, but require a deep understanding of specific interfacing technologies and computational models. Additionally, sparse linear algebra libraries offering hardware acceleration features require a considerable programming effort and are error prone, as they often implement low level routines. Domain specific languages and frameworks promise to open up the acceleration of domain specific algorithms to scientists and experts whose background is not strictly programming related. In this framework, the GraalVM offers interoperability of different languages and mature tools to implement efficiently new languages targeted at specific tasks in an easy way. The proposed work provides an extension to the GrCUDA domain specific language. It introduces modifications that integrate seamlessly with the existing automatic multi-GPU scheduler and invoke routines from state of the art libraries for the acceleration of sparse linear algebra. It provides the final user with an intuitive and polyglot interface composed of classes and methods, hiding away setup and management logic while keeping functionality and flexibility. Tests implement real-world use cases and demonstrate negligible overhead with respect to highly optimized baseline versions, but with great advantages with respect to the size of the source code and the general development effort.| File | Dimensione | Formato | |
|---|---|---|---|
|
2022_12_Fusco_ExecSum.pdf
non accessibile
Descrizione: executive summary
Dimensione
590 kB
Formato
Adobe PDF
|
590 kB | Adobe PDF | Visualizza/Apri |
|
2022_12_Fusco_Thesis.pdf
non accessibile
Descrizione: thesis
Dimensione
2.97 MB
Formato
Adobe PDF
|
2.97 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/198291