ARQUITECTURA CUDA Integrantes: Jose D Apollo

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

El modelo de Von Neumann
Microprocesadores Componentes básicos..
TEMA 1 Introducción a la Programación Concurrente
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
COLEGIO UNIVERSITARIO DE ADMINISTRACION Y MERCADEO
III - Gestión de memoria
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
IBM 360.
Presentación y organización del curso
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
LENGUAJES DE PROGRAMACIÓN
Arquitectura de Computadores I
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Algorítmo de Mapeo Directo
Mejoras a las Máquinas Von Neumann
Composición Interna de un Procesador
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
Arquitectura del Computador
PAULA ANDREA CHAVEZ C. GRADO: PROFESOR: JOSE WILSON QUINTERO
Tema 10: Gestión de Memoria
INTEGRANTES EFREN PADILLA LICETH BUITRAGO LINA STELLA AGUIRRE
Administración de Memoria Memoria Virtual
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
SOFTWARE DE PROGRAMACIÓN
Manejo de Memoria en CUDA (I)
Overview Sistemas Computacionales
Vamos a poner una especial atención al SO. Puesto que es el programa por excelencia dentro del software. En el se basan el resto de programas de un soft.
LA HISTORIA DE LOS COMPUTADORES
LOS SISTEMAS OPERATIVOS
Alejandro Samarín Lionel Aster Mena García Sergio Armas Pérez.
SISTEMAS OPERATIVOS.
GPUs Rayco González Sicilia Microprocesadores para Comunicaciones 5º ETSIT.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
¿Qué unidades conforman el procesador?
Arquitectura y Ensamblaje de Computadores
BENCHMARKING.
UNIVERSIDAD JUAREZ DEL ESTADO DE DURANGO COLEGIO DE CIENCIAS Y UMANIDADES COMPUTACION 1 Nombre: Karla Daniela Jara Bruciaga Grupo: G Matricul:
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Memoria virtual.
“Organización y Arquitectura de Computadores” William Stallings
Alejandro Samarín Lionel Aster Mena García Sergio Armas Pérez.
Sistemas Operativos Avanzados
Tema: Componentes físicos de una computadora
Sistemas Operativos.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Por: Ernesto Y. Soto Rivas G
Tema: Historia de los Microprocesadores
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
LOGO CPU. COMPANY LOGO DEFINICIÓNHISTORIA CPU DE TRANSISTORE S Y DE CIRCUITOS INTEGRADOS DISCRETOS MICROPROCES ADORES OPERACIÓN DEL CPU.
Mónica Quintana Pineda
PROPUESTA POWER POINT PELICULAS Agustín Riesgo 1ª Manuel Madrid.
ALMACENAMIENTO DE DATOS. Son componentes que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman lamemoria o almacenamiento.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
SISTEMAS OPERATIVOS Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
DISCOS RAID (Redundant Array of Independent Disks)
Compilador Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa.
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Resolución de problemas Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Es un antivirus gratuito basado en cloud computing, especialmente diseñados para ofrecer protección desde la nube. Es un software de protección, como los.
ANTIVIRUS CLOUD COMPUTING. Los antivirus cloud o antivirus en la nube, son antivirus que aplican a los antivirus el concepto cloud computing. Instalan.
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Transcripción de la presentación:

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

¿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.

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.

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.

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.

CPU vs GPU

CPU vs GPU Ejemplo: Mithbusters

¿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).

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.

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.

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

Hilos y bloques tienen identificadores únicos. Todos los hilos en un bloque pueden compartir datos a través de “Memoria compartida”.

Modelo de Memoria Host Block (0,0) Shared Memory Block (1,0) Registers Global Memory Constant Texture Block (0,0) Shared Memory Registers Local Thread (0,0) Thread (1,0) Block (1,0) Host

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

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

Modelo de Memoria Registro: Memoria Compartida: 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

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

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.

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

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”

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

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

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

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

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?