Learn the fundamentals of parallel computing with the GPU and the CUDA programming environment! In this class, you'll learn about parallel programming by coding a series of image processing algorithms, such as you might find in Photoshop or Instagram. You'll be able to program and run your assignments on high-end GPUs, even if you don't own one yourself.
**Why It’s Important to Think Parallel**
[Third Pillar of Science]
Learn how scientific discovery can be accelerated by combining theory and experimentation with computing to fight cancer, prevent heart attacks, and spur new advances in robotic surgery.
Why Take This Course? You'll master the fundamentals of massively parallel computing by using CUDA C/C++ to program modern GPUs. You'll learn the GPU programming model and architecture, key algorithms and parallel programming patterns, and optimization techniques. Your assignments will illustrate these concepts through image processing applications, but this is a parallel computing course and what you learn will translate to any application domain. Most of all we hope you'll learn how to think in parallel.
### Lesson 1: GPU Programming Model
Project 1: Greyscale Conversion (for that classy touch!)
### Lesson 2: GPU Hardware and Parallel Communication
Project 2: Smart Blurring (miracle product for removing wrinkles!)
### Lesson 3: Fundamental Parallel Algorithms
Project 3: HDR Tonemapping (when 1000:1 contrast is not enough!)
### Lesson 4: Using Sort and Scan
Project 4: Red Eye Removal (soothing relief for bright red eyes)
### Lesson 5: Optimizing GPU Programs
Project 5: Accelerating Histograms (when fast isn't fast enough)
### Lesson 6: Parallel Computing Patterns
Project 6: Seamless Image Compositing (polar bear in the swimming pool)
### Lesson 7: The Frontiers and Future of GPU Computing
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.
This is a great course for getting an overview of parallel computer algorithms. It is also a good course for learning cuda. It really requires a NVIDIA processor on your own machine. Debugging on the remote servers is quite difficult. I installed cuda on my laptop which has a NVIDIA graphics processor. This is a hard course. I asked about a certificate which is not available. The person I talked to said less than 10% of the folks who start the course finish it. If you work hard, you will learn a lot. There are not enough folks taking at any one time in order to get help or cooperate much so the student is pretty much on their own. It would work better if it were not a self paced course. It would have been nice if it covered more of open cl as well as cuda, possibly early on showing the same algorithms in both languages, but then it is sponsored by NVIDIA and so reflects their take on parallelism.