CIS1330TK03
CUDAlicious
Daniel David Cárdenas Velasco
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA DE SISTEMAS
BOGOTÁ, D.C.
2013
CIS1230TK02
CUDAlicious
Autor:
Daniel David Cárdenas Velasco
MEMORIA DEL TRABAJO DE GRADO REALIZADO PARA CUMPLIR UNO DE LOS REQUISITOS PARA OPTAR AL TÍTULO DE INGENIERO DE SISTEMAS
Director
Leonardo Flórez Valencia
Jurados del Trabajo de Grado
Página web del Trabajo de Grado
http://pegasus.javeriana.edu.co/~CIS1330TK03/
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA DE SISTEMAS
BOGOTÁ, D.C.
Noviembre, 2013
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA DE SISTEMAS
Rector Magnífico
Joaquín Emilio Sánchez García S.J.
Decano Académico Facultad de Ingeniería
Ingeniero Jorge Luis Sánchez Téllez
Decano del Medio Universitario Facultad de Ingeniería
Padre Sergio Bernal Restrepo S.J.
Director de la Carrera de Ingeniería de Sistemas
Ingeniero Germán Alberto Chavarro Flórez
Director Departamento de Ingeniería de Sistemas
Ingeniero Rafael Andrés González Rivera
Artículo 23 de la Resolución No. 1 de Junio de 1946
“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque no contengan ataques o polémicas puramente personales. Antes bien, que se vean en ellos el anhelo de buscar la verdad y la Justicia”
AGRADECIMIENTOS
CONTENIDO
Artículo 23 de la Resolución No. 1 de Junio de 1946 4
INTRODUCCIÓN 9
I - DESCRIPCIÓN GENERAL DEL TRABAJO DE GRADO 10
1.Oportunidad, Problemática, Antecedentes 10
1.1Descripción del contexto 10
1.2Pregunta de investigación 10
1.3Justificación 10
1.4Impacto Esperado 11
2.Descripción del Proyecto 11
2.1Visión global 11
2.2Objetivo general 11
2.3Fases Metodológicas o conjunto de objetivos específicos 12
II - MARCO TEÓRICO 12
1.Marco Conceptual 12
1.1Trabajos importantes en el área 12
1.2Descripción general de la plataforma CUDA 13
1.3Descripción general de la plataforma ITK 21
1.4Convolución 22
III – DESARROLLO DEL TRABAJO 24
1.Primer Prototipo 24
2.Segundo Prototipo 25
2.1CARGA DE IMAGEN EN RAM 25
2.2COPIA DE IMAGEN A MEMORIA GPU 25
3.Tercer Prototipo 27
4.Cuarto Prototipo 29
5.Versión Final 29
5.1CARGA DE IMAGEN 30
5.2ESCRITURA DE LA IMAGEN 32
IV - RESULTADOS Y REFLEXIÓN SOBRE LOS MISMOS 33
1.Cumplimiento de objetivos 33
1.1.Objetivo general 33
1.2.Objetivos específicos 33
2.Pruebas 35
1.1.Implementación convolución CPU 35
1.2.Entorno de pruebas 36
1.3.Resultados de pruebas 37
3.Conclusiones del desarrollo 39
3.1.Rendimiento 39
3.2.Tamaño del problema 39
3.3.Dimensionalidad del problema 40
3.4.Manejo de datos 40
V – CONCLUSIONES, RECOMENDACIONES Y TRABAJOS FUTUROS 41
4.Conclusiones 41
4.1.Se respondió la pregunta de investigación 41
4.2.Existe un aporte a la solución de la problemática 41
4.3.Se cumplieron los objetivos 41
5.Recomendaciones 41
5.1.Para la carrera 41
5.2.Para la universidad 42
6.Trabajos Futuros 42
6.1.DIVIDIR DATOS DE ENTRADA 42
6.2.EJECUCIÓN MULTIGPU 42
6.3.PORT A OPENCL 43
VI - REFERENCIAS Y BIBLIOGRAFÍA 43
1.Referencias 43
VII - ANEXOS 47
Anexo 1. Glosario 47
GPU 47
CPU 47
ITK 47
FPGA 47
Procesador multinúcleo 47
RGBA 47
Anexo 2. Post-Mortem 47
1.Metodología propuesta vs. Metodología realmente utilizada. 47
2.Actividades propuestas vs. Actividades realizadas. 47
3.Efectividad en la estimación de tiempos del proyecto 51
4.Costo estimado vs. Costo real del proyecto 51
5.Efectividad en la estimación y mitigación de los riesgos del proyecto 52
ABSTRACT
In the filtering of n-dimensional images, conventional filtering tools are used in order to perform the task, as they’re reliable and usually easy to use. However, as the n-dimensional images keep growing in both size and complexity, these tools perform slowly even in the newest hardware. This project proposes a new approach to the filtering process, using graphical process units instead of central processing units, and using specifically the Nvidia´s CUDA platform in order to determine whether or not there are possibilities of increasing the performance of the filtering processes by using this kind of hardware.
RESUMEN
En el filtrado de imagenes n-dimensonales, se utilizan herramientas de filtrado convencionales ya que son confiables y generalmente fáciles de usar. Sin embargo, estas herramientas se han vuelto lentas a medida que las imágenes n-dimensionales han crecido en tamaño como en complejidad, incluso en el hardware mas nuevo. Este proyecto propone una nueva forma de atacar el proceso de filtrado, utilizando GPU’s en vez de CPU’s, y específicamente utilizando la plataforma CUDA de Nvidia; esto con el fin de determinar si hay o no posibilidades de incrementar el rendimiento de los procesos actuales de filtrado al utilizar este tipo de hardware.
RESUMEN EJECUTIVO
La problemática atacada por este proyecto consiste en disminuir el tiempo de filtrado de imágenes n-dimensionales, que son usualmente utilizadas en el ámbito de la visualización médica. El proceso de filtrado actual toma una cantidad de tiempo considerable en las herramientas existentes, esto es debido en gran parte a la forma en la que dichas herramientas fueron implementadas.
Estos procesos de filtrado suelen estar implementados de manera serial, y ejecutados en el procesador principal del equipo. Sin embargo, han surgido tecnologías que pueden mejorar considerablemente el tiempo que toma este proceso.
La solución propuesta consistía en implementar los procesos de filtrado típicos en la plataforma CUDA de Nvidia, en conjunto con otras plataformas, con el fin de mejorar notablemente los tiempos de filtrado. También se determinarían las consideraciones a tener en cuenta cuando se desarrolle una aplicación en dicha plataforma, ya que difiere de las plataformas tradicionales de programación.
El proyecto dio como resultado un prototipo que integra CUDA con varias plataformas, y que valida la hipótesis sobre la mejora de rendimiento. También se muestran conclusiones específicas sobre el trabajo de la plataforma, sustentadas en pruebas.
Dostları ilə paylaş: |