MÁSTERES OFICIALES DE LA URJC
-CAMPUS DE MÓSTOLES-


MÁSTER OFICIAL EN INFORMÁTICA GRÁFICA, JUEGOS
Y REALIDAD VIRTUAL


GUÍA DOCENTE DE LA ASIGNATURA: PROCESADORES

GRÁFICOS (GPGPU)

Profesores:

David Miraut Andrés

Óscar David Robles Sánchez

Web: http://www.dac.escet.urjc.es/docencia/GPGPU

http://www.urjc.es/programas_postgrado/index.html


ANTERIOR GUÍA DEL MÁSTER SIGUIENTE


I.- Datos iniciales Arriba Guía del Máster

Código de la asignatura

6000892

Tipo

Optativa

Período de impartición

2º semestre

Créditos

5 créditos

Modalidad de impartición

Presencial

Departamento

DATCCCIA

Prerrequisitos de acceso

Haber cursado la asignatura Informática Gráfica

Conocimientos recomendados

Las nociones de programación de lenguaje C y APIs gráficas (OpenGL).

II.- Objetivos generales Arriba Guía del Máster

Competencias genéricas

­      El alumno será capaz de:

­      Desarrollar el razonamiento crítico, así como agudizar su capacidad de análisis y toma de decisiones para adaptarse a un área del hardware en continuo y rápido cambio.

­      Aprender a resolver problemas en arquitecturas totalmente nuevas, que suponen un fuerte cambio de mentalidad respecto a los procesadores de tipo genérico.

­      Se fomentará la iniciativa y la motivación por la calidad en trabajos abiertos y opcionales en forma de proyectos

Competencias específicas

­      El alumno conocerá:

­      Las técnicas de altas prestaciones que se utilizan en el diseño de arquitecturas para gráficos.

­      Se familiarizará con la arquitectura gráfica clásica de consumo así como las etapas para sintetizar imágenes 2D y 3D en tiempo real y su implementación hardware.

­      El alumno será capaz de:

­      Programar una GPU teniendo en cuenta las restricciones debidas a la arquitectura.

­      Analizar con detalle el equilibrio entre los distintos elementos del sistema gráfico.

­      Evaluar el rendimiento de las arquitecturas para gráficos, identificar los cuellos de botella y minimizarlos.

­      Utilizar las arquitecturas para gráficos en aplicaciones de cálculo intensivo GPGPU

III.- Contenido Arriba Guía del Máster

Temario de la asignatura

Bloque temático

Tema

Apartados

I.-“Introducción”

Tema 1. “Arquitecturas de streaming y tarjetas gráficas”

-Evolución de las arquitecturas de Von Neumann en mejora de prestaciones y cuellos de botella

- Arquitecturas streaming como solución

- El procesador gráfico (GPU)

- Historia de las tarjetas gráficas

- La tarjeta gráfica y sus elementos constitutivos

- Motivación y Capacidad de computo de los chips gráficos (ventajas y limitaciones)

I.- “Cauce gráfico clásico”

Tema 2. “El cauce gráfico y su realización en la GPU”

-Introducción funcional del cauce gráfico

  · Etapa de Transformación

  · Etapa de Rasterizado

  · Etapa de Fragmentos

-Procesadores de streams

  · Pasado: Harvest y pixelPlanes

· Presente: Merrimac, Imagine y Cepos

· Aternativas en silicio: PIM, VIRAM y MIT-RAW

-Cauce gráfico en detalle y su implementación en el hardware de la tarjeta gráfica

Tema 3. “Influencia y evolución de la memoria en arquitecturas gráficas: Caso de estudio NVidia serie 6”

- Características de la memoria en las tarjetas gráficas.

- Evolución y estado actual de la memoria

- Framebuffer y relación con el sistema

- Extrapolación de conceptos de programación clásicos a GPUs: interfaces de memoria

-Influencia de los Shader Models

- Arquitectura de la Serie 6

- Jerarquía y gestión de memoria en la tarjeta

