e-posta: kfidan@uludag.edu.tr Uludağ Üniversitesi, Bilgisayar Mühendisliği Bölümü Görükle Kampüsü, 16059 Nilüfer, Bursa
18
Website:
19
Objective of the Course:
In this course, the use of GPU in solving problems that require high performance will be explained. Studies on solving which types of problems with the GPU and which ones on the computer will be included. In this context, current issues in parallel and GPU computing, the basis of parallel algorithms, GPU programming model, parallel computing patterns, optimization and GPU application examples will be covered.
20
Contribution of the Course to Professional Development
Engineering Science: 85%; Engineering Design: 15%
21
Learning Outcomes:
1
Define parallel programming with GPU;
2
Understand data parallel computing and scalable parallel execution methods;
3
Understand memory, data location, performance and numerical concepts in parallel programming;
4
Understand the concepts of convolution, prefix summation, histogram computation and sparse matrix computation in parallel models;
5
Understand CUDA dynamic parallelism;
6
Examine case studies in parallel programming;
22
Course Content:
Week
Theoretical
Practical
1
Introduction to parallel programming with GPU.
2
Data parallel computing.
3
Scalable parallel execution.
4
Memory and data locality.
5
Performance considerations.
6
Numerical considerations.
7
Parallel patterns: convolution: An introduction to stencil computation.
8
Parallel patterns: prefix sum: An introduction to work efficiency in parallel algorithms.
9
Parallel patterns—parallel histogram computation: An introduction to atomic operations and privatization.
10
Parallel patterns: sparse matrix computation: An introduction to data compression and regularization.
11
Parallel patterns: merge sort: An introduction to tiling with dynamic input data identification.
12
Parallel patterns: graph search.
13
CUDA dynamic parallelism.
14
Application case studies.
23
Textbooks, References and/or Other Materials:
Textbook: - David B. Kirk and Wen-mei W. Hwu, Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufman, 2022. Supplementary Textbooks: - Wen-mei W. Hwu (Editor), GPU Computing Gems, Morgan Kaufman, 2011. - H. Bidgoli, CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison Wesley, 2010. - NVIDIA Developer Zone, http://developer.nvidia.com/page/home.html
24
Assesment
TERM LEARNING ACTIVITIES
NUMBER
PERCENT
Midterm Exam
1
20
Quiz
0
0
Homeworks, Performances
1
20
Final Exam
1
60
Total
3
100
Contribution of Term (Year) Learning Activities to Success Grade
40
Contribution of Final Exam to Success Grade
60
Total
100
Measurement and Evaluation Techniques Used in the Course
Classical problem-solving ability will be measured in midterm and final exams. The project will include research, simulation, report writing and presentation on a subject related to the course content.
Information
All exam and project evaluations will be made over 100. It will then be multiplied by the respective contribution percentage and the overall course grade will be obtained out of 100.
25
ECTS / WORK LOAD TABLE
Activites
NUMBER
TIME [Hour]
Total WorkLoad [Hour]
Theoretical
14
3
42
Practicals/Labs
0
0
0
Self Study and Preparation
14
5
70
Homeworks, Performances
1
33
33
Projects
0
0
0
Field Studies
0
0
0
Midtermexams
1
15
15
Others
0
0
0
Final Exams
1
20
20
Total WorkLoad
180
Total workload/ 30 hr
6
ECTS Credit of the Course
6
26
CONTRIBUTION OF LEARNING OUTCOMES TO PROGRAMME QUALIFICATIONS