Swayam Central

GPU Architectures and Programming

By Prof. Soumyajit Dey   |   IIT Kharagpur
The course covers basics of conventional CPU architectures, their extensions for single instruction multiple data processing (SIMD) and finally the generalization of this concept in the form of single instruction multiple thread processing (SIMT) as is done in modern GPUs. We cover GPU architecture basics in terms of functional units and then dive into the popular CUDA programming model commonly used for GPU programming. In this context, architecture specific details like memory access coalescing, shared memory usage, GPU thread scheduling etc which primarily effect program performance are also covered in detail. We next switch to a different SIMD programming language called OpenCL which can be used for programming both CPUs and GPUs in a generic manner. Throughout the course we provide different architecture-aware optimization techniques relevant to both CUDA and OpenCL. Finally, we provide the students with detail application development examples in two well-known GPU computing scenarios.

INTENDED AUDIENCE  : Computer Science, Electronics, Electrical Engg students
PREREQUISITES  : Programming and Data Structure, Digital Logic, Computer architecture
INDUSTRY SUPPORT : NVIDIA, AMD, Google, Amazon and most big-data companies

Learners enrolled: 2620


Course Status : Ongoing
Course Type : Elective
Duration : 12 weeks
Start Date : 27 Jan 2020
End Date : 17 Apr 2020
Exam Date : 26 Apr 2020
Enrollment Ends : 03 Feb 2020
Category :
  • Computer Science and Engineering
  • Level : Undergraduate/Postgraduate
    This is an AICTE approved FDP course


    Week 1 :Review of Traditional Computer Architecture – Basic five stage RISC Pipeline, Cache Memory, Register File, SIMD instructions
    Week 2 :GPU architectures - Streaming Multi Processors, Cache Hierarchy,The Graphics Pipeline
    Week 3 :Introduction to CUDA programming
    Week 4 :Multi-dimensional mapping of dataspace, Synchronization
    Week 5 :Warp Scheduling, Divergence
    Week 6 :Memory Access Coalescing
    Week 7 :Optimization examples : optimizing Reduction Kernels
    Week 8 :Optimization examples : Kernel Fusion, Thread and Block
    Week 9 :OpenCL basics
    Week 10 :OpenCL for Heterogeneous Computing
    Week 11-12 :Application Design : Efficient Neural Network Training/Inferencing


    1. “Computer Architecture -- A Quantitative Approach” - John L.Hennessy and David A. Patterson
    2. "Programming Massively Parallel Processors" - David Kirk and Wen-mei Hwu
    3. Heterogeneous Computing with OpenCL” -- Benedict Gaster,Lee Howes, David R. Kaeli


    Prof. Soumyajit Dey

    IIT Kharagpur
    Dr. Soumyajit Dey joined the dept. of CSE, IIT Kgp in May 2013.He worked at IIT Patna as assistant professor in CSE dept. from beginning of Spring 2012 to end of Spring 2013. He received a B.E. degree in Electronics and Telecommunication Engg. from Jadavpur University, Kolkata in 2004. He received an M.S. followed by PhD degree in Computer Science from Indian Institute of Technology, Kharagpur in 2007 and 2011 respectively.

    His research interests include 1) Synthesis and Verification of Safe,Secure and Intelligent Cyber Physical Systems, 2) Runtime Systems for Heterogeneous Platforms. More specifically, as part of his second research interest, he works on building GPGPU application scheduling frameworks considering both a) embedded real time applications, and b) GPGPU cluster level workloads. He has been successfully running a popular course titled “High Performance Parallel Programming” http://cse.iitkgp.ac.in/~soumya/hp3/hp3.html)
    in CSE IITKGP for the last three years jointly with Prof. Pralay Mitra.


    • The course is free to enroll and learn from. But if you want a certificate, you have to register and write the proctored exam conducted by us in person at any of the designated exam centres.
    • The exam is optional for a fee of Rs 1000/- (Rupees one thousand only).
    Date and Time of Exams: 26th April 2020, Morning session 9am to 12 noon; Afternoon Session 2pm to 5pm.
    • Registration url: Announcements will be made when the registration form is open for registrations.
    • The online registration form has to be filled and the certification exam fee needs to be paid. More details will be made available when the exam registration form is published. If there are any changes, it will be mentioned then.
    • Please check the form for more details on the cities where the exams will be held, the conditions you agree to when you fill the form etc.

    • Average assignment score = 25% of average of best 8 assignments out of the total 12 assignments given in the course.
    • Exam score = 75% of the proctored certification exam score out of 100
    • Final score = Average assignment score + Exam score

    • If one of the 2 criteria is not met, you will not get the certificate even if the Final score >= 40/100.
    • Certificate will have your name, photograph and the score in the final exam with the breakup.It will have the logos of NPTEL and IIT Kharagpur. It will be e-verifiable at nptel.ac.in/noc.
    • Only the e-certificate will be made available. Hard copies will not be dispatched.