
Introduce important Cuda keywords and terminology.
Describe how grid, threadblocks and threads are organized into spatial structures determined by the parameters they are launched with.
Describe the warp concept which determines how threads in a Cuda device execute code.
How to create a new Cuda project in Visual Studio.
This program sums two vectors together using the parallel computing power of the device, storing the results in an output vector.
What this example does is demonstrate how to allocate areas of memory on the device, copy data to and from the device and launch kernels with different grid dimensions.
Discuss shared memory and it's used as fast temporary storage for shared calculations done within each threadblock.
Code example that will utilize shared memory to perform an algorithm known as a parallel reduction which relies on shared memory to pass results calculated in parallel between threads in a threadblock.
Discussion of hardware events in Cuda and how they can be used to accurately measure the times of operations running on the device, without stalling the host thread.
This course is aimed at programmers with a basic knowledge of C or C++, who are looking for a series of tutorials that cover the fundamentals of the Cuda® C programming language, a proprietary language developed by NVIDIA® to leverage the parallel processing capabilities of NVIDIA GPUs for general-purpose computing. The course covers a range of topics that are applicable to all generations of CUDA capable GPUs from the earliest CUDA 1.0 level devices up to the latest hardware architectures. This is done through a combination of lectures and example programs that will provide you with the knowledge to be able to design your own compute algorithms and leverage the full performance benefits of GPGPU programming. It also covers some of the standard profiling and analysis tools, such as NVProf and NSight, developed by NVIDIA to teach learners how to gain important insights on how well a compute program is utilizing the resources of the device as well as pinpoint various bottlenecks, in order to maximize performance of compute programs written in CUDA C/C++. It aims to provide you with the grounding to develop your own CUDA applications. This course is not affiliated with or endorsed by NVIDIA or its products/services.