MMI713 APPLIED PARALLEL PROGRAMMING ON GPU
Course Code: | 9090713 |
METU Credit (Theoretical-Laboratory hours/week): | 3 (3.00 - 0.00) |
ECTS Credit: | 8.0 |
Department: | Multimedia Informatics |
Language of Instruction: | English |
Level of Study: | Graduate |
Course Coordinator: | Prof.Dr. ALPTEKİN TEMİZEL |
Offered Semester: | Fall or Spring Semesters. |
Course Objectives
The student will learn about the GPU as part of the PC architecture. Then they will learn about development of GPU software using CUDA C and OpenCL. Various optimization issues will be discussed. The concepts and the effects of optimization will be demonstrated with case studies.
Course Content
The course has been designed to give hands-on knowledge and development experience on general purpose GPU programming. The student will learn about the GPU as part of the PC architecture. Then they will learn about development of GPU software using CUDA C and OpenCL. Various optimization issues, particularly effective use of memory and floating point calculations will be discussed. The concepts and the effects of optimization will be demonstrated with case studies. Similarities and differences of CUDA and OpenCL will also be discussed around these case studies.
The students will be expected to propose a compute-expensive problem to implement on the GPU and then develop and optimize it on the GPU and compare the performance results with the CPU implementation. They are also expected to compare various optimization strategies.
Course Learning Outcomes
On completion of this course;
- the learner will have in-depth knowledge about parallel programming and parallelism models
- the learner will be able to compare and contrast different GPU programming framewors
- the learner will be able to design and develop algorithms on the GPU
- the learner will know about the optimization techniques and will be able to apply these techniques to existing or new algorithms