INFORMATION TECHNOLOGIES (ENGLISH, NONTHESIS) | |||||
Master | TR-NQF-HE: Level 7 | QF-EHEA: Second Cycle | EQF-LLL: Level 7 |
Course Code | Course Name | Semester | Theoretical | Practical | Credit | ECTS |
CMP5208 | Parallel Computing with GPUs | Fall | 3 | 0 | 3 | 12 |
This catalog is for information purposes. Course status is determined by the relevant department at the beginning of semester. |
Language of instruction: | Turkish |
Type of course: | Departmental Elective |
Course Level: | |
Mode of Delivery: | |
Course Coordinator : | Assist. Prof. ECE GELAL SOYAK |
Course Objectives: | The aim of this course is to introduce parallel computing and the development of applications for highly parallel processors, such as GPUs. Real-world applications like self-driving cars, machine learning, and augmented reality are prime examples of parallel computing usage. The course emphasizes computational thinking, various forms of parallelism, programming models, mapping tasks to parallel hardware, optimizing data structures, paradigms for designing efficient parallel algorithms, and includes case studies of practical applications. |
The students who have succeeded in this course; - Ability to use parallel programming models for computational tasks on high-performance hardware (e.g. GPU). - Gain hands-on experience with GPU programming using CUDA (for NVIDIA processors), including developing and optimizing parallel applications. - Apply efficient data structures and parallel paradigms to enhance the performance of computationally intensive tasks. - Analyze and evaluate case studies of parallel computing applications to overcome challenges in various domains using parallel computing technologies. |
Key topics will include popular programming interfaces for graphics processors (such as CUDA for NVIDIA GPUs), the internal architecture of graphics processors and its influence on performance, as well as the implementation of parallel algorithms on these processors. The course consists of approximately 29 lectures and includes substantial programming tasks, including five hands-on assignments and a final project. |
Week | Subject | Related Preparation |
1) | Introduction to Parallel Computing and GPU Architecture; CUDA and GPU programming (NVIDIA GPUs). | |
2) | GPU-Accelerated Data Structures (e.g., parallel lists, queues, trees) | |
3) | Optimizing Memory Access in CUDA; Cache optimization and bank conflicts | |
4) | Advanced CUDA Features: Streams, asynchronous operations, events and timing, error handling | |
5) | CUDA Programming Basics; implement CUDA kernel, explore memory access patterns | |
6) | Parallel Algorithms on GPUs; reduction, scan, sorting, and matrix operations | |
7) | GPU-Accelerated Data Structures (e.g., parallel lists, queues, trees) | |
8) | Case Study 1: Machine Learning on GPUs; GPU acceleration using cuBLAS, cuDNN libraries | |
9) | Case Study 2: Parallel programming techniques for image processing, object detection, and motion planning | |
10) | Advanced CUDA Techniques for Optimization; occupancy, warp-level programming, and instruction-level optimization. | |
11) | Performance profiling and bottleneck analysis using NVIDIA tools (Nsight, Visual Profiler) | |
12) | Project presentations | |
13) | Project presentations |
Course Notes / Textbooks: | |
References: | D. Kirk and W. Hwu, Programming Massively Parallel Processors: A Handson Approach, Third Edition |
Semester Requirements | Number of Activities | Level of Contribution |
Total | % | |
PERCENTAGE OF SEMESTER WORK | % 0 | |
PERCENTAGE OF FINAL WORK | % | |
Total | % |
Activities | Number of Activities | Duration (Hours) | Workload |
Course Hours | 14 | 3 | 42 |
Project | 1 | 35 | 35 |
Homework Assignments | 3 | 12 | 36 |
Final | 1 | 25 | 25 |
Total Workload | 138 |
No Effect | 1 Lowest | 2 Low | 3 Average | 4 High | 5 Highest |
Program Outcomes | Level of Contribution | |
1) | Follows the scientific literature in the field of Information Technology, critically analyzes it, and effectively utilizes it in solving complex IT problems. | |
2) | Designs, plans, implements, and manages original projects related to the field of Information Technology. | |
3) | Conducts independent studies in the field of Information Technology, assumes scientific responsibility, and evaluates the findings with a critical perspective. | |
4) | Presents the outcomes of research and projects effectively in written, oral, and visual forms, in accordance with academic and professional standards. | |
5) | Conducts independent research on specialized topics within the field, develops innovative and original ideas, and translates this knowledge into practice and technology. | |
6) | Effectively applies advanced theoretical knowledge and practical skills specific to the field of Information Technology; analyzes and develops current software, hardware, and system solutions. | |
7) | Acts in accordance with professional, scientific, and ethical principles; takes responsibility by considering the societal, environmental, and ethical impacts of IT applications. |