Top Banner
INTRODUCCION A LA COMPUTACION PARALELA CON GPUS
28

Equipo 2 gpus

Jul 19, 2015

Download

Technology

Elvis Hernadez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Equipo 2 gpus

INTRODUCCION

A LA

COMPUTACION

PARALELA CON

GPUS

Page 2: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción a CUDA

Aplicaciones

Conclusiones

Page 3: Equipo 2 gpus

GPU ???

Unidad de procesamiento gráfico (GPUs) son procesadores de varios núcleos que ofrecen alto rendimiento

Procesador dedicado al procesamiento de gráficos u operaciones de coma flotante

la GPU es la cerebro de nuestras placas de videos y la que se encarga de procesar cada uno de las imágenes que vemos en nuestros monitores

GPU ayuda para el procesamiento gráfico en 3D para suavizar los bordes de las figuras para darles un aspecto más realista.

Page 4: Equipo 2 gpus

Hoy en día las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua (más de 800MHz)

Arquitecturas Many-core con una cantidad ingente de núcleos que realizan operaciones sobre múltiples datos

Page 5: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción a CUDA

Aplicaciones

Conclusiones

Page 6: Equipo 2 gpus

PARALELISMO

El paralelismo es una forma de computación en la cual varios cálculos pueden realizarse simultáneamente.

Basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo. (Divide y vencerás)

Page 7: Equipo 2 gpus

SIMD

SIMD: Una instrucción múltiples datos

Todos los núcleos ejecutan la misma instrucción al mismo tiempo.

Solo se necesita decodificar la instrucción una única vez para todos los núcleos

Page 8: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción

CPU Y GPU

Evolución

Introducción a CUDA

Aplicaciones

Conclusiones

Page 9: Equipo 2 gpus

Computación de propósito general sobre procesadores gráficos

Cómputo de aplicaciones tradicionalmente ejecutadas sobre CPUs

Aprovechamiento capacidades GPU:

• Grandes vectores de datos

• Paralelismo de grano fino SIMD

Page 10: Equipo 2 gpus

EVOLUCION GPU

• 1.Ordenadores sin tarjeta gráfica.

• 2.Aparición de GPUs para la representación en pantalla.

• 3.GPUs para procesamiento gráfico: industria del videojuego (3dfx,NVIDIA,ATI).

• 4.En 2004 surge la idea de utilizar las GPU para computación de alto rendimiento (HPC).

• 5.2007. NVIDIA ve oportunidad en el mercado del HPC y desarrolla CUDA. (Lenguaje específico para aprovechar la capacidad de las GPU).

• 6.Actualmente NVIDIA ha tenido éxito en la computación GPGPU. Los supercomputadores top utilizan clústers de GPUs para aumentar su potencia computacional.

Page 11: Equipo 2 gpus

EL GRAN DESARROLLO DE LAS GPU

La evolución de las tarjetas gráficas ha venido acompañado de un gran crecimiento en el mundo de los videojuegos y las aplicaciones 3D

Gran producción de chips gráficos por parte de grandes fabricantes:

• NVIDIA

• AMD(ATI)

• IBM: desarrollo en colaboración con Sony y Toshiba procesadores Cell

• Intel: Desarrollo chips GPU Larrabee

Page 12: Equipo 2 gpus

COMPARACION ENTRE CPU Y GPU

Intel Core 2 / Xeon / i7

4-6 núcleos MIMD

Pocos registros, cache multi-nivel

10-30 GB/s ancho de banda hacia la memoria principal

NVIDIA GTX480

512 núcleos, organizados en 16 unidades SM cada una con 32 núcleos.

Muchos registros, inclusión cachés nivel 1 y 2.

5 GB/s ancho de banda hacia el procesador HOST.

180 GB/s ancho de banda memoria tarjeta gráfica.

Page 13: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción a CUDA

Aplicaciones

Conclusiones

Page 14: Equipo 2 gpus

QUE ES CUDA??

• CUDA es una nueva tecnología desarrollada por NVIDIA, que permite utilizar la GPU (Unidad de Procesamiento Grafico) para tareas que antes estaban procesadas únicamente por la CPU (Unidad Central de Procesamiento).

• Por ejemplo rende rizado de videos, y aplicaciones de investigación medica y científica en la que se requieren una gran cantidad de recursos en cuanto a capacidad de procesamiento se refiere

Page 15: Equipo 2 gpus

COMO NACE CUDA???