- Técnicas de compresión dinámica de texturas, prebúsqueda (prefetching) y predicción de datos en el bus

- Necesidades de memoria de una aplicación gráfica. Consideraciones en gestión de este recurso.

- Diferencias fundamentales con la arquitectura contemporánea de ATI

Tema 4: “Influencia y evolución de los buses gráficos: Caso de estudio nVIDIA serie 7”

- Introducción al bus gráfico desde el punto de vista del programador: AGP y PCI-E

- El bus gráfico y su influencia en el acceso a memoria del sistema (y las cachés del procesador principal): TurboCache e HiperMemory

- Consideraciones de ancho de banda

- Introducción a soluciones multi-GPU presentes en el mercado de consumo: SLI y CrossFire

- Mercado y presiones de los diseñadores de chips gráficos

- Caso de estudio: NVidia Serie 7 y RSX

- Diferencias principales con la arquitectura equivalente de ATI

- Influencia de la frecuencia de funcionamiento de los distintos componentes en el rendimiento y consumo

- Aspectos de segmentación y superescalaridad en el chip gráfico

- Programación de la GPU de la forma “clásica”

 

Tema 5. “Análisis de rendimiento y búsqueda de cuellos de botella”

- Herramientas de profiling y análisis de rendimiento, uso y aplicación en shaders: NVPerfHUD, NVPerfKit, NVShaderPerf, gDEBugger…

- Benchmarks  y análisis neutral: Estado del arte y diseño

- Caso práctico en shaders multipasada

II.-“Arquitectura unificada”

Tema 6. “Introducción a la arquitectura unificada”

- Análisis de las causas que nos han llevado al nuevo modelo

  · Restricciones del modelo anterior

  · DirectX 10

  · Equilibrado de carga

- Acercamiento desde el punto de vista de la programación GPGPU

- Bloques y hebras

- Modelo distribuido de memoria

- Ejemplos ilustrativos de la API de CUDA para entender la arquitectura

  · Reserva de memoria a distintos niveles

  · Transferencia de bloques de memoria (comunicación)

  · Limitaciones de las funciones

  · Creación de hebras

  ·Multiplicación de matrices

Tema 7. “Arquitectura unificada y modelo de memoria”

-Las dos personalidades del procesador gráfico

-Limitaciones debidas a la “herencia” gráfica y cómo se solucionan

-Espacios y arquitectura de memoria

-Procesadores SIMD

-Modelo de ejecución: hebras, warps y bloques

-Consideraciones de utilización de los espacios de memoria

-Relación HW-SW de la API de CUDA

-Compilación, linkado y emulación

 

Tema 8. “Arquitectura unificada en detalle. Caso práctico serie 8 nVIDIA”

- Introducción y terminología

- Arquitectura de los arrays de procesadores streaming

- Cluster de procesadores de texturas

- Multiprocesadores streaming

  · Buffer de instrucciones

  · Scoreboarding de instrucciones

  · Ramificación: efectos y consecuencias

  · Sincronización

  · File register del procesador streaming

  · Constantes

  · Memoria compartida

  · Cauces de ejecución

  · Precauciones con el acceso a memoria de texturas

- Máquina virtual PTX  y traducción del código

- Factores a tener en cuenta en el rendimiento

Tema 9. “Conceptos básicos de programación paralela en procesadores masivamente paralelos”

-Introducción y retos

-Búsqueda de la concurrencia en el problema

  · Introducción

  · Descomposición en tareas

  · Descomposición en datos

  · Ejemplo: multiplicación de matrices

  · Agrupación de tareas y orden

  · Compartición de datos

  · Diseño y evaluación

  · Ejemplos:

    + Multiplicación de matrices

    + MPEG

    + Dinámica molecular

-Estructuración del algoritmos en paralelo

  · Estrategias

  · Ejemplo: MPEG

    + Paralelismo de datos

    + Fusión de bucles y localidad de memoria (reducir comunicación)

    + Segmentación (no muy util en CUDA pero sí en CELL)

  · Ejemplo: Dinámica molecular

  · Modelos de computación paralela

