Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

FutureLearn

GPU Programming for Scientific Computing and Beyond

Partnership for Advanced Computing in Europe via FutureLearn

This course may be unavailable.

Overview

Optimise GPU programming to accelerate scientific computing and other operations

Accelerators such as graphics processing units (GPUs) and co-processors are very effective at achieving high-performance computing (HPC) to optimise a device’s power. Typical GPU architecture means the units often perform several operations in parallel, breaking down large problems into smaller and simpler ones that can be executed at the same time.

To get the most from these resources, end-users and scientific developers need to use the parallel programming of a graphics processing unit at maximum efficiency. On this five-week course from the Partnership for Advanced Computing in Europe (PRACE) you’ll learn to do that.

Achieve accelerated parallel programming

Faster parallel programming means better performance and quicker scientific computing and other HPC results, making it a top priority. On this course, you’ll learn how to accelerate parallel programming using a GPU.

With this enhanced computational power, you’ll be able to run scientific and engineering simulations for scientific computing, solve matrices and vectors for artificial intelligence, or optimally run end-user applications like games.

Get all you need to kick-start your GPGPU programming

The course covers all aspects of general-purpose graphics processing unit (GPGPU) programming. You’ll get comprehensive instruction on GPU architecture, programming languages, code optimisation and tuning, and everything else required for any kind of HPC.

Learn GPGPU programming with a world-class team

PRACE is dedicated to enabling high-impact scientific and engineering discovery and research, and to strengthening HPC usage across Europe. This mission, along with the Partnership’s combined expertise, makes it ideally suited to helping you take your GPGPU programming game further.

This course is designed for anyone who needs to use GPGPU programming, from end-users playing complex video games to researchers involved with artificial intelligence and scientific computing.

Syllabus

  • Course Organization, Parallel Programming Concepts and GPU Architecture
    • Course Introduction and Welcome by Pascal Bouvry
    • Course Introduction by Ezhilmathi Krishnasamy
    • Introduction to Week 1 Activities
    • Introduction (Article 1, Quiz and Discussion)
    • Course Organization and GPU Access (Article 2, Quiz and Discussion)
    • Parallel Computer Architectures (Article 3, Quiz and Discussion)
    • General Parallel Programming Concepts (Article 4, Quiz and Discussion)
    • GPU Architecture (Article 5, Quiz and Discussion)
  • CUDA (basic): Introduction to CUDA Programming
    • Introduction to Week 2 Activities
    • Basic Programming (Article 1, Quiz and Discussion)
    • Understanding the CUDA Threads (Article 2, Quiz and Discussion)
    • CUDA API for C/C++ (Article 3, Quiz and Discussion)
    • Vector Operations (Article 4, Quiz and Discussion)
    • Matrix Operations (Article 5, Quiz and Discussion)
  • CUDA (advanced): Numerical Algebra, Advanced Topics, Profiling and Tuning
    • Introduction to Week 3 Activities
    • Shared Memory Matrix Opertaions (Article 1, Quiz and Discussion)
    • Unified Memory (Article 2, Quiz and Discussion)
    • CUDA Streams (Article 3, Quiz and Discussion)
    • CUDA Application Profiling (Article 4, Quiz and Discussion)
    • Performance Optimization and Tuning (Article 5, Quiz and Discussion)
  • OpenACC (basic): Introduction to OpenACC Programming Model
    • Introduction to Week 4 Activities
    • Introduction to OpenACC (Article 1, Quiz and Discussion)
    • Functionality of OpenACC (Article 2, Quiz and Discussion)
    • OpenACC Compute Constructs (Article 3, Quiz and Discussion)
    • The Data Environment in OpenACC (Article 4, Quiz and Discussion)
    • Programming in OpenACC (Article 5, Quiz and Discussion)
  • OpenACC (advanced): Numerical Algebra, Advanced Topics, Profiling and Tuning
    • Introduction to Week 5 Activities
    • Vector Operations (Article 1, Quiz and Discussion)
    • Matrix Operations (Article 2, Quiz and Discussion)
    • Shared Memory and Async (Article 3, Quiz and Discussion)
    • Profiling (Article 4, Quiz and Discussion)
    • Tuning and Optimization (Article 5, Quiz and Discussion)

Taught by

Ezhilmathi Krishnasamy

Reviews

4.5 rating at FutureLearn based on 2 ratings

Start your review of GPU Programming for Scientific Computing and Beyond

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.