• NVIDIA, a la vista del potencial mercado existente, desarrolló una especie de lenguaje C para gráficos (“Cg”), que luego evolucionaría hasta llegar a CUDA, un completo API de programación y una arquitectura que permite a los programadores crear aplicaciones que se aprovechen de la potencia de cálculo de las tarjetas gráficas

Page 16: Equipo 2 gpus

BENEFICIOS DE LA TECNOLOGIA CUDA

• El procesamiento y rende rizado de videos.

• A muchos nos tocado editar algún video, para darnos cuenta al querer rende rizar, si el video es de 20 minutos el proceso de rende rizado puede llevar casi 3 horas (dependiendo de los recursos de tu PC).

• Este proceso se acelera hasta 10 veces si utilizamos un programa que soporte la tecnología CUDA.

Page 17: Equipo 2 gpus

QUE PROGRAMAS SOPORTAN LA

TEGNOLOGIA CUDA?

• Entre las recomendadas por NVIDIA tenemos Badaboom.

• Otro aplicación que Soporta CUDA es Sony Vegas PRO v.10

• Photoshop en su ultima version tambien ofrece soporte CUDA.

Page 18: Equipo 2 gpus

• El siguiente gráfico muestra la mejora en el rendimiento cuando se hacen conversiones con y sin CUDA/AMD APP. Los resultados se muestran en minutos.

Page 19: Equipo 2 gpus

HARDWARE: UBICACIÓN GPU

La GPU se sitúa sobre una placa gráfica pci-e dentro de un computador con uno o varios

núcleos.

Page 20: Equipo 2 gpus

HARDWARE: ARQUITECTURA

• La GPU dedica más transistores al procesamiento de

datos

Page 21: Equipo 2 gpus

HARDWARE: GENERACIONES DE CHIPS

GRÁFICOS

• A nivel de GPU, los detalles dependen de la generación de los chips.

• Primeras generaciones

GeForce Series 8,9, GTX2XX

Tesla C1060, S1070 para HPC, sin salida gráfica, más memoria.

• Generaciones actuales

Nueva arquitectura Fermi: GeForce GTX4XX

Tesla C2050,S2050 para HPC.

Page 22: Equipo 2 gpus

SIMT: UNA INSTRUCCIÓN MÚLTIPLES HILOS

• Característica clave de los núcleos dentro de un SM.

•Todos los núcleos ejecutan la misma instrucción simultáneamente pero con distintos datos

•Similar a la computación en los supercomputadores CRAY

•Mínimo de 32 hilos realizando la misma tarea (casi) al mismo tiempo

Page 23: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción a CUDA

Aplicaciones

Conclusiones

Page 24: Equipo 2 gpus

APLICACIONES EN CUDA

• En la pagina de www.nvidia.com podemos encontrar una larga lista de aplicaciones especificas y modificaciones de programas para aprovechar esta tecnología, para diferentes ámbitos de aplicación:

• Gobierno y defensa

• Dinámica molecular

• Bioinformática

• Electrodinámica y electromagnetismo

• Imágenes medicas

• Combustibles y gases

• Computación financiera

• Extensiones de Matlab

• Tratamiento de video y visión por computador

• Modelado del tiempo y los océanos

Page 25: Equipo 2 gpus

APLICACIONES EN CUDA

• Actualmente estamos trabajando en:

Aceleración algoritmos redes neuronales auto-organizativas (GNG,NG)

Reconstrucción escenarios 3D

Representación 3D objetos

Se está utilizando para acelerar AMBER, un simulador de dinámica molecular empleado por más de 60.000 investigadores del ámbito académico y farmacéutico de todo el mundo para acelerar el descubrimiento de nuevos medicamentos.

Page 26: Equipo 2 gpus

CONTENIDO

GPU

Paralelismo

GPGPU

Introducción a CUDA

Aplicaciones

Conclusiones

Page 27: Equipo 2 gpus

INNOVACIONES

• Microsoft y Apple (Windows 8 y Snow Leopard) está convirtiendo el GPU Computing en una tecnología de uso masivo. La GPU no actúa únicamente como procesador gráfico, sino como procesador paralelo de propósito general accesible para cualquier aplicación.

Page 28: Equipo 2 gpus

CONCLUSIONES

• CUDA es una tecnología que permite obtener grandes rendimientos para problemas con un alto paralelismo.

• Hay que tener claro su funcionamiento para saber si es adecuado y obtener el mayor rendimiento posible.

• Los sistemas informáticos están pasando de realizar el “procesamiento central” en la CPU a realizar “coprocesamiento” repartido entre la CPU y la GPU.