-“Estilos” de codificación

  · OpenMP, MPI y CUDA

  · SPMD en detalle

  · Fases del programa en CUDA

    + Ejemplos

-“Estilos” de datos

  · Datos compartidos (CUDA), cola compartida y arrays distribuidos

 

Tema 10. “Aspectos críticos de rendimiento en CUDA”

-Fundamentos

  · Rendimiento de las instrucciones

  · Intensidad aritmética

  · Desviaciones respecto al IEEE 754

  · Control del flujo

  · Instrucciones de memoria

  · Ancho de banda

  · Transferencias entre host y device

-Estrategias

  · Optimizaciones de threads por bloques

  · Conflictos entre bancos

  · “Fusión” de accesos a memoria

  · Precisión y exactitud en la serie 8 de nVIDIA

Tema 11. “Nuevas tendencias”

-Aspectos avanzados de arquitectura de CPUs: puentes a la integración CPU-GPU

  · Procesadores “matriciales” de Intel:

  · Fusion de ATI

-Serie 9 de nVIDIA

-R600 de ATI y Close to Metal

-Tarjetas y middleware para cálculo de simulación de efectos gráficos basados en física (Ageia, Havok…)

-RPUs (Raytracing processing units)

   Lecturas obligatorias (evaluables)

Título

Procesadores gráficos para PC

Autor

Manuel Ujaldón Martínez

Editorial

Ciancia-3

Título

GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation

Autor

Mat Pharr y Radima Fernando

Editorial

Addison-Wesley Professional

 Prácticas o actividades obligatorias (evaluables)

Bloque de prácticas 1

guiadas

Práctica 1

Familiarización con el lenguaje de programación Cg

Práctica 2

Iluminación phong y goraud en Cg (y CgFX)

Práctica 3

Sombreado avanzado: mapas de bultos

Programa completo en OpenGL y Cg

Bloque de prácticas 2

guiadas

Práctica 4

Familiarización con la extensión del lenguaje C de CUDA

Práctica 5

Multiplicación básica de matrices

Práctica 6

Convolución 2D y algoritmo scan básico

Práctica 7

Multiplicación de matrices por bloques: manejo de memoria compartida

Práctica 8

Convolución 2D y scan avanzados.

Comunicación entre APIs gráficas y CUDA

Explicación práctica de mejora de eficiencia y rendimiento en CUDA

Proyecto final de la asignatura

 

IV.- Bibliografía Arriba Guía del Máster

General

Título

Procesadores gráficos para PC

Autor

Manuel Ujaldón Martínez

Editorial

Ciancia-3

Título

GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics

Autor

Radima Fernando

Editorial

Addison-Wesley Professional

Título

GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation

Autor

Mat Pharr y Radima Fernando

Editorial

Addison-Wesley Professional

Título

GPU Gems 3

Autor

Hubert Nguyen

Editorial

Addison-Wesley Professional

 

Por temas

BLOQUE 1

Introducción

Título

Stream Processor Architecture

Autor

Scott Rixner

Editorial

Springer

Título

Computer Architecture, Fourth Edition: A Quantitative Approach

Autor

John L. Hennessy y David A. Patterson

Editorial

Morgan Kaufmann

BLOQUE 2

Cauce gráfico clásico

Título

GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation

Autor

Mat Pharr y Radima Fernando

Editorial

Addison-Wesley Professional

Título

GeForce 6 Series Technical Briefs

Autor

nVIDIA

Editorial

nVIDIA Corporation

Título

Procesadores gráficos para PC

Autor

Manuel Ujaldón Martínez

Editorial

Ciencia-3

Título

Real-Time Shader Programming

Autor

Ron Fosner

Editorial

Morgan Kaufmann

Título

Advanced Graphics Programming Using OpenGL

Autor

Tom McReynolds y David Mlythe

