Course: Parallel Computation on Graphics Processors

« Back
Course title Parallel Computation on Graphics Processors
Course code AUIUI/A9PVG
Organizational form of instruction Lecture + Lesson
Level of course Master
Year of study not specified
Semester Winter
Number of ECTS credits 3
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Janků Peter, Ing.
  • Bližňák Michal, Ing. Ph.D.
Course content
Lectures: - Introduction to heterogenou programming - Introduction to CUDA API, kernel programming, memory model. Parallel vectors addition. - Multidimensional blocks and grids, threads synchronization. Parallel matrix multiplications. - Optimalization of global memory operations, coalesced memory access. Parallel convolution. - Atomic operations, Parallel histogram. - Advanced CUDA API I: events, time measurement, CC detection, ... - Advanced CUDA API II: data transfer by using streams, parallel tasks. - Optimizations of CUDA applications. - Visualization of computed results, Parallel Mandelbrot set. - Unified memory model in CUDA 6. - Introduction to OpenCL API - Introduction to OpenACC API Exercises: - Installation and configuration of development environment for CUDA API. - CUDA C API - Vectors addition. - CUDA C API - Basic matrix multiplication (in globl memory) - CUDA C API - Tiled matrix multiplication (in shared memory) - CUDA C API - Convolution - CUDA C API - Histogram

Learning activities and teaching methods
unspecified
Learning outcomes
The goal of the course is to familiarize students with various specifics and modern approaches of heterogenous programming applied on general purpose graphic processing units (GPGPU). During the course basic properties and metodology of optimized SW design will be discussed as well as the CUDA, OpenCL and OpenACC APIs. Moreover, set of simple parallel algorithms and their implementations in CUDA API will be presented.
- Programming in C/C++ language. - Knowledge of data parallelism and desing of SIMD applications.
Prerequisites
The course prerequisities are "Programming in C language" amd "Parallel Processes and Programming".

Assessment methods and criteria
unspecified
The requirement for receiving the credit is an active participation in the tutorials, homework solving and successfull passing of two half-term exams. Scale: 95 - 100 % A 85 - 89 % B 75 - 79 % C 65 - 69 % D 55 - 59 % E less than 55 % FX The result of a subject examination is expressed on a six-point scale: A "výborně" (i.e. "excellent"), B "velmi dobře" (i.e. "very good"), C "dobře" (i.e. "good"), D "uspokojivě" (i.e. "satisfactory"), E "dostatečně" (i.e. "sufficient"), F "nedostatečně" (i.e. "fail").
Recommended literature


Study plans that include the course
Faculty Study plan (Version) Branch of study Category Recommended year of study Recommended semester