Procesadores Gráficos y Aplicaciones en Tiempo Real – I
Procesadores Gráficos y Aplicaciones en Tiempo Real – I
RESUMEN:
- Asignatura: Obligatoria
- Nº de créditos: 4
- Cuatrimestre: Segundo
- Conocimientos recomendados: haber cursado Gráficos 3D, Realidad Virtual e Interacción, así como tener nociones de lenguaje C, OpenGL y matemáticas básicas (álgebra lineal…).
PRESENTACIÓN
Los procesadores gráficos modernos, que podemos encontrar en las tarjetas gráficas para PC y en las consolas, tienen arquitecturas muy sofisticadas que explotan las ideas de paralelismo de una forma innovadora y poco convencional. Con múltiples procesadores especializados y un extraordinario ancho de banda son capaces de mantener velocidades de cálculo sostenidas al menos un orden de magnitud por encima de las CPUs más avanzadas. Las prestaciones y funcionalidad de las GPUs crecen a un ritmo superior al marcado por el incremento de la densidad de integración de la ley de Moore.
Aunque su aplicación principal es la representación tridimensional de escenas en tiempo real y este incremento les ayuda a dar vida a entornos cada vez más realistas y complejos, sus capacidades los hacen muy atractivos en otros campos como potentes coprocesadores de bajo coste (cálculo científico, imagen médica, visión artificial…).
Para poder obtener el mejor rendimiento en nuestras aplicaciones (gráficas) es necesario conocer en cierto detalle la arquitectura de las plataformas en las que se vayan a ejecutar. Los profesionales más valorados (en parte por su escasez) son aquellos que saben conjugar la facilidad de análisis y desarrollo con el buen uso de los recursos, ya que esta suele ser la llave para un producto de éxito.
En esta asignatura se estudiará la arquitectura de los chips gráficos y el resto de elementos de la tarjeta gráfica, su evolución como cauce clásico y las nuevas tendencias en la arquitectura unificada. La Universidad cuenta con con la distinción CUDA Teaching Center. que reconoce el esfuerzo del profesorado del Máster por impartir en sus programas docentes materia íntimamente ligada con la tecnología de NVIDIA. El planteamiento es eminentemente práctico, por lo que las clases teóricas, en las que se explicarán los fundamentos hardware que sirven de pilares a esta tecnología, se complementan con multitud de ejercicios y prácticas en el laboratorio, en los que se ilustrará cómo se programan estos chips para sacar partido de toda su capacidad potencial.
Además, los alumnos tendrán la oportunidad de poner en práctica sus conocimientos y adquirir un primer contacto en el campo de la investigación mediante la realización de un proyecto aplicado con un fuerte carácter en arquitectura.
TEMARIO:
Presentación
La primera parte de la asignatura nos sirve para introducir el estado actual de la tecnología en tarjetas gráficas. Este primer contacto nos ayudará a orientarnos en el contexto de un mundo muy cambiante. También se hace un breve recorrido a lo largo de los distintos modelos de programación paralela y la forma en la que se enfoca el diseño de algoritmos y sistemas a gran escala.
- Introducción a las Arquitecturas Masivamente Paralelas
- Modelos de programación paralela y estrategias de diseño
El segundo bloque de la asignatura es mucho más amplio. En él se profundiza en la implementación hardware del cauce gráfico clásico y en su programación desde el punto de vista gráfico.
- Arquitecturas streaming y cauce gráfico clásico
- Etapa de Transformación e implementación en hardware:
- Shaders de vértices
- Shaders de geometría
- Shaders de teselación
- Etapa de Rasterizado e implementación en hardware
- Etapa de Sombreado e implementación en hardware
- Evolución de la memoria de vídeo y la comunicación de la tarjeta gráfica
- Consideraciones en el diseño de la arquitectura del chip gráficos
- Compute Shaders en el cauce gráfico
En la tercera parte de la asignatura se aprenderá a reestructurar el diseño de los algoritmos y aplicaciones para que aprovechen las ventajas de los multiprocesadores. Veremos las causas que han dado origen a la arquitectura unificada y se estudiara a muy bajo nivel para poder explotar su potencial en aplicaciones GPGPU.
- Origen e introducción a la Arquitectura Unificada
- CUDA modelo de programación y jerarquía de memoria
- Arquitectura unificada en detalle. Caso de estudio
- Optimizaciones en CUDA y Máquina Virtual PTX
- Técnicas algorítmicas avanzadas en CUDA + Fermi y Kepler
- Desarrollo de aplicaciones CUDA
- Patrones y técnicas de paralelismo en CUDA
- Utilización de CUDA mediante librerías, motores y herramientas
El último bloque didáctico, pretende dar una visión mas amplia del futuro a corto plazo en este tipo de tecnologías: la inmediata evolución de los procesadores manycore, cómo los sistemas gráficos pueden conformar sistemas más complejos incluyendo centros de supercomputación y granjas de render.
- OpenCL
- Granjas de render
- Consumo y móviles
PRÁCTICAS
- Shader de San Valentin (obligatoria)
- Shader de Gaudí (obligatoria)
- Shader de teselación / geometría estilo Gaudi (opcional)
- Box Filter (obligatoria) en CUDA.
- Mapeo tonal (obligatoria) en CUDA.
NOamiento profesional. Podéis preguntar respecto a cuál es la conducta adecuada en un caso específico. Si accidentalmente habéis transgredido el código de honor es importante que lo discutáis inmediatamente con alguno de los profesores para evitar un malentendido.