Skip to main content

Graphic Cards and Accelerators

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

Others

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

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.
  • 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.
  • 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
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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.