MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
By the end of the course, you will be able to do the following:
- Develop software that can use multiple CPUs and GPUs
- Develop software that uses CUDA’s events and streams capability to create asynchronous workflows
- Use the CUDA computational model to to solve canonical programming challenges including data sorting and image processing
To be successful in this course, you should have an understanding of parallel programming and experience programming in C/C++.
This course will be extremely applicable to software developers and data scientists working in the fields of high performance computing, data processing, and machine learning.
Course 3 of 4 in the GPU Programming Specialization.
What You Will Learn
- Students will learn to develop software that can be run in computational environments that include multiple CPUs and GPUs.
- Students will develop software that uses CUDA to create interactive GPU computational processing kernels for handling asynchronous data.
- Students will use CUDA, hardware memory capabilities, and algorithms/libraries to solve programming challenges including image processing.
Syllabus
WEEK 1
Course Overview
The purpose of this module is for students to understand how the course will be run, topics, how they will be assessed, and expectations.
WEEK 2
Multiple CPU/GPU Systems
In professional settings, use of one CPU managing one GPU, is not a viable configuration to solve complex challenges. Students will apply CUDA capabilities for allowing multiple CPUs to communicate and manage software kernels on multiple GPUs. This will allow for scaling the size of input data and computational complexity. Students will learn the advantages and limitations of this form of synchronous processing.
WEEK 3
CUDA Events and Streams
Students will learn to utilize CUDA events and streams in their programs, to allow for asynchronous data and control flows. This will allow more interactive and long-lasting software, including analytic user interfaces, near live-streaming video or financial feeds, and dynamic business processing systems.
WEEK 4
Sorting Using GPUs
The purpose of this module is for students to understand the basis in hardware and software that CUDA uses. This is required to appropriately develop software to optimally take advantage of GPU resources.
WEEK 5
Image Processing using Nvidia Programming Primitives
The purpose of this module is for students to understand the principles of developing CUDA-based software.
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.