Comparación y análisis de desempeño de unidades de procesamiento gráfico como alternativa de computación paralela para procesos de simulación en ingeniería. Yerman Jahir Avila Garzón Universidad Nacional de Colombia Facultad de Ingeniería, Departamento de Ingeniería Eléctrica y Electrónica Bogotá DC, Colombia 2015 Comparación y análisis de desempeño de unidades de procesamiento gráfico como alternativa de computación paralela para procesos de simulación en ingeniería. Yerman Jahir Avila Garzón Tesis presentada como requisito parcial para optar al título de: Magister en Ingeniería – Automatización Industrial Director: Ph.D., M.Sc. Ing. Electricista Johan Sebastián Eslava Garzón Línea de Investigación: Arquitectura de Computadores y Computación Paralela, Electrónica Digital, Optimización Grupo de Investigación: GMUN: Grupo de Microelectrónica Universidad Nacional Universidad Nacional de Colombia Facultad de Ingeniería, Departamento de Ingeniería Eléctrica y Electrónica Bogotá DC, Colombia 2015 El que ama la educación ama el saber; el que odia la educación es un tonto. Proverbios 12, 1 A mi esposa Jazmín y mi pequeño hijo Diego José quien está por nacer. A mis padres Ismael y María Antonia, y a mi hermano Arley. A mis abuelas Erminda y Nohemy. A mis abuelos Parmenio† y Celestino†. Resumen y Abstract VII Resumen La computación de propósito general en las unidades de procesamiento gráfico GPU es una área de en continuo crecimiento. Las arquitecturas actuales de las GPU permiten la optimización, a través de diferentes lenguajes de programación (p. ej. CUDA C, CUDA Fortran, OpenCL, entre otros) aplicaciones existentes o crear nuevas aplicaciones que permitan aprovechar el paralelismo natural de GPU. Se busca mejorar el tiempo de ejecución algoritmos complejos, un mejor uso de los recursos computacionales y mayor acceso a plataformas de computación de alto rendimiento. A través del uso de GPUs como procesadores SIMD (Single Instruction Multiple Data) se buscan mejoras en la metodología de diseño, modelo y proceso de simulación. Se busca comparar diferentes GPU que permitan ejecución de tareas en paralelo e incluirlas como coprocesadores en una tarea de diseño digital. Para tal fin se realizaron dos tareas principales: comparación de desempeño de tres GPUs mediante benchmark y una implementación de software paralelo y ejecución del mismo en GPU dentro de un proceso de diseño digital. En la comparación de desempeño de las GPU, se utiliza un benchmark llamado SHOC el cual permite realizar una serie de pruebas de manera iterativa sobre las tarjetas seleccionadas. Para la implementación en el proceso de diseño digital se seleccionó una parte del proceso conocida como Verificación funcional de hardware en el cual se implementaron diferentes combinaciones de ejecución de código tanto en CPU y GPU. La verificación funcional de hardware por simulación es un factor determinante en los tiempos de ejecución en el proceso de diseño digital. La verificación funcional se realiza aplicando estímulos o vectores de prueba al dispositivo bajo verificación (DUV) que generalmente es un sistema escrito en HDL y a un modelo de referencia que hace la misma tarea, pero que se codifica en un lenguaje de alto nivel de programación. Se crea un entorno de verificación funcional de hardware por simulación compuesto por: Un generador de estímulos aleatorios (C++) Un hardware a verificar que para este trabajo está escrito en Verilog. Este hardware es un sumador de 8 bits. Dos modelos de referencia o Golden Model escritos uno en C++ y otro en CUDA pero que cumplen con la misma función dispositivo bajo verificación Dos comparadores escritos uno en C++ y otro en CUDA con el fin de comparar los desempeños de CPU y GPU al cumplir con la misma tarea. Las unidades NVIDIA analizadas son: NVIDIA® GeForce GT 520M, NVIDIA® Quadro 600 y NVIDIA® Tesla C2075 y lasCPUs analizadas Intel® Core i5, Intel® Xeon.Como principal resultado se tiene que la mejor aplicación del proceso de verificación se da cuando el modelo de referencia está escrito en CUDA C y el comparador en C ++. Los tiempos de ejecución del proceso de verificación para la configuración mencionada son: 0,05 [s], 0,0308 [s] y 0,0270 [s] para GeForce, Quadro y Tesla, respectivamente, frente a 1,3 [s] y 1,17 [s] de Intel® Core i5 y del Intel® Xeon.Processor respectivamente. Palabras clave: Computación GPU, Computación paralela, Diseño digital, CUDA, GPU, HDL, NVIDIA, Simulación, Verificación, Verificación funcional. Resumen y Abstract IX Abstract General Purpose Computing on graphics processing units is a wide area which is continually growing up. The actual architectures of GPU let the optimization, through many different programing languages (e.g. CUDA C, CUDA Fortran, OpenCL, among others), previous applications or made new ones that allow take an advantage of the native parallelism of GPU. It seeks to improve execution time of complex algorithm, better use of computational resources and bigger Access to platforms of high performance computing. Through the use of GPUs as SIMD (Single Instruction Multiple data) processors it has sought improvements in methodology of design, model and simulation process. This work looks for a comparison of different GPUs that allow the parallel execution and include them as co-processors in a task of the process of digital electronics design.. Two principal tasks were developed: a comparison of the performance for tree GPUs by the use of a benchmark and a hybrid implementation of task in CPU-GPU In the comparison of performance in the GPUs, a benchmark called SHOC is used. This benchmark allows doing various iterative tests on chosen GPUs. A part of the digital design process was chosen for the implementation, this part is known as Functional Verification of Hardware. In this part of the process different combinations of execution on GPU or CPU were implemented. Functional verification of Hardware by simulation is a determinant in the execution times in the process of digital design. Functional verification is done applying stimuli or vector test to the device under verification (DUV) that generally is a system in HDL and pass it to a golden model that do the same task but this model is coded on a high level language of programming. The parts of an environment of functional verification of hardware by simulation are: A random stimuli generator (C++)A Verilog module as a hardware for verification. In this case an 8 bit adder. Two golden models: first in C++ and the other in CUDA. Both of them have the same function. Two comparators: first in C++ and the other in CUDA. Two comparators because the performance of CPU vs. GPU need to be tested. NVIDIA GPU for the test: GeForce GT 520M, Quadro 600 and Tesla C2075; CPU for compare Intel® Core i5 e Intel® Xeon Processor. Principal results are: better implementation of verification process when the reference model is coded in CUDA C and the comparator is coded in C++. Results: 0.05 [s], 0,0308 [s] y 0.0270 [s] for GeForce, Quadro y Tesla respectively in front of 1.3 [s] of the Intel® Core i5 and 1.17[s] of the Intel® Xeon Processor. Keywords: CUDA, Digital Design, GPU, GPU Computing, HDL, NVIDIA, parallel computing, Functional Verification. Contenido XI Contenido Pág. Resumen ............................................................................................................... VII Abstract ................................................................................................................ IX Lista de figuras ............................................................................................................. XIII Lista de tablas .............................................................................................................. XV Lista de Abreviaturas .................................................................................................... 17 Introducción ............................................................................................................... 19 1. Computación Paralela y Computación de Propósito General con GPU ............. 23 1.1 Computación de Propósito General con GPU ................................................ 27 2. Historia y arquitectura GPU ................................................................................... 31 2.1 Arquitecturas GPU ......................................................................................... 35 2.2 Arquitecturas NVIDIA ..................................................................................... 39 2.3 Computación paralela usando CUDA ............................................................ 47 3. Selección y Caracterización de GPUs .................................................................. 51 3.1 Selección de GPUs: ....................................................................................... 51 3.2 Caracterización de GPUs: ............................................................................. 55 3.2.1 Hardware Seleccionado ...................................................................... 55 3.2.2 Ambiente de desarrollo y pruebas básicas a las GPU seleccionadas. 57 3.2.3 Especificaciones de las GPUs seleccionadas ..................................... 61 4. Desempeño con Benchmark SHOC ...................................................................... 69 5. Ejemplo de implementación de computación paralela en un proceso de diseño digital. ............................................................................................................... 83 5.1 Verificación
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages112 Page
-
File Size-