Instructor
Soumyajit Dey (GPU, CUDA),
Pralay Mitra (OpenMP/MPI paradigm),
Teaching Assistant
Srijeeta Maity ,
Danny Jeron Pereira (GPU, CUDA)
Dibya Kanti Halder, Purnima Gautam, Debraj Das (Open-MP/MPI)
Class timing
MON(10:00-10:55) , WED(08:00-08:55) , WED(09:00-09:55) , THURS(10:00-10:55)
Venue
Lectures: CSE room 120
Tutorials: PC Lab, Annex building, CSE
Announcements
First meeting date: 4th January 2023 at scheduled time
Prerequisites: Proficiency in C programming
(Programming environments used in course shall be restricted to OpenMP, MPI, CUDA)
Course Modules
Serial no |
Topic (GPU/CUDA) |
Slides |
Module 0 |
Basics of Computer Architecture, GPU Architecture |
Download , Download |
Module 1 |
Introduction to CUDA, Multi-dimensional Mapping |
Download ,
Download
|
Module 2 |
Warp Scheduling and Divergence |
Download |
Module 3 |
Memory, Tiled Matrix Multiplication,Transpose |
Download |
Module 4 |
Reduction Operations |
Download |
Module 5 |
Fusion and Coarsening |
Download |
Serial no |
Topic (OpenMP/MPI) |
Module 0 |
OpenMP introduction, worksharing constructs |
Module 1 |
OpenMP scheduling, handling array |
Module 2 |
OpenMP synchronization; announcement of term project on OpenMP |
Module 3 |
OpenMP Matrix handling |
Module 4 |
MPI Part I |
Module 5 |
MPI Part II |
CUDA resources
Additional study materials
NVIDIA CUDA Programming Guide
Transpose : NVIDIA developer
document
Transpose : NVIDIA developer
Blog
CUDA Tutorials
CUDA Assignments
Assignment 1 (a) |
Link |
Assignment 1 (b) |
Link |
Practice questions |
Link |
CUDA End Term Projects
Project Name |
Group ID |
Roll No. |
Description |
Optimization of GIS applications |
Group A |
18IM30002, 18MA20009, 19CH30043, 19MI10013, 22CS60R03, 22CS60R75, 22CS72P09 |
Link
|
Optimization of vSLAM applications |
Group B |
18CS10031, 18EC32001, 18EC32006, 18EC35034, 19CS10074, 19CS30019, 19CS30023, 19CS30037 |
Link
|
Marking Scheme
End sem: 40, Mid sem: 30, Assignments: OpenMP(5) + MPI(5) + CUDA(5), Term project: 15
References
1. “Using OpenMP” by Barbara Chapman, Gabriele Jost and Ruud van der Pas
2. “MPI: The Complete Reference” by Marc Snir, Jack Dongarra, Janusz S. Kowalik, Steven Huss-Lederman, Steve W. Otto, David W. Walker
3. “Parallel Programming with MPI” by Peter Pacheco
4. "Programming Massively Parallel Processors" - David Kirk and Wen-mei Hwu
5. CUDA Reference manual
6. “Computer Architecture -- A Quantitative Approach” - John L. Hen- nessy and David A. Patterson