Editorial

Morgan Kaufmann Publisher

Título

OpenGL Shading Language (2nd Edition)

Autor

Randi J. Rost

Editorial

Addison-Wesley

Título

Real-Time Rendering Tricks and Techniques in DirectX

Autor

Nelly Dempski

Editorial

Premier Press

Título

The Cg tutorial. The definitive guide to programmable Real-Time graphics

Autor

Randima Fernando y Mark J. Kilgard

Editorial

Addison-Wesley Professional

BLOQUE 3

Arquitectura unificada

Título

nVIDIA GeForce 8800 GPU Architecture Overview. Technical Brief.

Autor

nVIDIA

Editorial

nVIDIA Corp.

Título

GPU Shading and Rendering (SIGGRAPH 2007 Course Notes)

Autor

Marc Olando et al.

Editorial

IEEE

 Direcciones web de interés

http://zestforgraphics.bitacoras.com/

http://www.codepixel.com/

http://www.gamedev.net/

http://www.shadertech.com/

http://www.gamasutra.com/

http://www.matbe.com/articles/lire/29/architecture-et-fonctionnement-d--un-gpu/page1.php

http://en.wikipedia.org/wiki/SIGGRAPH

http://developer.nvidia.com/page/home.html

http://www.ati.com/developer/

http://www.tomshardware.com/graphics/index.html

http://www.gpgpu.org

http://www.pouet.net/

 

 

V.- Tiempo de trabajo Arriba Guía del Máster


VI.- Metodología y plan de trabajo Arriba Guía del Máster

Clases teóricas

Fecha

Temas

Metodología

Semana 1

Tema 1. “Arquitecturas de streaming y tarjetas gráficas”

Técnica expositiva apoyada en material audiovisual: transparencias, demostraciones y vídeos. Modelo participativo.

Semana 2

Tema 2. “El cauce gráfico y su realización en la GPU”

Semana 3

Tema 3. “Influencia y evolución de la memoria en arquitecturas gráficas: Caso de estudio NVidia serie 6”

Semana 4

Semana 5

Tema 4: “Influencia y evolución de los buses gráficos: Caso de estudio nVIDIA serie 7”

Semana 6

Tema 5. “Análisis de rendimiento y búsqueda de cuellos de botella”

Semana 7

Tema 6. “Introducción a la arquitectura unificada”

Semana 8

Tema 7. “Arquitectura unificada y modelo de memoria”

Semana 9

Tema 8. “Arquitectura unificada en detalle. Caso práctico serie 8 nVIDIA”

Semana 10

Semana 11

Tema 9. “Conceptos básicos de programación paralela en procesadores masivamente paralelos”

Semana 12

Semana 13

Tema 10. “Aspectos críticos de rendimiento en CUDA”

Semana 14

Tema 11. “Nuevas tendencias”

 Clases prácticas

Fecha

Temas

Metodología

Semana 3

Familiarización con el lenguaje de programación Cg

Proyectos de aprendizaje y experimentación guiados.

Semana 4

Iluminación phong y goraud en Cg (y CgFX)

Proyectos de aprendizaje y experimentación guiados.

Semana 5

Sombreado avanzado: mapas de bultos

Programa completo en OpenGL y Cg

Proyectos de aprendizaje y experimentación guiados.

Semana 7

Familiarización con la extensión del lenguaje C de CUDA

Proyectos de aprendizaje y experimentación guiados.

Semana 13

Explicación práctica de mejora de eficiencia y rendimiento en CUDA

Proyectos de aprendizaje y experimentación guiados.

Semana 15

Exposición del proyecto final de la asignatura

Proyectos de aprendizaje y experimentación.

 Clases de problemas

Fecha

Temas

Metodología

Semana 8

Multiplicación básica de matrices

Problemas guiados.

Semana 9

Convolución 2D y algoritmo scan básico

Problemas guiados.

Semana 13

Multiplicación de matrices por bloques: manejo de memoria compartida

