ETD

Archivio digitale delle tesi discusse presso l'Università di Pisa

Tesi etd-11122015-115634


Tipo di tesi
Tesi di laurea magistrale
Autore
ATZORI, LUCA
URN
etd-11122015-115634
Titolo
CPU Support for CUDA
Dipartimento
INFORMATICA
Corso di studi
INFORMATICA
Relatori
relatore Prof. Danelutto, Marco
correlatore Innocente, Vincenzo
correlatore Pantaleo, Felice
controrelatore Prof. Chessa, Stefano
Parole chiave
  • source to source translation
  • Clang
  • CUDA
  • GPU
  • abstract syntax tree
  • portability
Data inizio appello
04/12/2015
Consultabilità
Completa
Riassunto
CUDA programming language perfectly matches the data parallel programming model and it is a very specific way of programming Graphics Processing Unit devices. On the other hand, the large amount of hardware not necessarily having a GPU is a resource that we would not like to left unused. Exploiting this resources arises the issue of guaranteeing performance portability, a major challenge faced today by the heterogeneous high performance programming community. The aim of this work is the development of an automatic translation tool from CUDA to C++. Operating at a source-to-source translation level we manipulate the Abstract Syntax Tree of the CUDA program to obtain the C++ version.
To accomplish this synctactic analysis and transformation, we are relying on clang, a compiler front-end for the C/C++ languages family, that also handles CUDA syntax. Our approach consists in mapping each CUDA block to a CPU thread, and serialize the execution of each CUDA thread. After describing the implementation of this tool, we will show that we preserve a comparable performance running the translated code on the target architecture. We also point out how the use of the CUDA framework can be profitable targeting more than GPU architectures.
File