Tarjetas Gráficas y Aceleradores

Usted está aquí

Créditos
6
Tipos
Optativa
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
AC
En esta asignatura los estudiantes estudiarán en profundidad el funcionamiento de una tarjeta gráfica actual. Haciendo especial hincapié en sus puntos fuertes y en sus limitaciones arquitectónicas.También se estudiará la creciente relación de estos dispositivos con la Supercomputación y los nuevos aceleradores que están apareciendo en el mercado.

Profesores

Responsable

  • Agustin Fernández Jiménez ( )

Otros

  • Beatriz Otero Calviño ( )
  • Daniel Jimenez Gonzalez ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.4
Aprendizaje autónomo
5.6

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT1 - Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática y a sus disciplinas de referencia.
    • CT1.1B - Interpretar, seleccionar y valorar conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática y su aplicación a partir de los fundamentos matemáticos, estadísticos y físicos necesarios. CEFB2. Capacidad para comprender y dominar los fundamentos físicos y tecnológicos de la informática: electromagnetismo, ondas, teoría de circuitos, electrónica y fotónica y su aplicación para la resolución de problemas propios de la ingeniería.
  • CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
    • CT6.2 - Demostrar conocimiento, comprensión y capacidad de evaluar la estructura y la arquitectura de los computadores, así como los componentes básicos que los conforman.
    • CT6.3 - Demostrar conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos que permita su uso adecuado, administración y diseño, así como la implementación de aplicaciones basadas en sus servicios.
  • CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
    • CT7.1 - Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
    • CT7.2 - Evaluar sistemas hardware/software en función de un criterio de calidad determinado.

Competencias Transversales

Comunicación eficaz oral y escrita

  • G4 [Avaluable] - Comunicar de forma oral y escrita con otras personas conocimientos, procedimientos, resultados e ideas. Participar en debates sobre temas propios de la actividad del ingeniero técnico en informática.
    • G4.2 - Utilizar estrategias para preparar y llevar a cabo las presentaciones orales y redactar textos y documentos con un contenido coherente, una estructura y un estilo adecuados y un buen nivel ortográfico y gramatical. Hacer una presentación oral ante un auditorio restringido. Escoger adecuadamente los contenidos, el estilo, la temporización y el formato de la presentación. Capacidad de comunicación efectiva con el usuario en un lenguaje no técnico así como de comprender sus necesidades.

Competencias Técnicas de cada especialidad

Especialidad ingeniería de computadores

  • CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
    • CEC2.1 - Analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y la ejecución de aplicaciones y servicios informáticos.
    • CEC2.2 - Programar considerando la arquitectura hardware, tanto en ensamblador como en alto nivel.
  • CEC3 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
    • CEC3.1 - Analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.

Especialidad de computación

  • CCO2 - Desarrollar de forma efectiva y eficiente los algoritmos y el software apropiados para resolver problemas complejos de computación.
    • CCO2.6 - Diseñar e implementar aplicaciones gráficas, de realidad virtual, de realidad aumentada y videojuegos.
  • CCO3 - Desarrollar las soluciones informáticas que, considerando el entorno de ejecución y la arquitectura del computador sobre el cual se ejecutan, consigan el mejor rendimiento.
    • CCO3.1 - Implementar código crítico siguiendo criterios de tiempo de ejecución, eficiencia y seguridad.
    • CCO3.2 - Programar considerando la arquitectura hardware, tanto en ensamblador como en alto nivel.

Objetivos

  1. Conocer en profundidad el funcionamiento de una tarjeta gráfica
    Competencias relacionadas: CT7.2, CEC2.2, CEC3.1, CCO3.2,
  2. Conocer las limitaciones de una tarjeta gráfica en la ejecución de aplicaciones de propósito general.
    Competencias relacionadas: CEC2.1, CT7.1, CT7.2,
  3. Conocer las técnicas básicas para implementar aplicaciones de propósito general en una tarjeta gráfica.
    Competencias relacionadas: G4.3, CT6.3, G4.2, CEC2.2, CCO3.1, CCO3.2, G7.3, CT1.1B,
  4. Conocer las posibilidades que ofrece una tarjeta gráfica para implementar aplicaciones gráficas no interactivas.
    Competencias relacionadas: G4.3, CCO2.6, CT6.3, G4.2, CEC2.2, CCO3.1, CCO3.2, G6.2, G7.3,
  5. Dados unos requerimientos de rendimiento, evaluar cual es la mejor alternativa hardware para alcanzarlos.
    Competencias relacionadas: CEC2.1, CT6.3, CT7.1, CT7.2, CT6.2, CEC3.1, CT1.1B,