Problemas guiados.

Semana 14

Convolución 2D y scan avanzados.

Comunicación entre APIs gráficas y CUDA

Problemas guiados.

  Tutorías

 Otras actividades


VII.- Métodos de evaluación Arriba Guía del Máster

Criterio

Ponderación

Fecha

Temas / Contenido

Examen escrito

50%

Final de semestre

Temas 1 al 9

Asistencia a clase

5%

-

-

Actividades fuera del aula

5%

-

Sesiones con vídeos de conferencias y seminarios de interés.

Situaciones de prueba

40%

Durante el curso y al final del semestre

Trabajos prácticos de la asignatura y proyectos.

VIII.- Profesorado Arriba Guía del Máster

Nombre y apellidos

Óscar David Robles Sánchez

Departamento/área de conocimiento

Arquitectura y Tecnología de Computadores y Ciencia de la Computación e Inteligencia Artificial

Categoría

Titular de Universidad Interino

Universidad

Rey Juan Carlos

Titulación Académica

Doctor en Informática por la Universidad Politécnica de Madrid

Experiencia Docente

Impartición de diversas asignaturas troncales y obligatorias en las diferentes titulaciones con presencia de asignaturas de informática en la Universidad Rey Juan Carlos desde Noviembre de 2002. Cabe destacar la coordinación de Estructura y Tecnología de Computadores en Ingeniería Técnica en Informática de Gestión (campus de Móstoles) desde el curso 2005/06, siendo en la actualidad su único profesor de teoría.

Impartición de diferentes asignaturas optativas y de libre elección en las titulaciones de Informática, relacionadas con los campos de Gráficos y Paralelismo.

Impartición, durante el curso 2006/2007 de la asignatura Técnicas Avanzadas de Gráficos en 3D en el presente Máster.

Experiencia Investigadora

Participación en más de 15 proyectos de investigación, liderando en la actualidad sendos proyectos con las empresas “Acciona Infraestructuras” y “Abadía”.

Más de 20 publicaciones nacionales e internacionales de investigación.

Experiencia profesional

 

Junio 2007 –

Responsable del Máster en Informática Gráfica, Juegos y Realidad Virtual

Octubre 2005 –

Profesor Titular Interino en la URJC.

Noviembre 2002 – Octubre 2005

Profesor Ayudante en la URJC

Noviembre 1999 – Noviembre 2002

Becario para la realización del Doctorado en los Departamentos e institutos de la U. P. M.

 

 

 

Nombre y apellidos

David Miraut

Departamento/área de conocimiento

Arquitectura y Tecnología de Computadores

Categoría

Profesor Ayudante

Universidad

Universidad Rey Juan Carlos

Titulación Académica

Ingeniero de Telecomunicaciones

Experiencia Docente

Profesor ayudante en DATCCCIA dentro del área de Arquitectura y Tecnología de Computadores desde diciembre del año 2005 en la Escuela Superior de Ciencias Experimentales y Tecnología de la Universidad Rey Juan Carlos.

Experiencia Investigadora

2006-actualidad

Miembro del Grupo de Modelado y Realidad Virtual (GMRV)

2003 - 2005

Ingeniero de Software en BLISS (Beamline Instrumentation Software Group) del ESRF (European Synchrotron Radiation Facilities)

2003

Beca de Colaboración. Departamento de Electromagnetismo y Teoria de Circuitos (ETSIT-UPM)

2002

Beca de colaboración en el CNES (Centro Nacional de Estudios Espaciales Frances)

2001 – 2002

Beca de Colaboración. Departamento de Electromagnetismo y Teoria de Circuitos (ETSIT-UPM)

Áreas de interes: Arquitectura y programación de hardware gráfico de  consumo, modelado y representación basados en imagen, fotografía computacional, sistemas catadióptricos e Inverse Rendering. Aplicación de estas áreas de conocimiento a sistemas hardware/software de realidad virtual fotorealistas en tiempo real.

 

Arriba Guía del Máster