Johns Hopkins University
Introduction to Parallel Programming with CUDA
Johns Hopkins University

Introduction to Parallel Programming with CUDA

This course is part of GPU Programming Specialization

5,872 already enrolled

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

21 hours to complete
3 weeks at 7 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

21 hours to complete
3 weeks at 7 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Students will learn how to utilize the CUDA framework to write C/C++ software that runs on CPUs and Nvidia GPUs.

  • Students will transform sequential CPU algorithms and programs into CUDA kernels that execute 100s to 1000s of times simultaneously on GPU hardware.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

5 quizzes

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the GPU Programming Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 5 modules in this course

The purpose of this module is for students to understand how the course will be run, topics, how they will be assessed, and expectations.

What's included

3 videos4 readings1 programming assignment1 discussion prompt1 ungraded lab

The single most important concept for using GPUs to solve complex and large-scale problems, is management of threads. CUDA provides two- and three-dimensional logical abstractions of threads, blocks and grids. Students will develop programs that utilize threads, blocks, and grids to process large 2 to 3-dimensional data sets.

What's included

8 videos1 reading2 quizzes2 programming assignments1 ungraded lab

To manage the access and modification of data in physical memory effectively, students will need to load data into CPU (host) and GPU (global) general-purpose memory. Students will create software that allocates host memory and transfers it into global memory for use by threads. Students will also learn the capabilities and speeds of these types of memories.

What's included

8 videos1 quiz1 programming assignment1 discussion prompt2 ungraded labs

To improve performance in GPU software, students will need to utilized mutable (shared) and static (constant) memory. They will use them to apply masks to all items of a data set, to manage the communication between threads, and use for caching in complex programs.

What's included

6 videos1 quiz1 programming assignment1 discussion prompt1 ungraded lab

In this module, students will learn the benefits and constraints of GPUs most hyper-localized memory, registers. While using this type of memory will be natural for students, gaining the largest performance boost from it, like all forms of memory, will require thoughtful design of software. Students will develop implementations of algorithms using each type of memory and generate performance analysis.

What's included

5 videos1 quiz1 programming assignment1 discussion prompt1 ungraded lab

Instructor

Instructor ratings
2.2 (11 ratings)
Chancellor Thomas Pascale
Johns Hopkins University
4 Courses14,555 learners

Offered by

Recommended if you're interested in Software Development

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

New to Software Development? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions