INFORMATION TECHNOLOGIES (ENGLISH, NONTHESIS)
Master TR-NQF-HE: Level 7 QF-EHEA: Second Cycle EQF-LLL: Level 7

Course Introduction and Application Information

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.

Basic information

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.

Learning Outcomes

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.

Course Content

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.

Weekly Detailed Course Contents

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

Sources

Course Notes / Textbooks:
References: D. Kirk and W. Hwu, Programming Massively Parallel Processors: A Hands­on Approach, Third Edition

Evaluation System

Semester Requirements Number of Activities Level of Contribution
Total %
PERCENTAGE OF SEMESTER WORK % 0
PERCENTAGE OF FINAL WORK %
Total %

ECTS / Workload Table

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

Contribution of Learning Outcomes to Programme Outcomes

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.