Overview
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.
Syllabus
Course 1: Introduction to Concurrent Programming with GPUs
- Offered by Johns Hopkins University. This course will help prepare students for developing code that can process large amounts of data in ... Enroll for free.
Course 2: Introduction to Parallel Programming with CUDA
- Offered by Johns Hopkins University. This course will help prepare students for developing code that can process large amounts of data in ... Enroll for free.
Course 3: CUDA at Scale for the Enterprise
- Offered by Johns Hopkins University. This course will aid in students in learning in concepts that scale the use of GPUs and the CPUs that ... Enroll for free.
Course 4: CUDA Advanced Libraries
- Offered by Johns Hopkins University. This course will complete the GPU specialization, focusing on the leading libraries distributed as part ... Enroll for free.
- Offered by Johns Hopkins University. This course will help prepare students for developing code that can process large amounts of data in ... Enroll for free.
Course 2: Introduction to Parallel Programming with CUDA
- Offered by Johns Hopkins University. This course will help prepare students for developing code that can process large amounts of data in ... Enroll for free.
Course 3: CUDA at Scale for the Enterprise
- Offered by Johns Hopkins University. This course will aid in students in learning in concepts that scale the use of GPUs and the CPUs that ... Enroll for free.
Course 4: CUDA Advanced Libraries
- Offered by Johns Hopkins University. This course will complete the GPU specialization, focusing on the leading libraries distributed as part ... Enroll for free.
Courses
-
This course will help prepare students for developing code that can process large amounts of data in parallel on Graphics Processing Units (GPUs). It will learn on how to implement software that can solve complex problems with the leading consumer to enterprise-grade GPUs available using Nvidia CUDA. They will focus on the hardware and software capabilities, including the use of 100s to 1000s of threads and various forms of memory.
-
This course will aid in students in learning in concepts that scale the use of GPUs and the CPUs that manage their use beyond the most common consumer-grade GPU installations. They will learn how to manage asynchronous workflows, sending and receiving events to encapsulate data transfers and control signals. Also, students will walk through application of GPUs to sorting of data and processing images, implementing their own software using these techniques and libraries. 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.
-
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.
-
This course will help prepare students for developing code that can process large amounts of data in parallel. It will focus on foundational aspects of concurrent programming, such as CPU/GPU architectures, multithreaded programming in C and Python, and an introduction to CUDA software/hardware.
Taught by
Chancellor Thomas Pascale