PV197 GPU Programming

Fakulta informatiky
podzim 2024
Rozsah
1/1/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k.
Vyučující
doc. RNDr. Jiří Filipovič, Ph.D. (přednášející)
doc. RNDr. Petr Holub, Ph.D. (pomocník)
RNDr. Jiří Matela, Ph.D. (pomocník)
Garance
doc. RNDr. Jiří Filipovič, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Předpoklady
C/C++ programming (PB111, PB160, PB161, PB071, or similar), familiarity with CPU architecture, and parallelization of algorithms (IB109).
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 34 mateřských oborů, zobrazit
Cíle předmětu
The goal of this course is to explain how to use GP GPU for general computation.
Výstupy z učení
After the end of the course students should: describe the architecture, programming model and optimization for GPUs; explain GPU implementation of several broadly used algorithms; create GPUs implementation of given computational tasks; judge the suitability of given computational problem for GPU acceleration.
Osnova
  • 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 performance, an 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 memory-bound functions
  • Case studies 2: Acceleration of image and video compression
  • Case studies 3: LTL model checking acceleration
  • Discussion of a project, presentation of best-achieved results, presentation of 3 best solutions by authors, final discussion
Výukové metody
Lectures, reading of recommended literature, solving and programming assignments.
Metody hodnocení
Scores for assignment solutions: 50% for the project, up to 30% bonus for the performance of the solution. Oral exam after all the lectures: 50%. In order to pass successfully, the score for the oral exam must be at least half of maximum.
Vyučovací jazyk
Angličtina
Informace učitele
V odůvodněném případě (dostatečné vstupní znalosti, potřeba absolvování předmětu pro realizaci závěrečné práce atp.) lze zapsat předmět i bez splnění předpokladu IB109 (je třeba požádat v IS o výjimku).
Další komentáře
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023.
  • Statistika zápisu (nejnovější)
  • Permalink: https://is.muni.cz/predmet/fi/podzim2024/PV197