Contenidos

  1. Tema 1: Introducción
    - Historia de las Tarjetas Gáficas

    - El pipeline gráfico
  2. TEMA 2: Componentes fundamentales de una tarjeta gráfica
    - Shaders
    - Rasterización
    - Texturas
    - Antialiasing
    - Z-Buffer
  3. TEMA 3: Ejemplos Comerciales -
    Evolución Histórica del hardware gráfico
    - Ejemplos Clásicos
    - Actuales
  4. TEMA 4: Computación de Altas Prestaciones
    - CPU vs GPUs
    - Supercomputación y GPUs
    - Paradigmas de computación/paralelismo
    - Sistemas MultiGPU
    - Aceleradores
  5. TEMA 5: Aspectos Software
    - GPGPU
    - CUDA
    - OpenGL
    - DirectX
    - Shader Assembly and Shading Languages
  6. TEMA 6: Aspectos Tecnológicos
    - Refrigeración
    - Overclocking
    - Benchmarking
    - Buses
    - Conectores

Actividades

Actividad Acto evaluativo


Examen Final

Es un examen no presencial. Alrededor de la semana 13 se entregará el examen en horario de clase. Los estudiantes tienen 2 semanas para realizar el examen. Cada pregunta de examen tiene un espacio limitado para responder. Las respuestas han de ser concisas, claras y correctas.
Objetivos: 1 2 3 4 5
Semana: 13
Tipo: examen final
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
12h

CUDA

Se presentarán las herramientas básicas que ofrece CUDA para la programación de tarjetas gráficas.
Objetivos: 3
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
10h
Aprendizaje dirigido
0h
Aprendizaje autónomo
14h

Pipeline gráfico

Descripción exhaustiva del pipeline gráfico.
Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Ejemplos Comerciales

Se presentarán diversos ejemplos de tarjetas gráficas comerciales, con el objetivo de entender el diseño actual de las mismas.
Objetivos: 1 2 5
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

GPGPU

Describir las técnicas clásicas de GPGPU y cómo sus limitaciones han influido en el diseño de las nuevas arquitecturas y lenguajes de programación.
Objetivos: 2 3
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

OpenCL

Descripción del lenguaje.
Objetivos: 3
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Proyecto

Implementación de un proyecto software.
Objetivos: 1 2 3 4 5
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
10h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20h

Componentes fundamentales de una tarjeta gráfica

Se presentarán algunos elementos fundamentales de una tarjeta gráfica: unidad de texturas, memoria, z buffer, ...
Objetivos: 1 2 3 4
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

CPUs vs GPUs

Se presentarán las diferencias esenciales entre una CPU y una GPU.
Objetivos: 1 5
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Shading Languages

Descripción de las características básicas de los Lenguajes de programación de los shaders, en alto y bajo nivel.
Objetivos: 1 3 4
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Historia

Visión histórica de la evolución de las tarjetas gráficas, desde el primer PC hasta hoy.
Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Charlas

Durante el curso, y dependiendo de la disponibilidad, se impartirán charlas de temas afines.
Objetivos: 1 2 3 4 5
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Metodología docente

Hay dos tipos de clases: clases de teoría y de laboratorio.

Durante las primeras semanas no se realizarán clases de laboratorio.

Las clases de teoría serán expositivas por parte del profesor, incluyendo conceptos teóricos, ejemplos prácticos y resolución de ejercicios formativos.

Las clases de laboratorio serán de dos tipos: las primeras clases serán dirigidas, orientadas a conocer las herramientas y los lenguajes de programación utilizados; las siguientes clases estarán orientadas a la realización de un pequeño proyecto.

Además, dependiendo de las disponibilidades de cada curso, se harán conferencias a cargo de expertos.

Método de evaluación

50% Examen NO presencial
50% Laboratorio

El Examen NO presencial se realizará a final de curso. El enunciado se entregará en clase y se devolverá resuelto pasados unos 10 días. Es una prueba individual que deberá realizarse a mano en las hojas de examen repartidas por el profesor.

La nota de laboratorio se obtiene a partir de las notas de seguimento de las sesiones de prácticas que elabora cada profesor y de la evaluación del proyecto. Para evaluar el proyecto los estudiantes deberán entregar una memoria escrita.

Bibliografía

Básica:

Capacidades previas

Conocimientos básicos sobre arquitectura de computadores.
Conocimientos básicos sobre gráficos.