Welcome, Guest . Login . Türkçe
Where Am I: Ninova / Courses / Institute of Science and Technology / BLG 553E / Course Informations
 

Course Information

Course Name
Turkish Bilgisayar Muhendisliginde Ozel Konular
English Special Topics in Compu.Eng.
Course Code
BLG 553E Credit Lecture
(hour/week)
Recitation
(hour/week)
Laboratory
(hour/week)
Semester -
- 3 - -
Course Language English
Course Coordinator Ayşe Yılmazer Metin
Course Objectives Understanding the CUDA programming model and GPU micro-architecture.
Studying and understanding the performance of CUDA programs and learning to develop efficient parallel programs using CUDA.
Course Description Introduction to GPGPU computing. Principles of parallel algorithm design. CUDA programming model. GPU micro-architecture. Occupancy, GPU performance and performance analysis and debugging tools. Branch divergence and control flow optimizations. GPU memory system. Memory system optimizations. Unified Memory and CPU-GPU cooperative computing. Synchronization, atomics, cache coherence, memory consistency. Parallel patterns, Histogram, Prefix-sum, etc. Dynamic parallelism, streams, multi-GPU programming. CUDA libraries, CuBlas, CuDNN, NPP, NvGraph, cuFFT, NCCL, cuSPARSE, etc. Other GPU programming environments, OpenCL and HSA.
Course Outcomes 1. Listing and applying fundamental principles of parallel algorithm design.
2. Describe common GPU architectures and programming models.
3. Explaining the factors that affect the performance of GPU programs.
4. Describing and applying the fundamental control flow optimizations to GPU programs.
5. Describing and applying the fundamental memory optimizations to GPU programs.
6. Explaining the techniques for communication and synchronization in GPU and understanding the overhead of communication on GPUs.
7. Using parallel patterns with CUDA.
Pre-requisite(s) Background in computer architecture and algorithms, c/c++ programming experience.
Required Facilities
Other
Textbook
Other References • David B. Kirk and Wen-mei Hwu, 2012, Programming Massively Parallel Processors: A Hands-on Approach, (2nd Edition), Morgan Kaufmann, ISBN 0-12-415992-3.
• Grama, A. Gupta, G. Karypis, and V. Kumar, Introduction to Parallel Computing, 2003, (2nd Ed.), Addison-Wesley.
• NVidia, CUDA Programming Guide, Available from http://www.nvidia.com/object/cuda_develop.html.
 
 
Courses . Help . About
Ninova is an ITU Office of Information Technologies Product. © 2024