Course Information
Course Overview
Unofficial guide to parallel programming on GPU's with CUDA from basic concepts to advance algorithm implementations.
This course is an in-depth, unofficial guide to parallel programming using GPU computing techniques with C++. We'll begin by exploring foundational concepts such as the GPU programming model, execution structure, and memory hierarchy. From there, you’ll dive into hands-on development, implementing advanced parallel algorithms optimized for high-performance graphics processors.
Since performance is at the heart of GPU-based computing, this course places a strong emphasis on optimization techniques. You’ll learn how to fine-tune your code for maximum speed and efficiency, and apply industry-standard tools for profiling and debugging, including nvprof, nvvp, memcheck, and GDB-based GPU debuggers.
The course includes the following core sections:
Introduction to GPU programming concepts and execution models
Understanding execution behavior on parallel processors
Deep dive into memory systems: global, shared, and constant memory
Using streams to manage concurrent execution
Fine-tuning instruction-level behavior for performance
Implementing real-world algorithms using GPU acceleration
Profiling and debugging tools overview
To reinforce learning, this course includes programming exercises and quizzes designed to help you internalize each concept.
This is the first course in a masterclass series on GPU-based parallel computing. The knowledge you gain here will form a strong foundation for exploring more advanced topics in future courses.
As GPUs continue to drive innovation in fields like AI and scientific computing, mastering these tools and techniques will set you apart in the tech industry.
Note: This course is not affiliated with or endorsed by NVIDIA Corporation. CUDA is a registered trademark of NVIDIA Corporation, used here solely for educational reference purposes.
Course Content
- 8 section(s)
- 83 lecture(s)
- Section 1 Introduction to CUDA programming and CUDA programming model
- Section 2 CUDA Execution model
- Section 3 CUDA memory model
- Section 4 CUDA Shared memory and constant memory
- Section 5 CUDA Streams
- Section 6 Performance Tuning with CUDA instruction level primitives
- Section 7 Parallel Patterns and Applications
- Section 8 Bonus: Introduction to Image processing with CUDA
What You’ll Learn
- All the basic knowladge about CUDA programming
- Ability to desing and implement optimized parallel algorithms
- Basic work flow of parallel algorithm design
- Advance CUDA concepts
Reviews
-
AAntonis Skourtis
The course is an in-depth dive into the CUDA platform and GPGPU in general for beginner/intermediate level developers. The instructor is knowledgeable and clear in his explanations. I would highly recommend the course.
-
BBinyamin Samuel
the instructor explains in a clear way the fundamentals or parallel computing.
-
정정민교
친절하게 강의해주기 때문에 이해가 매우 잘됩니다!
-
MMarlin Rowley
Moving too fast and the indexing is crucial to understanding what the parallelism is doing. Still can't understand the offset calculations.