This course will complete the GPU specialization, focusing on the leading libraries distributed as part of the CUDA Toolkit. Students will learn how to use CuFFT, and linear algebra libraries to perform complex mathematical computations. The Thrust library’s capabilities in representing common data structures and associated algorithms will be introduced. Using cuDNN and cuTensor they will be able to develop machine learning applications that help with object detection, human language translation and image classification.
Offered By
About this Course
Data Science, Algorithms, and/or programming background
What you will learn
You will learn to develop software that performs high-level mathematics operations using libraries such as cuFFT and cuBLAS.
You will learn to use the Thrust library to perform a number of data manipulation and data structures that abstract away memory management.
You will learn to develop machine learning software for a variety of purposes using neural networks modeled using the cuTensor and cuDNN libraries.
Skills you will gain
- Data Science
- Artificial Neural Network
- Machine Learning
- C++
- Linear Algebra
Data Science, Algorithms, and/or programming background
Offered by

Johns Hopkins University
The mission of The Johns Hopkins University is to educate its students and cultivate their capacity for life-long learning, to foster independent and original research, and to bring the benefits of discovery to the world.
Syllabus - What you will learn from this course
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.
cuFFT
cuFFT provides the ability to perform fast Fourier transforms (FFTs) on large datasets. Students will learn of common use cases such as fast multiplication of large polynomials, signal processing, and matrix operations. They will use this library to develop software that process audio or video signals.
CUDA Linear Algebra
The CUDA Toolkit includes a number of linear algebra libraries, such as cuBLAS, NVBLAS, cuSPARSE, and cuSOLVER. Students will learn the different capabilities and limitations of many of them and apply that knowledge to compute matrix dot products, determinant, and finding solutions to complex linear systems.
The CUDA Thrust Library
Most developers utilize data structures beyond the primitives and pointers that make up the core of CUDA programmers, which makes pure CUDA development difficult. Students will learn about the Thrust library that adds the vector data structure and associated algorithms that allow for simplification of their code. Students will create software that transform, reduction, and sort large datasets.
About the GPU Programming Specialization
This specialization is intended for data scientists and software developers to create software that uses commonly available hardware. Students will be introduced to CUDA and libraries that allow for performing numerous computations in parallel and rapidly. Applications for these skills are machine learning, image/audio signal processing, and data processing.

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.