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
This course is all about CUDAprogramming. We will start our discussion by looking at basic concepts including CUDAprogramming model, execution model, and memory model. Then we will show you how to implement advance algorithms using CUDA. CUDAprogramming is all about performance. So through out this course you will learn multiple optimization techniques and how to use those to implement algorithms. Also we will extensively discuss profiling techniques and some of the tools including nvprof, nvvp, CUDAMemcheck, CUDA-GDB tools in the CUDAtoolkit. This course contains following sections.
Introduction to CUDAprogramming and CUDA programming model
CUDAExecution model
CUDAmemory model-Global memory
CUDAmemory model-Shared and Constant memory
CUDAstreams
Tuning CUDAinstruction level primitives
Algorithm implementation with CUDA
CUDAtools
With this course we include lots of programming exercises and quizzes as well. Answering all those will help you to digest the concepts we discuss here.
This course is the first course of the CUDAmaster class series we are current working on. So the knowledge you gain here is essential of following those course as well.