25
ARQUITECTURA CUDA Integrantes: Jose D Apollo 08-10272 Ricardo Rosa 08-11005

ARQUITECTURA CUDA

  • Upload
    zody

  • View
    33

  • Download
    1

Embed Size (px)

DESCRIPTION

ARQUITECTURA CUDA. Integrantes: Jose D Apollo 08-10272 Ricardo Rosa 08-11005. ¿De donde viene CUDA?. - PowerPoint PPT Presentation

Citation preview

Page 1: ARQUITECTURA CUDA

ARQUITECTURA CUDA

Integrantes:Jose D Apollo 08-10272Ricardo Rosa 08-11005

Page 2: ARQUITECTURA CUDA

¿De donde viene CUDA? Nvidia Corporation es una compañía global de

tecnología americana con base en California, fabrica unidades de procesamiento grafico (GPU), teniendo también una gran participación en la fabricación de unidades de Sistemas en un Chip (SOC) para el mercado de computo móvil. Su línea primaria de GPUs fue nombrada como “GeForce”.

Aparte de la fabricación de GPUs, Nvidia provee capacidades de procesamiento paralelo a investigadores y científicos que les permiten correr de manera eficiente aplicaciones de alto rendimiento, ellos están desplegados alrededor del mundo.

Page 3: ARQUITECTURA CUDA

Un poco de historia… La unidad de procesamiento gráfico

(GPU), fue inventada por Nvidia en 1999 y es uno de los procesadores paralelos mas dominantes hasta la fecha.

Se ha tratado de explotar la GPU con aplicaciones no gráficas desde el 2003, los primeros esfuerzos utilizaron APIs gráficos para el cómputo general eran conocidos como programas GPGPU.

Page 4: ARQUITECTURA CUDA

GPGPU GPGPU demostró grandes aceleraciones, pero se

enfrentó a varios inconvenientes: Requería que el programador tuviese un profundo

conocimiento de la API gráfica y arquitectura GPU. Los problemas tenían que ser expresados en

términos de coordenadas de vértices, texturas y programas de sombreado, aumentando la complejidad del programa.

Las características básicas de programación tales como lecturas y escrituras aleatorias de la memoria no eran soportados, restringiendo en gran medida el modelo de programación.

La falta de soporte de doble precisión (hasta hace poco) significaba algunas aplicaciones científicas no podrían ejecutarse en la GPU.

Page 5: ARQUITECTURA CUDA

GPGPU Para hacer frente a estos problemas, NVIDIA

introdujo dos tecnologías clave: La G80 arquitectura gráfica y de computo unificada

(introducida en GeForce 8800 ®, Quadro FX 5600 ® y Tesla C870 ® GPUs).

CUDA, una arquitectura de software y hardware.

Juntas, estas dos tecnologías representaban una nueva forma de utilizar la GPU.

Page 6: ARQUITECTURA CUDA

CPU vs GPU

Page 7: ARQUITECTURA CUDA

CPU vs GPU Ejemplo: Mithbusters

Page 8: ARQUITECTURA CUDA

¿Qué es CUDA? Compute Unified Device Architecture

CUDA™ es una plataforma de computación en paralelo y modelo de programación que permite un gran aumento en el rendimiento de computo aprovechando la potencia de la unidad de procesamiento de gráficos (GPU).

Page 9: ARQUITECTURA CUDA

CUDA es un conjunto de herramientas de desarrollo para crear aplicaciones que se ejecutaran en la GPU.

CUDA fue presentado por nVidia en 2006 y sale al mercado el 15 de febrero de 2007, para PC y la versión beta para Mac OS X, el 19 de agosto de 2008.

CUDA permite al programador escribir programas en C con extensiones CUDA y dirigirse a un propósito general. Llamamos a esta nueva forma de programación de GPU "GPU Computing“ esto significó un apoyo más amplio de aplicaciones, soporte más amplio para lenguajes de programación.

Page 10: ARQUITECTURA CUDA

Modelo de Programación SIMT (Single Instruction Multiple

Threads).

Los hilos corren en grupos de 32 llamados “Warps”.

Cada hilo en un “warp” ejecuta la misma instrucción a mismo tiempo.

Page 11: ARQUITECTURA CUDA

Modelo de Programación Un solo kernel ejecutado por varios hilos

Los hilos están agrupados en “bloques”

