cambiar a curso:   2015-16   2017-18


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2016-17

Aceleración de aplicaciones de propósito general: GPU versus CPU


Tecnologías Específicas

Ingeniería de Computadores
Tecnologías de la Información
 


Descripcion y Objetivos

Los procesadores gráficos (GPUs) han consolidado una posición de privilegio en la aceleración de aplicaciones de propósito general. Los algoritmos de búsqueda en grandes bases de datos son un claro ejemplo de aplicaciones que se benefician de las plataformas basadas en estos dispositivos de computación. Para obtener una versión eficiente de un código determinado para estas plataformas, es muy importante tener en cuenta la arquitectura de éstas. Sin embargo, las características de la aplicación y ciertas sobrecargas introducidas por estas plataformas, hacen que no siempre sea aconsejable el uso de estos dispositivos para obtener reducciones de tiempo significativas.

El objetivo de este trabajo es elaborar una metodología que permita estimar a priori la conveniencia de usar un tipo de procesador u otro, o los dos, para acelerar la ejecución de una aplicación dada. Para ello se tendrán en cuenta tanto las características de la aplicación como las de los procesadores a usar. Se aplicará la metodología a varios casos particulares.

 


Metodología y Competencias

El trabajo se desarrollará de acuerdo a tres fases claramente diferenciadas: estudio de la arquitectura de las actuales GPUs y CPUs, diseño de una metodología para determinar qué procesador usar en una plataforma heterogénea para una aplicación dada, y aplicación de dicha metodología a varios casos particulares para comprobar su validez.

Por tanto, las tareas a realizar para lograr el objetivo principal del trabajo son:

- Estudio de la arquitectura de las actuales GPUs y CPUs. Se trata de revisar las características de estos procesadores y determinar la contribución temporal de sus principales componentes.
- Elaboración de la metodología de estimación del rendimiento. Se establecerán las fases en la que debe consistir y las acciones a realizar en cada una de ellas.
- Aplicación y validación. Dadas algunas aplicaciones sencillas, por un lado se aplicará la metodología, y por otro se obtendrá el código para cada tipo de procesador y serán ejecutadas. Se compararán los resultados obtenidos en cada caso y con ello se comprobará el comportamiento de la metodología diseñada.

 


Medios a utilizar

Los recursos necesarios para la realización de este trabajo son básicamente:

- GPU de NVIDIA de última generación con posibilidad de programación en CUDA. Está disponible en el Centro, en uno de los servidores del departamento de Sistemas Informáticos.

- Documentación sobre la arquitectura de dicha GPU y manuales de programación. También están accesibles en múltiples sitios web.

- Kits de desarrollo para GPUs de NVIDIA. Accesibles en la web de NVIDIA.
 

 


Bibliografía

- Manuales de las herramientas software a utilizar.

- Manuales de programación de CUDA.

- Documentación sobre la arquitectura de las GPUs de NVIDIA.

 


Tutores


SÁNCHEZ GARCÍA, JOSÉ LUIS
CAZORLA LÓPEZ, DIEGO
 

Alumno