MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz
Language: English | Size: 981.49 MB | Duration: 3h 5m
Learn CUDA Programming from absolute scratch
What you’ll learn
Learn how to build programs in CUDA
Understand the underlying basics of Parallel Programming
Build a Machine Learning Model in CUDA (Future Work for now)
Learn GPU Programming in CUDA as a whole
A bit familiarity in C++ is needed, except that the desire to learn.
Welcome to the course on CUDA Programming – From Zero to Hero!Unlock the immense power of parallel computing with our comprehensive CUDA Programming course, designed to take you from absolute beginner to a proficient CUDA developer. Whether you’re a software engineer, data scientist, or enthusiast looking to harness the potential of GPU acceleration, this course is your gateway to mastering the CUDA programming paradigm. In this course, we will learn about GPU Programming and write programs in CUDA in C++. CUDA is an amazing framework developed by NVidia where you can code programs that can run on GPUs. By exploiting data level parallelism techniques, one can solve complex computational tasks and problems in far lesser time compared to the serial counterparts. Serial Programming involves usage of only a single processor core where all the computation happens, but in today’s world with the advent of multi-core architectures, parallel programming is the need of the hour. To add to that, Nvidia offers its wide range of GPUs where you can use this framework to run your algorithms in the GPU in parallel. CUDA also enables you to learn how to code faster for people who have some exposure on serial programming languages like C, C++ and Java. This course would offer you to write programs in C++ utilizing the CUDA framework.This course will also touch base on the basics of parallel programming and why we do it in the first place. It also reflects on when parallelism can be exploited and what are threads to start your journey! I have tried to build the course as self-contained as possible so that students can find a one-stop solution to becoming a CUDA Programmer from the absolute basics.If you do not have a Nvidia GPU, don’t worry as in this course, I will show you a way by which you can run CUDA Programs on any machine! Only thing required is an internet connection, that’s it!By the end of this course, you’ll not only be proficient in CUDA programming but also have the confidence to tackle complex parallel computing challenges. Join us on this journey, and let’s elevate your GPU programming skills from zero to hero!PrerequisitesWillingness to LearnSome familiarity with C++ language is expected.What will you learn from this course?Basics of Parallel Programming In this section, you will learn more about what is the need of parallel programming and why it is important to learn this skill.Installing CUDA on NVidia As Well As Non-Nvidia Machines In this section, we will learn how to install CUDA Toolkit and necessary software before diving deep into CUDA. Hello World in CUDA We will start with Programming Hello World in CUDA and learn about certain intricate details about CUDA.Communication between GPU And CPU Memory This section will talk more about how a CPU can communicate with the GPU and send data and receive data from it.Kernels, Grids, Blocks and Threads This section will form the heart of CUDA where you will learn more about grids, blocks and kernels. CUDA Computation This section will share more about using CUDA Programming to do Compute Tasks. If you are interested to code parallel programs in GPU, enroll this course now.
Section 1: Introduction to Parallel Programming
Lecture 1 What is Parallel Programming?
Lecture 2 Why do we need Parallel Programming?
Lecture 3 What are threads?
Lecture 4 Benefits and Challenges of Working with Threads
Lecture 5 What went wrong with single processor performance?
Section 2: Installing CUDA on Nvidia and Non-Nvidia Machines
Lecture 6 Installing CUDA on a Non-Nvidia Graphics Card Machine
Lecture 7 Installing CUDA on a Nvidia Graphics Card Machine
Section 3: Hello World in CUDA
Lecture 8 Hello World Program version 1
Lecture 9 Hello World Program version 2
Lecture 10 Hello World Program version 3
Lecture 11 Coding Exercise: Print Your Name N Times
Lecture 12 Bonus Lecture 1 : Time your Programs in CUDA
Section 4: Communicate between GPU and CPU Memory
Lecture 13 Let’s Look at a Code!
Lecture 14 Typical Memory Flow
Lecture 15 Initializing an array in parallel
Lecture 16 Adding a constant c to all elements of an array
Section 5: Kernels: Grids, Blocks and Threads
Lecture 17 How are threads organized in CUDA?
Lecture 18 Accessing Grid Dimensions
Lecture 19 Accessing Block Dimensions
Lecture 20 Problem of changing size to value greater than 1024 in Lecture 16 – Section 4
Section 6: CUDA Computation
Lecture 21 Warps and Thread Divergence
Lecture 22 Finding Thread Divergence in Code
Lecture 23 Exercise Solution
Lecture 24 Finding an element in parallel
Lecture 25 Exercise Solution: Encrypting and Decrypting Messages
Section 7: Conclusion
Any person interested to dive into the field of parallel programming.