En la actualidad, la GPU (Unidad de Procesamiento Gráfico) no solo se enfoca a videojuegos, sino tiene un propósito más general. En esta charla vamos a ver el por qué las GPUs juegan un papel importante en el rendimiento de las cargas de trabajo.
6. Un poco de historia...
● En los 70 y 80 existían los chips gráficos monolíticos,
podían ejecutar operaciones usando
técnicas que permitían reducir la carga del procesador.
● En los años 90 los microprocesadores de alta velocidad fueron fundamentales
para implementar las GPUs.
● A finales de los 90, Nvidia anuncia el lanzamiento de GeForce 256
La primera GPU del mundo! :)
Incorpora transformación, iluminación, organización y
rendering en una sola unidad de procesamiento gráfico, con
una velocidad de 15 millones de polígonos por segundo y un
rendimiento de 480 millones de píxeles por segundo
7. ¿Qué es una GPU?
Fuente de imagen: https://latam.evga.com/concept/product_laptop.asp
Unidad de Procesamiento
Gráfico
- Procesador dedicado
exclusivamente al
procesamiento de gráficos.
- Aligera la carga de la CPUs
dejando que ejecute
proceso secuenciales.
9. ¿Qué es un Core?
● Es una unidad de procesamiento que lee las
instrucciones y ejecuta acciones específicas.
CPU cores:
○ El CPU usa sus cores para administrar las
operaciones
○ Le dice al GPU que va a ejecutar
GPU cores:
○ Los cores de las GPU procesan pixeles
○ Se usan para programación paralela (instrucciones
que podemos dividir) y se pueden paralelizar (no
llevan ningún tipo de orden)
11. Modelo de computación en sistemas heterogéneos
● El modelo de computación sobre tarjetas gráficas consiste en usar
conjuntamente una CPU y una GPU de modo que formen un modelo
heterogéneo.
● La parte secuencial de la aplicación la ejecuta la CPU.
● La parte paralela y más costosa lo ejecuta la GPU
12. ¿Cómo trabaja la GPU?
Fuente de imagen: https://la.nvidia.com/object/what-is-gpu-computing-la.html
14. GPU Computing
“Es el uso de una GPU para realizar computación científica y de ingeniería de
propósito general. Su introducción abrió nuevas puertas en las áreas de
investigación y ciencia. “ fuente: fluidyna
15. Desde el año 2000 los científicos informáticos junto con investigadores
en los campos de imágenes médicas reconocieron el enorme potencial
del uso de las Unidades de Procesamiento Gráfico (GPU)
17. El problema inicial
Los desarrolladores debían hacer que sus aplicaciones
científicas parecieran aplicaciones gráficas convirtiéndolas en
problemas que dibujan triángulos y polígonos. Esto limitaba el
acceso por parte del mundo científico al enorme rendimiento de
las GPUs.
NVIDIA, buscó la forma de modificar la arquitectura de las GPU,
para que fueran completamente programables para
aplicaciones científicas y añadir soportes a lenguajes de alto
nivel: C , C++.
18. CUDA!!!
En el 2006/2007 NVIDIA desarrolla la tecnología CUDA. Es una plataforma de
programación para computación de propósito general, con CUDA los
desarrolladores pueden acelerar drásticamente las aplicaciones informáticas.
Arquitectura Unificada de Dispositivos de Cómputo
¿Cómo consigo CUDA? https://developer.nvidia.com/cuda-downloads
19. Nuevo modelo de programación paralela (cálculos en paralelo), y construidas
con cientos de cores que pueden procesar miles de instrucciones a la vez.
Fuente: https://technodocbox.com/Java/65812691-Gpgpu-programming-on-example-of-cuda.html
Arquitectura de CUDA
20. Arquitectura de una tarjeta gráfica CUDA
Fuente: http://riubu.ubu.es/bitstream/10259/3933/1/Programacion_en_CUDA.pdf