GPU Architectures and Programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-GPU | Z,ZK | 5 | 2P+1C | Czech |
- Course guarantor:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Computer Systems
- Synopsis:
-
Students will gain knowledge of the internal architecture of modern massively parallel GPU processors. They will learn to program them mainly in the CUDA programming environment, which is already a widespread programming technology of GPU processors. As an integral part of the effective computational use of these hierarchical computational structures, students will also learn optimization programming techniques and methods of programming multiprocessor GPU systems.
- Requirements:
-
Basics of programming in C and C ++ (at the level of subjects BI-PA1 and BI-PA2), it is recommended to complete the subject Parallel and Distributed Programming (MI-PDP).
- Syllabus of lectures:
-
1. GPU microarchitecture.
2.-4. (3) CUDA programming language.
5. Basic parallel operations (reduction and prefix sum).
6. Methods of synchronization of fibers and fiber blocks.
7. Optimization I: general optimization of massively parallel codes
8. Optimization II: SIMT architecture, combined memory access.
9. Optimization III: Memory subsystem architecture.
10. Collaboration multiple GPUs.
11. Asynchronous GPU calculations.
12. Case studies of GPU programs, development, debugging of GPU applications
13. HPC libraries and other APIs for GPGPU.
- Syllabus of tutorials:
-
1) Introduction to the environment, assignment of term papers
2) Submission of sequential implementation
3) Compilation of GPU code, involvement of libraries
4) Working with code debugging tools and profiling tools
5) consultation on GPU implementation
6) submission of GPU implementation, credit
- Study Objective:
- Study materials:
-
Brian Tuomanen „Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA“ , Packt Publishing, 2018
Sudhakar Yalamanchili „GPU Architectures“ https://ece8823-sy.ece.gatech.edu/
J. Sanders, E. Kandrot ''CUDA by Example: An Introduction to General-Purpose GPU Programming''
David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. 1st ed., Morgan Kaufmann, 2010.
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-GPU/
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Master specialization Computer Science, in Czech, 2018-2019 (elective course)
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 202 (PS)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (elective course)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Master specialization System Programming, in Czech, version from 2023 (elective course)
- Master specialization Computer Science, in Czech, 2023 (elective course)