Graphic Cards and Accelerators

You are here

Credits
6
Types
Elective
Requirements
This subject has not requirements, but it has got previous capacities
Department
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.

Teachers

Person in charge

  • Agustin Fernández Jiménez ( )

Others

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

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0.4
Autonomous learning
5.6

Competences

Technical Competences

Common technical competencies

  • CT1 - To demonstrate knowledge and comprehension of essential facts, concepts, principles and theories related to informatics and their disciplines of reference.
    • CT1.1B - To demonstrate knowledge and comprehension about the fundamentals of computer usage and programming. Knowledge about the structure, operation and interconnection of computer systems, and about the fundamentals of its programming.
  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
    • CT6.3 - To demonstrate knowledge about the characteristics, functionalities and structure of the Operating Systems allowing an adequate use, management and design, as well as the implementation of applications based on its services.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
    • CT7.2 - To evaluate hardware/software systems in function of a determined criteria of quality.

Transversal Competences

Effective oral and written communication

  • G4 [Avaluable] - To communicate with other people knowledge, procedures, results and ideas orally and in a written way. To participate in discussions about topics related to the activity of a technical informatics engineer.
    • G4.2 - To use strategies to prepare and perform oral presentations and write texts and documents with a coherent content, adequate structure and style and a good orthographic and grammatical level. To perform an oral presentation in front of a limited audience. To choose properly the contents, style, timing and format of the presentation. To be capable of communicating effectively with the user in a non-technical language, and understand its needs.

Technical Competences of each Specialization

Computer engineering specialization

  • CEC2 - To analyse and evaluate computer architectures including parallel and distributed platforms, and develop and optimize software for these platforms.
    • CEC2.1 - To analyse, evaluate, select and configure hardware platforms for the development and execution of computer applications and services.
    • CEC2.2 - To program taking into account the hardware architecture, using assembly language as well as high-level programming languages.
  • CEC3 - To develop and analyse hardware and software for embedded and/or very low consumption systems.
    • CEC3.1 - To analyse, evaluate and select the most adequate hardware and software platform to support embedded and real-time applications.

Computer science specialization

  • CCO2 - To develop effectively and efficiently the adequate algorithms and software to solve complex computation problems.
    • CCO2.6 - To design and implement graphic, virtual reality, augmented reality and video-games applications.
  • CCO3 - To develop computer solutions that, taking into account the execution environment and the computer architecture where they are executed, achieve the best performance.
    • CCO3.1 - To implement critical code following criteria like execution time, efficiency and security.
    • CCO3.2 - To program taking into account the hardware architecture, using assembly language as well as high-level programming languages.

Objectives

  1. Conocer en profundidad el funcionamiento de una tarjeta gráfica
    Related competences: 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.
    Related competences: 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.
    Related competences: 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.
    Related competences: 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.
    Related competences: CEC2.1, CT6.3, CT7.1, CT7.2, CT6.2, CEC3.1, CT1.1B,

Contents

  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

Activities

Activity Evaluation act


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.
Objectives: 1 2 3 4 5
Week: 13
Type: final exam
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h

CUDA

Se presentarán las herramientas básicas que ofrece CUDA para la programación de tarjetas gráficas.
Objectives: 3
Contents:
Theory
4h
Problems
0h
Laboratory
10h
Guided learning
0h
Autonomous learning
14h

Pipeline gráfico

Descripción exhaustiva del pipeline gráfico.
Objectives: 1 2
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
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.
Objectives: 1 2 5
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
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.
Objectives: 2 3
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

OpenCL

Descripción del lenguaje.
Objectives: 3
Contents:
Theory
4h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Proyecto

Implementación de un proyecto software.
Objectives: 1 2 3 4 5
Contents:
Theory
0h
Problems
0h
Laboratory
10h
Guided learning
0h
Autonomous learning
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, ...
Objectives: 1 2 3 4
Contents:
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

CPUs vs GPUs

Se presentarán las diferencias esenciales entre una CPU y una GPU.
Objectives: 1 5
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
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.
Objectives: 1 3 4
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Historia

Visión histórica de la evolución de las tarjetas gráficas, desde el primer PC hasta hoy.
Objectives: 1
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Charlas

Durante el curso, y dependiendo de la disponibilidad, se impartirán charlas de temas afines.
Objectives: 1 2 3 4 5
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Teaching methodology

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.

Evaluation methodology

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.

Bibliography

Basic:

Previous capacities

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