Máster Universitario en Informática Gráfica, VideoJuegos y Realidad Virtual

Procesadores Gráficos y Aplicaciones en Tiempo Real

PGATR (Obligatoria de 6 ECTS)

Procesadores Gráficos y Aplicaciones en Tiempo Real

RESUMEN:

  • Asignatura: Obligatoria
  • Nº de créditos: 6
  • 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…).
  • Blog de la asignatura (Noticias): Zest for Graphics

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 [PDF]

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 [PDF]
  • Etapa de Transformación e implementación en hardware:
  • 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, que se puede cursar de forma optativa, 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:

  1. Shader de San Valentin (obligatoria): [Enunciado] [Video]
  2. Shader de Gaudí (obligatoria): [Enunciado]
  3. Shader de teselación / geometría estilo Gaudi (opcional) [Enunciado]
  4. Box Filter (obligatoria) en CUDA. [Enunciado]
  5. Mapeo tonal (obligatoria) en CUDA. [Enunciado]

NORMATIVA:

Procesadores Gráficos y Aplicaciones en Tiempo Real forma parte de un grupo de 3 asignaturas del segundo semestre que siguen una dinámica conjunta en cuanto a la distribución de contenidos didácticos y pruebas de evaluación. Junto con Animación y Simulación Avanzada y Rendering Avanzado se da la opción de cursar una de ellas de forma completa (parte obligatoria + parte opcional), y en las otras dos sólo se exigen los contenidos y pruebas de la parte obligatoria.

En general, la asignatura que se elija como completa, además de contenidos más avanzados y prácticas extras, requiere la realización de un proyecto de investigación parcialmente guiado en el contexto de la asignatura elegida. Este trabajo puede adecuarse a los intereses del alumno de modo que suponga un primer paso en el Proyecto de Fin de Máster.

  • Clases teóricas
    • Las clases presenciales no son obligatorias, si bien se recomienda la asistencia, ya que los temas tratados en la asignatura son avanzados y sólo una pequeña fracción de lo explicado en clase se recoge en las transparencias.
    • Es posible asistir a las clases teóricas de la asignatura en calidad de oyente aunque se haya convalidado o no se curse la asignatura siempre que se esté matriculado del Máster.
    • Aquellas charlas y conferencias que se consideren de gran interés podrán ser objeto de preguntas en el examen teórico y fuente de ideas para los proyectos. Se habilitarán los recursos necesarios para su visualización.
  • Laboratorios
    • El criterio más importante es la funcionalidad:  una práctica o proyecto modesto será evaluada mucho más favorablemente que un “proyecto” ambicioso que sólo da core-dumps. Los siguientes criterios que se tendrán en cuenta son:
      • La manera de resolver el problema con el programa
      • Estructuras de datos y diseño de los algoritmos
      • Claridad y documentación en el código
      • Eficiencia y elegancia en la implementación.
    • Se procura alentar el diálogo y el trabajo en equipo, pero por favor trabajad de forma independiente (a menos que el trabajo sea en grupos).

PROYECTO DE LA ASIGNATURA:

  • Cada grupo (pareja) tendrá que realizar un proyecto fuertemente relacionado con la arquitectura de los procesadores de las tarjetas gráficas.
  • Este año se propone un proyecto genérico para todos los grupos, relacionado con mapeado de fotones en tiempo real con CUDA y OptiX. También es posible proponer otros proyectos que tengan una dificultad y relación con la asignatura equivalentes, tanto de carácter gráfico como de computación de altas prestaciones.

CÓDIGO DE HONOR:

El código que se entregue en las prácticas debe contener únicamente: código escrito sólo por ti y tus compañeros de grupo, código escrito por tí en prácticas previas o con el permiso de los estudiantes involucrados en los grupos a los que hayas pertenecido previamente, y el código de las librerías permitidas para cada una de las prácticas. En el caso del proyecto de investigación de la asignatura se pueden utilizar librerías externas con el consentimiento previo de los profesores.

Os animamos a que hableis más allá de vuestro grupo de trabajo sobre temas de diseño, depuración, matemáticas… relacionados con los proyectos (salvo en el caso en el que haya cuestiones especificas en la especificación del proyecto que los hagan susceptibles de evaluación directa). El conjunto del trabajo realizado en esta asignatura refleja vuestra madurez y se espera un comportamiento 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.