Desarrollo de un compilador fuente-fuente (C a OpenCL) para FPGA. Aplicación sobre el SDK de Altera

This master thesis describes the "SOCAO" source-to-source compiler that translates C/C++ input sources into an OpenCL accelerated program. The concept is to accelerate a time consuming software function in a two step process. First it is transferred by the SOCAO compiler into an Op...

Descripción completa

Detalles Bibliográficos
Autor: Rohde, Johanna
Tipo de recurso: tesis de maestría
Fecha de publicación:2016
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:español
OAI Identifier:oai:riunet.upv.es:10251/92570
Acceso en línea:https://riunet.upv.es/handle/10251/92570
Access Level:acceso abierto
Palabra clave:Compiler
C
OpenCL
SoC
Compilador
Lenguaje C
Lenguaje OpenCL
FPGA
HDL
ScC
TECNOLOGIA ELECTRONICA
Máster Universitario en Ingeniería de Telecomunicación-Màster Universitari en Enginyeria de Telecomunicació
Descripción
Sumario:This master thesis describes the "SOCAO" source-to-source compiler that translates C/C++ input sources into an OpenCL accelerated program. The concept is to accelerate a time consuming software function in a two step process. First it is transferred by the SOCAO compiler into an OpenCL kernel. Afterwards the user can use the "Altera SDK for OpenCL" to translate the kernel into a custom circuit that can be executed on an FPGA. By using the SOCAO compiler, the software engineer can accelerate his program without knowledge in the fields of parallel computing or hardware design. The compiler contains functions and algorithms that analyze the input sources and autonomously make the best suitable decisions for the user. Results show a 50% to 280% increase of speed for three well-known algorithms. Nevertheless this work also addresses the challenges that have to be faced when a sequential program is translated into a parallel environment. Furthermore, the implementation of the compiler, the user-guide and the outcomes of the project are also explained in this work.