El kernel lanza un “grid” de bloques de hilos

Page 12: ARQUITECTURA CUDA

Hilos y bloques tienen identificadores únicos. Todos los hilos en un bloque pueden

compartir datos a través de “Memoria compartida”.

Page 13: ARQUITECTURA CUDA

Modelo de Memoria

Global Memory

Constant Memory

TextureMemory

Block (0,0)

Shared Memory

Registers Registers

Local Memory

Local Memory

Thread (0,0) Thread (1,0)

Block (1,0)

Shared Memory

Registers Registers

Local Memory

Local Memory

Thread (0,0) Thread (1,0)

Host

Page 14: ARQUITECTURA CUDA

Modelo de Memoria Cada Bloque contiene:

Conjunto de registros locales por hilo Una memoria compartida por todos los

hilos Una cache constante de solo lectura, que

es compartida por todos los hilos Una cache de textura de solo lectura,

que es compartida por todos los procesadores

Page 15: ARQUITECTURA CUDA

Modelo de Memoria Memoria Local:

Se encuentra en al alcance de cada hilo El compilador la ubica como memoria

global, pero lógicamente es tratada como una unidad independiente

Tiempo de vida de un hilo

Page 16: ARQUITECTURA CUDA

Modelo de Memoria Registro:

El mas rápido Solo son accesibles mediante los hilos Tiempo de vida de un hilo

Memoria Compartida: Puede ser tan rápida como un registro si no hay

conflictos de lecturas en la misma dirección Accesible por cualquier hilo perteneciente al

bloque que la creo Tiempo de vida de un bloque

Page 17: ARQUITECTURA CUDA

Modelo de Memoria Memoria Global:

Hasta 150 veces mas lenta que un registro o memoria compartida

Accesible desde un host o dispositivo Tiempo de vida de la aplicación

Page 18: ARQUITECTURA CUDA

Aplicaciones Extracción de recursos naturales

El costo de una excavación puede llegar a millones de dólares

En muchos casos, solo existe una sola posibilidad de encontrar materia prima

CUDA, logro hasta 14 veces mejor performance sobre las aplicaciones basadas CPU.

Page 19: ARQUITECTURA CUDA

Aplicaciones Finanzas

Usando solo 12 GPUs CUDA, Volera analiza la totalidad de las acciones del mercado de USA en tiempo real

Page 20: ARQUITECTURA CUDA

Aplicaciones Campo de la medicina

El algoritmo “Techiniscan” es utilizado para producir imágenes altamente detalladas de exploración de cáncer

El sistema CUDA es capaz de procesar a un nivel dos veces mas rápido que el algoritmo “Techiniscan”

Page 21: ARQUITECTURA CUDA

Aplicaciones Investigación

Los biólogos computacionales seleccionan un virus, para intentar simular su vida completa

Los investigadores utilizan un programa llamado NAMD, el cual aceleran con CUDA. Para dramáticas aceleraciones en el proceso

Page 22: ARQUITECTURA CUDA

Ventajas Memoria compartida Lecturas dispersas Descargas más rápidas Lecturas más rápidas de y hacia la GPU Soporte para operadores de enteros y bits

Page 23: ARQUITECTURA CUDA

Desventajas Puede existir un cuello de botella entre la

CPU y la GPU por los anchos de banda de los buses y sus latencias, puede ser aliviado con transferencias asíncronas de memoria, manejadas por memoria de acceso directo

CUDA usa un subconjunto del lenguaje C que es libre de recursión y libre de funciones con apuntadores

Page 24: ARQUITECTURA CUDA

Desventajas CUDA no soporta el standard de C

completo, ya que corre código anfitrión a través de un compilador de C++, lo que hace que código valido de C (invalido en C++) falle en compilar

GPUs habilitados con CUDA solo están disponibles en nVidia

Page 25: ARQUITECTURA CUDA

Preguntas Frecuentes ¿Qué tipo de aumento de rendimiento puedo

esperar Utilizando GPU Computing vs CPU-Only Computing?

¿Qué sistemas operativos soporta CUDA? ¿Se puede en CUDA transferir datos y ejecutar

un Kernel en paralelo? ¿CUDA soporta varias tarjetas gráficas en un

mismo sistema? ¿Pueden el CPU y la GPU ejecutarse en

paralelo en CUDA?