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
In this course, students will study in depth the operation of a current graphics card. With special emphasis on their strengths and architectural limitations, the growing relationship of these devices with Supercomputing and the new accelerators that are appearing on the market will also be studied.

Teachers

Person in charge

  • Agustín Fernández Jiménez ( )

Others

  • Daniel Jimenez Gonzalez ( )
  • Eduard Ayguadé Parra ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
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. Know in depth the operation of a graphics card
    Related competences: CT7.2, CEC2.2, CEC3.1, CCO3.2,
  2. Know the limitations of a graphics card in the execution of general purpose applications.
    Related competences: CEC2.1, CT7.1, CT7.2,
  3. Know the basic techniques to implement general purpose applications on a graphics card.
    Related competences: G4.3, CT6.3, G4.2, CEC2.2, CCO3.1, CCO3.2, G7.3, CT1.1B,
  4. Know the possibilities offered by a graphics card to implement non-interactive graphics applications.
    Related competences: G4.3, CCO2.6, CT6.3, G4.2, CEC2.2, CCO3.1, CCO3.2, G6.2, G7.3,
  5. Given some performance requirements, evaluate which is the best hardware alternative to achieve them.
    Related competences: CEC2.1, CT6.3, CT7.1, CT7.2, CT6.2, CEC3.1, CT1.1B,

Contents

  1. Unit 1 1: Introduction
    - History of Graphics Cards
    - The graphic pipeline
  2. UNIT 2: Components of a graphics card
    - Shaders
    - Rasteritzation
    - Textures
    - Antialiasing
  3. UNIT 3: Commercial Examples
    - Historical evolution of graphic hardware
    - Classic Examples
    - Current Examples
  4. Unit 4: High Performance Computing
    - CPUs vs GPUs
    - Supercomputing and GPUs
    - Paradigms of computing/parallelism
    - Multi-GPU systems
    - Accelerators
  5. Unit 5: Software
    - GPGPU
    - CUDA
    - OpenGL
    - DirectX
    - Shader Assembly and Shading Languages
  6. Unit 6: Technological Aspects
    - Cooling
    - Overclocking
    - Benchmarking
    - Buses
    - Connectors

Activities

Activity Evaluation act


Final exam

It is a remote exam. Around week 13, the exam will be given during class time. Students have 2 weeks to take the exam. Each exam question has a limited space to answer. The answers must be concise, clear and correct.
Objectives: 1 2 3 4 5
Week: 13
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
30h

CUDA

The basic tools offered by CUDA for graphics card programming will be presented.
Objectives: 3
Contents:
Theory
6h
Problems
0h
Laboratory
14h
Guided learning
0h
Autonomous learning
14h

Graphic pipeline

Exhaustive description of the graphic pipeline.
Objectives: 1 2
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
5h

Commercial Examples

Some examples of commercial graphics cards will be presented, with the aim of understanding their current design.
Objectives: 1 2 5
Contents:
Theory
2h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

GPGPU

Describe the classical GPGPU techniques and how their limitations have influenced the design of new architectures and programming languages.
Objectives: 2 3
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

OpenCL

Language description.
Objectives: 3
Contents:
Theory
4h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Project

Implementation of a software project with GPUs.
Objectives: 1 2 3 4 5
Contents:
Theory
0h
Problems
0h
Laboratory
10h
Guided learning
0h
Autonomous learning
20h

Basic components of a graphics card

Some fundamental elements of a graphics card will be presented: texture unit, memory, z buffer, ...
Objectives: 1 2 3 4
Contents:
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
5h

CPUs vs GPUs

The essential differences between a CPU and a GPU will be introduced.
Objectives: 1 5
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Shading Languages

Description of the basic characteristics of the programming languages of the shaders, in high and low level.
Objectives: 1 3 4
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

History

Historical overview of the evolution of graphics cards, from the first PC to today.
Objectives: 1
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Talks

During the course, and depending on availability, talks on related topics will be given.
Objectives: 1 2 3 4 5
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Teaching methodology

There are two types of classes: theory and laboratory classes.

During the first weeks there will be no laboratory classes.

The theory classes will be expository by the teacher, including theoretical concepts, practical examples and resolution of training exercises.

The laboratory classes will be of two types: the first classes will be directed, aimed at knowing the tools and programming languages used; The following classes will be oriented to the realization of a small project.

In addition, depending on the availability of each course, there will be conferences by experts.

Evaluation methodology

50% Take-home exam
50% Laboratory

The take-home exam will be held at the end of the course. The statement will be delivered in class and will be returned resolved after about 10 days. It is an individual test that must be done by hand on the exam sheets distributed by the teacher.

The laboratory grade is obtained from the follow-up notes of the practice sessions prepared by each teacher and the evaluation of the project. To evaluate the project, students must submit a written report.

Bibliography

Basic:

Previous capacities

Basic knowledge of computer architecture.
Basic knowledge about graphics.