Pasar al contenido principal

Tarjetas Gráficas y Aceleradores

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.

Profesorado

Responsable

Otros

Horas semanales

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

Competencias

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

    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
      - Ejemplos Actuales
    4. TEMA 4: Computación de Altas Prestaciones
      - CPUs 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
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    CUDA

    Se presentarán las herramientas básicas que ofrece CUDA para la programación de tarjetas gráficas.
    Objetivos: 3
    Contenidos:
    Teoría
    6h
    Problemas
    0h
    Laboratorio
    14h
    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
    5h

    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 con GPUs.
    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
    5h

    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ásico

    Capacidades previas

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