PV197 GPU Programming

Faculty of Informatics
Autumn 2012
Extent and Intensity
1/1. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
Teacher(s)
doc. RNDr. Jiří Filipovič, Ph.D. (lecturer)
prof. RNDr. Jiří Barnat, Ph.D. (assistant)
doc. RNDr. Petr Holub, Ph.D. (assistant)
RNDr. Jiří Matela, Ph.D. (assistant)
Guaranteed by
prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics
Timetable
Mon 12:00–13:50 G123
Prerequisites
IB109 Design of Parallel Systems
C programming basics, familiarity with CPU architecture and parallelization of algorithms.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
there are 42 fields of study the course is directly associated with, display
Course objectives
The class focuses on programming of graphics processors (GPU), that allow achieving computing power unavailable for traditional universal processors, provided parallelism of GPUs is properly utilized. Students will learn architecture of GPUs as well as CUDA programming model. Basic design patterns suitable for implementation on GPUs will be analyzed. The students will prepare solutions to given problems using GPUs. At the end of the class, the successful students will understand SIMD/SIMT programming model and its usage on GPUs. They will be able to design parallelization of algorithms suitable for GPU and implement them using CUDA programming model.
Syllabus
  • Introduction: motivation for GPU programming, GPU architecture, overview of parallelism model, basics of CUDA, first demonstration code
  • GPU hardware and parallelism: detailed hardware description, synchronization, calculation on GPU -- rate of instruction processing, arithmetic precision, example of different approaches to matrix multiplication -- naive versus block-based
  • Performance of GPUs: memory access optimization, instructions perormance, example of matrix transposition
  • CUDA, tools and libraries: detailed description of CUDA API, compilation using nvcc, debugging, profiling, basic libraries, project assignment
  • Optimization: general rules for algorithm design for GPU, revision of matrix multiplication, parallel reduction
  • Parallelism in general: problem decomposition, dependence analysis, design analysis, parallel patterns
  • Metrics of efficiency for GPU: parallel GPU and CPU usage, metrics for performance prediction of GPU code, demonstration using graphics algorithms, principles of performance measurement
  • OpenCL: introduction to OpenCL, differences comparing to CUDA, exploiting OpenCL for hardware not accessible from CUDA
  • Case studies 1: Calculation of force field of molecule, automatic optimization of mapped functions
  • Case studies 2: Acceleration of image and video compression
  • Case studies 3: LTL model checking acceleration
  • Discussion of project, presentation of best achieved results, presentation of 3 best solutions by authors, final discussion
Literature
  • MATTSON, Timothy G, Beverly A. SANDERS and Berna MASSINGILL. Patterns for Parallel Programming. Boston: Addison-Wesley, 2005, xiii, 355. ISBN 0321228111. info
  • The data parallel programming model : foundations, HPF realization, and scientific applications. Edited by Guy-René Perrin - Alain Darte. Berlin: Springer, 1996, xv, 284. ISBN 3540617361. info
  • GPU gems 3. Edited by Hubert Nguyen. Upper Saddle River, NJ: Addison-Wesley, 2007, l, 942. ISBN 9780321515261. info
Teaching methods
Lectures, reading of recommended literature, solving and programming assignments.
Assessment methods
Scores for assignment solutions: 50% for the project, up to 30% bonus for performance of the solution. Oral exam after all the lectures: 50%. In order to pass successfully, score for the oral exam must be at least half of maximum.
Language of instruction
English
Further comments (probably available only in Czech)
Study Materials
The course is taught annually.
The course is also listed under the following terms Autumn 2009, Autumn 2010, Autumn 2011, Autumn 2013, Autumn 2014, Autumn 2015, Autumn 2016, Autumn 2017, Autumn 2018, Autumn 2019, Autumn 2020, Autumn 2021, Autumn 2022, Autumn 2023, Autumn 2024.
  • Enrolment Statistics (Autumn 2012, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2012/PV197