130 likes | 306 Views
Presentación y organización del curso. Presentación del curso. David Miraut Marcos García Ricardo Suárez . Contenidos. Profesores Organización del curso Laboratorio. Profesores. Marcos García Lorenzo. David Miraut Andrés. Ricardo Suárez Mesa. Despacho 2011A. Despacho 0051.
E N D
Presentación y organización del curso Presentación del curso David Miraut Marcos García Ricardo Suárez
Contenidos • Profesores • Organización del curso • Laboratorio
Profesores Marcos García Lorenzo David Miraut Andrés Ricardo Suárez Mesa Despacho 2011A Despacho 0051 Ampliación del Rectorado Ampliación del Rectorado david.miraut@urjc.es marcos.garcia@urjc.es
Organización del curso LUNES MARTES MIÉRCOLES JUEVES VIERNES BLOQUE 1 BLOQUE 2 BLOQUE 3 BLOQUE 4 BLOQUE 4 BLOQUE 4 BLOQUE 2 BLOQUE 5 BLOQUE 1: Sistemasparalelos y procesadoresgráficos BLOQUE 2: CUDA Arquitectura y programación BLOQUE 3: Estado del proyecto BLOQUE 4: Prácticas de programación en CUDA BLOQUE 5: Sistemasmasivamenteparalelos Teoría Estado del proyecto Prácticas
BLOQUE 1: Sistemasparalelos y procesadoresgráficos • Introducción a arquitecturas masivamente paralelas - Tipos de procesadores gráficos (GPUs)- Componentes de la tarjeta gráfica- Motivación del uso de estas arquitecturas • Paralelismo en sistemas monoprocesador- Segmentación- Unidades SIMD- Latencia del sistema de memoria (muro de memoria)- Necesidad de la jerarquía de memoria- Estrategias básicas para aumentar la localidad en los algoritmos • Paralelismo en sistemas multiprocesador- Modelos de programación- Memoria compartida- Paso de mensajes- Memoria distribuida- Sistemas SIMD- Sistemas heterogéneos • Procesadores gráficos - Historia y evolución- Retos en el diseño de soluciones gráficas- Cauce gráfico clásico- Arquitecturas streaming- Shaders • Tecnología de memoria de vídeo- Evolución- Estrategias de mejora de ancho de banda- Coste energético • GPGPU Clásica- Uso del cauce clásico para computación genérica- Limitaciones en precisión aritmética- Shadermodels- Ejemplo de arquitectura streaming- Jerarquía de memoria en modo gráfico • Comunicación CPU-GPU- PCI-Express- Sistemas multitarjeta
BLOQUE 2: CUDA Arquitectura y programación • Origen e introducción a la Arquitectura Unificada- Causas que provocan el cambio en arquitectura- Mercado- Selección del hardware en función de los requerimientos de la aplicación- CUDA como arquitectura- CUDA como modelo de programación- Chip G80 a fondo • Programación en CUDA (I)- Modelo SPMD- Organización de la carga computacional- Jerarquía de memoria- Modelo de ejecución- API de CUDA- Compilación, enlazado y depuración • Arquitectura Unificada- Gestión y ejecución de hebras- Influencia del buffer de instrucciones y algoritmos de marcación- Jerarquia de memoria en detalle - RegisterFile - Constantes - Texturas - Memoria compartida - Resolución de conflictos entre bancos- Coalescencia en el acceso a la memoria- Equilibrado entre procesamiento y comunicación- Compromiso entre número de hilos, cantidad de registros y uso de memoria compartida- Ocupación de la GPU- Cuestiones sobre la precisión de las operaciones- Acumulación de errores en coma flotante - Unidades de coma flotante en modelos de alta gama • Programación en CUDA (II)- Máquina virtual PTX- Dependencia entre instrucciones- Control de flujo en la GPU- Divergencia y predicación- Memoria pinned- Multitarjeta- Estrategias de depuración- Interoperatibilidad con APIs gráficas • Librerías de medio nivel- CUBLAS- CUFFT- CUSparse- CURAND- CULATools...
BLOQUE 3: Estado del proyecto • Personal URJC • Estado del proyecto • Visión global • Algoritmos implementados • Extended MD5 • UNRAR Attack • Office Attack • PDF Attack • Estructura de la librería general • Trabajo futuro • Recursos utilizados
BLOQUE 4: Prácticas de programación en CUDA • Instalación del entorno • Ejemplos básicos • Herramientas y depuración • Occupancycalculator • CUDAgdb • Ejemplos avanzados
BLOQUE 5: Sistemasmasivamenteparalelos • Introducción a OpenCL • Ventajas y desventajas de OpenCL • Cómo portar kernels de CUDA a OpenCL • Perspectiva sobre futuras arquitecturas masivamente paralelas • Arquitecturas CPU+GPU • Arquitecturas manycore (Knight'sCorner) • Proyecto Echelon
¿Porquétantoénfasis en Arquitectura? • Los procesadores gráficos que vamos a tratar en esta asignatura tienen una gran capacidad de cálculo“potencial” • Su arquitectura no se parece a nada que se haya visto durante la carrera • Para poder aprovechar “a tope” sus capacidades es necesario conocerlos a bajo nivel y programar consecuentemente Veremos muchas más razones cuando entremos en materia…
Página Web del curso • Calendario de trabajo • Las transparencias • La bibliografía • Enunciados de Prácticas • Enlaces al material necesario para hacerlas • Los datos de contacto de los profesores • Lecturas complementarias
Claseinteractiva • ¿Quiénessois? • ¿Quéosinteresaaprender? • ¿Cúales son vuestrasespectativassobre el curso?