YoVDO

CUDA at Scale for the Enterprise

Offered By: Johns Hopkins University via Coursera

Tags

CUDA Courses Data Science Courses Software Development Courses Image Processing Courses Data Sorting Courses Parallel Programming Courses GPU Programming Courses

Course Description

Overview

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.

Syllabus

  • 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.
  • 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.
  • 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.
  • 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.
  • Image Processing using Nvidia Programming Primitives
    • The purpose of this module is for students to understand the principles of developing CUDA-based software.

Taught by

Chancellor Thomas Pascale

Tags

Related Courses

2D image processing
Higher School of Economics via Coursera
A Simple Picture Storing App with Java and Android Studio
Coursera Project Network via Coursera
AI Capstone Project with Deep Learning
IBM via Coursera
Geographic Information Systems (GIS) Essentials
University of Alaska Fairbanks via edX
Creative, Serious and Playful Science of Android Apps
University of Illinois at Urbana-Champaign via Coursera