FI:PV197 GPU Programming - Course Information
PV197 GPU Programming
Faculty of InformaticsAutumn 2011
- 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. (lecturer)
doc. RNDr. Petr Holub, Ph.D. (lecturer)
RNDr. Jiří Matela, Ph.D. (assistant) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics - Timetable
- Mon 14:00–15:50 A107
- 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
- Applied Informatics (programme FI, B-AP)
- Applied Informatics (programme FI, N-AP)
- Information Technology Security (programme FI, N-IN)
- Bioinformatics (programme FI, B-AP)
- Bioinformatics (programme FI, N-AP)
- Information Systems (programme FI, N-IN)
- Informatics with another discipline (programme FI, B-BI)
- Informatics with another discipline (programme FI, B-EB)
- Informatics with another discipline (programme FI, B-FY)
- Informatics with another discipline (programme FI, B-GE)
- Informatics with another discipline (programme FI, B-GK)
- Informatics with another discipline (programme FI, B-CH)
- Informatics with another discipline (programme FI, B-IO)
- Informatics with another discipline (programme FI, B-MA)
- Informatics with another discipline (programme FI, B-TV)
- Informatics (eng.) (programme FI, D-IN4)
- Informatics (programme FI, D-IN4)
- Informatics (programme FI, N-IN)
- Public Administration Informatics (programme FI, B-AP)
- Mathematical Informatics (programme FI, B-IN)
- Parallel and Distributed Systems (programme FI, B-IN)
- Parallel and Distributed Systems (programme FI, N-IN)
- Computer Graphics and Image Processing (programme FI, B-IN)
- Computer Graphics (programme FI, N-IN)
- Computer Networks and Communication (programme FI, B-IN)
- Computer Networks and Communication (programme FI, N-IN)
- Computer Systems and Technologies (eng.) (programme FI, D-IN4)
- Computer Systems and Technologies (programme FI, D-IN4)
- Computer Systems and Data Processing (programme FI, B-IN)
- Computer Systems (programme FI, N-IN)
- Embedded Systems (eng.) (programme FI, N-IN)
- Programmable Technical Structures (programme FI, B-IN)
- Embedded Systems (programme FI, N-IN)
- Service Science, Management and Engineering (eng.) (programme FI, N-AP)
- Service Science, Management and Engineering (programme FI, N-AP)
- Social Informatics (programme FI, B-AP)
- Theoretical Informatics (programme FI, N-IN)
- Upper Secondary School Teacher Training in Informatics (programme FI, N-SS) (2)
- Artificial Intelligence and Natural Language Processing (programme FI, B-IN)
- Artificial Intelligence and Natural Language Processing (programme FI, N-IN)
- Image Processing (programme FI, N-AP)
- 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.
- Enrolment Statistics (Autumn 2011, recent)
- Permalink: https://is.muni.cz/course/fi/autumn2011/PV197