cambiar a curso:   2016-17   2018-19


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2017-18

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.

Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

[IC5] Capacidad de analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.

[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

 

En el caso de la Tecnología de la Información, la competencia TI2 se aplica a buena parte de las tareas a desarrollar:

[TI2] Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.

 

 


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