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 ...[+]
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.
[-]
Este trabajo fin de máster describe el compilador fuente-a-fuente SOCAO, el cual convierte un programa escrito en C/C++ en un programa acelerado por OpenCL. El concepto es acelerar una función software en dos pasos: Primero ...[+]
Este trabajo fin de máster describe el compilador fuente-a-fuente SOCAO, el cual convierte un programa escrito en C/C++ en un programa acelerado por OpenCL. El concepto es acelerar una función software en dos pasos: Primero SOCAO traslada la función en un kernel OpenCL. Después se usa el "Altera SDK for OpenCL" para crear un circuito integrado para un FPGA. Le ventaja del compilador SOCAO es que el usuario no necesita conocimientos en los campos de computación paralela o diseño de hardware. El compilador contiene funciones y algoritmos que analizan los fuentes de entrada para tomar los mejores decisiones de forma autónoma.
Los resultados muestran un incremento en tiempos de ejecución entre 50% y 280% para tres algoritmos bien conocidos. Sin embargo, este trabajo también explica los dificultades que aparecen cuando un programa secuencial es traducido a un entorno paralelo. Adicionalmente se explica la implementación del compilador, el manual de usuario y los resultados de este trabajo.
[-]
|