Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

General-Purpose Computing on GPU

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
B4M39GPU KZ 4 1P+2C Czech
Garant předmětu:
Jaroslav Sloup
Lecturer:
Jaroslav Sloup
Tutor:
Jaroslav Sloup
Supervisor:
Department of Computer Graphics and Interaction
Synopsis:

The goal of the course is to introduce students to basic principles of General-Purpose Computing on Graphics Processing Units (GPGPU). Course gives an overview of architecture and capabilities of modern graphics processing units (GPUs) and covers elementary concepts in parallel programming on GPUs. Students will gain programming skills with the CUDA (or OpenCL) technology and become familiar with basic parallel algorithms (e.g. parallel prefix scan/reduction) that are building blocks for design and implementation of efficient parallel algorithms.

Requirements:

Programming in C/C++, linear algebra.

Syllabus of lectures:

1. Introduction to general-purpose computing on GPU (architectures, languages, GPU versus CPU).

2. Multithreaded programming.

3. Introduction to CUDA architecture and

basics of its programming.

4. Working with threads and memories in CUDA.

5. Programming for performance - optimizations.

6. Application Case Studies in CUDA.

7. Other high-level languages for GPGPU programming I - OpenCL (Open Computing Language)

8. Other high-level languages for GPGPU programming II - OpenGL Compute Shaders

Syllabus of tutorials:

1. Introduction - requirements, evaluation.

2. Examples of simple multithreaded applications.

3. CUDA - compilation workflow, debugging, code examples.

Specification of the individual student projects.

4. CUDA - solution of given tasks I.

5. CUDA - solution of given tasks II.

6. Individual work on projects - consultations I.

7. Individual work on projects - consultations I.

8. Individual student projects checkpoint.

9. OpenCL - compilation workflow, debugging, code examples.

10. OpenCL - solution of given tasks.

11. Individual work on projects - consultations II.

12. Individual work on projects - consultations II.

13. Submitting of individual student projects.

14. Assessment.

Study Objective:
Study materials:

1. David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 1st edition, 2010, ISBN-13: 978-0123814722.

2. Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition, 2010, ISBN-13: 978-0131387683.

3. Aaftab Munshi, Benedict Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg: OpenCL Programming Guide. Addison-Wesley Professional, 2011, ISBN 978-0321749642.

4. Gerassimos Barlas: Multicore and GPU Programming: An Integrated Approach. Morgan Kaufmann, 2014, ISBN 978-0124171374.

Note:
Further information:
https://cw.fel.cvut.cz/wiki/courses/B4M39GPU
Time-table for winter semester 2023/2024:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon
Tue
roomKN:E-128
Sloup J.
11:00–12:30
(lecture parallel1)
Karlovo nám.
Cvičebna K3
roomKN:E-327
Sloup J.
14:30–16:00
(lecture parallel1
parallel nr.101)

Karlovo nám.
Solarium K327
Wed
Thu
Fri
Time-table for summer semester 2023/2024:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2024-03-27
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet4696906.html