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
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 ex...
- Autores:
-
Avila Garzón, Yerman Jahir
- Tipo de recurso:
- Fecha de publicación:
- 2015
- Institución:
- Universidad Nacional de Colombia
- Repositorio:
- Universidad Nacional de Colombia
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.unal.edu.co:unal/56614
- Acceso en línea:
- https://repositorio.unal.edu.co/handle/unal/56614
http://bdigital.unal.edu.co/52460/
- Palabra clave:
- 0 Generalidades / Computer science, information and general works
62 Ingeniería y operaciones afines / Engineering
Computación GPU
Computación paralela
CUDA
Diseño digital
HDL
NVIDIA
Simulación
Verificación funcional
GPU
Verificación
Digital Design
GPU Computing
Parallel computing
Functional Verification
- Rights
- openAccess
- License
- Atribución-NoComercial 4.0 Internacional
id |
UNACIONAL2_7c91c509bf2e5f067f35125fd8088b93 |
---|---|
oai_identifier_str |
oai:repositorio.unal.edu.co:unal/56614 |
network_acronym_str |
UNACIONAL2 |
network_name_str |
Universidad Nacional de Colombia |
repository_id_str |
|
dc.title.spa.fl_str_mv |
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 |
title |
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 |
spellingShingle |
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 0 Generalidades / Computer science, information and general works 62 Ingeniería y operaciones afines / Engineering Computación GPU Computación paralela CUDA Diseño digital HDL NVIDIA Simulación Verificación funcional GPU Verificación Digital Design GPU Computing Parallel computing Functional Verification |
title_short |
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 |
title_full |
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 |
title_fullStr |
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 |
title_full_unstemmed |
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 |
title_sort |
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 |
dc.creator.fl_str_mv |
Avila Garzón, Yerman Jahir |
dc.contributor.author.spa.fl_str_mv |
Avila Garzón, Yerman Jahir |
dc.contributor.spa.fl_str_mv |
Eslava Garzón, Johan Sebastian |
dc.subject.ddc.spa.fl_str_mv |
0 Generalidades / Computer science, information and general works 62 Ingeniería y operaciones afines / Engineering |
topic |
0 Generalidades / Computer science, information and general works 62 Ingeniería y operaciones afines / Engineering Computación GPU Computación paralela CUDA Diseño digital HDL NVIDIA Simulación Verificación funcional GPU Verificación Digital Design GPU Computing Parallel computing Functional Verification |
dc.subject.proposal.spa.fl_str_mv |
Computación GPU Computación paralela CUDA Diseño digital HDL NVIDIA Simulación Verificación funcional GPU Verificación Digital Design GPU Computing Parallel computing Functional Verification |
description |
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. |
publishDate |
2015 |
dc.date.issued.spa.fl_str_mv |
2015 |
dc.date.accessioned.spa.fl_str_mv |
2019-07-02T11:59:07Z |
dc.date.available.spa.fl_str_mv |
2019-07-02T11:59:07Z |
dc.type.spa.fl_str_mv |
Trabajo de grado - Maestría |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/masterThesis |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
http://purl.org/redcol/resource_type/TM |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.unal.edu.co/handle/unal/56614 |
dc.identifier.eprints.spa.fl_str_mv |
http://bdigital.unal.edu.co/52460/ |
url |
https://repositorio.unal.edu.co/handle/unal/56614 http://bdigital.unal.edu.co/52460/ |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.relation.ispartof.spa.fl_str_mv |
Universidad Nacional de Colombia Sede Bogotá Facultad de Ingeniería Departamento de Ingeniería Eléctrica y Electrónica Departamento de Ingeniería Eléctrica y Electrónica |
dc.relation.references.spa.fl_str_mv |
Avila Garzón, Yerman Jahir (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. Maestría thesis, Universidad Nacional de Colombia - Sede Bogotá. |
dc.rights.spa.fl_str_mv |
Derechos reservados - Universidad Nacional de Colombia |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.license.spa.fl_str_mv |
Atribución-NoComercial 4.0 Internacional |
dc.rights.uri.spa.fl_str_mv |
http://creativecommons.org/licenses/by-nc/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Atribución-NoComercial 4.0 Internacional Derechos reservados - Universidad Nacional de Colombia http://creativecommons.org/licenses/by-nc/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
institution |
Universidad Nacional de Colombia |
bitstream.url.fl_str_mv |
https://repositorio.unal.edu.co/bitstream/unal/56614/1/Software.1052387518.2016.zip https://repositorio.unal.edu.co/bitstream/unal/56614/2/1052387518.2016.pdf https://repositorio.unal.edu.co/bitstream/unal/56614/3/1052387518.2016.pdf.jpg |
bitstream.checksum.fl_str_mv |
fc423e4b995dfdac2909ff707636ab57 13fa65882ce11844173eccea04bba7e2 7587e2d1d567f6feb20a9c0627c1c9ae |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Nacional de Colombia |
repository.mail.fl_str_mv |
repositorio_nal@unal.edu.co |
_version_ |
1814089253420793856 |
spelling |
Atribución-NoComercial 4.0 InternacionalDerechos reservados - Universidad Nacional de Colombiahttp://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Eslava Garzón, Johan SebastianAvila Garzón, Yerman Jahir3ed6d5fb-8ec3-4dde-8d7e-4593536c1d543002019-07-02T11:59:07Z2019-07-02T11:59:07Z2015https://repositorio.unal.edu.co/handle/unal/56614http://bdigital.unal.edu.co/52460/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.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.Maestríaapplication/pdfspaUniversidad Nacional de Colombia Sede Bogotá Facultad de Ingeniería Departamento de Ingeniería Eléctrica y ElectrónicaDepartamento de Ingeniería Eléctrica y ElectrónicaAvila Garzón, Yerman Jahir (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. Maestría thesis, Universidad Nacional de Colombia - Sede Bogotá.0 Generalidades / Computer science, information and general works62 Ingeniería y operaciones afines / EngineeringComputación GPUComputación paralelaCUDADiseño digitalHDLNVIDIASimulaciónVerificación funcionalGPUVerificaciónDigital DesignGPU ComputingParallel computingFunctional VerificationComparació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íaTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TMORIGINALSoftware.1052387518.2016.zipapplication/octet-stream23092https://repositorio.unal.edu.co/bitstream/unal/56614/1/Software.1052387518.2016.zipfc423e4b995dfdac2909ff707636ab57MD511052387518.2016.pdfapplication/pdf3143760https://repositorio.unal.edu.co/bitstream/unal/56614/2/1052387518.2016.pdf13fa65882ce11844173eccea04bba7e2MD52THUMBNAIL1052387518.2016.pdf.jpg1052387518.2016.pdf.jpgGenerated Thumbnailimage/jpeg5202https://repositorio.unal.edu.co/bitstream/unal/56614/3/1052387518.2016.pdf.jpg7587e2d1d567f6feb20a9c0627c1c9aeMD53unal/56614oai:repositorio.unal.edu.co:unal/566142024-03-23 23:09:03.283Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.co |