GPU Tutorial

From HPC Wiki
Jump to: navigation, search
Title: Introduction to GPU Computing
Provider: HPC.NRW

Type: Multi-part video
Topic Area: GPU computing
License: CC-BY-SA

1. Introduction
2. Several Ways to SAXPY: CUDA C/C++
3. Several Ways to SAXPY: OpenMP
4. Several Ways to SAXPY: Julia
5. Several Ways to SAXPY: NUMBA


Welcome to the HPC.NRW GPU Computing Online Tutorial!

A graphics processing unit (GPU) is a processor featuring a highly parallel structure, making it efficient at processing large blocks of data. Their most common application are of course video editing and gaming, but in principle GPUs can be used for any purpose. In an HPC environment, usually very specialized code was needed to utilize GPU computing, but in recent years this has become much more accessible.

This tutorial is intended for beginners who are just starting to use a supercomputer, or are otherwise interested in learning how to write GPU code.

How to proceed through this tutorial?

The tutorial is made up of 5 sections. Each covers a separate stand-alone topic; there is an introduction which is meant to be watched first, but the others can be worked through in any order.

Each tutorial consists of a short video, followed by a couple of quiz questions, and some practical exercises. The Videos are collected in a short Playlist. You don't actually need to have a GPU in your computer to do the quizzes in this tutorial.

If you have any questions or encounter problems, you can contact us via e-mail at

Who created this tutorial?

This tutorial has been developed within the framework of the HPC.NRW project. It is part of a series of online tutorials on various HPC-related topics, all of which were created by HPC.NRW members. Other topics are for example an Introduction to Linux, OpenMP and Gprof, and new tutorials continue to be developed.

The speakers are Christian Schmidt and Marius Neumann from Bielefeld University. Both have been working in Uni Bielefelds theoretical physics department for several years. Other contributions came from practically all HPC.NRW members.



This session provides a brief background on what a GPU is and how it can speed up computations. It also explains how a SAXPY works.

Several Ways to SAXPY: CUDA C/C++

This session discusses the SAXPY via NVIDIA CUDA C/C++

Several Ways to SAXPY: OpenMP

This session discusses the SAXPY via OpenMP GPU Offloading.

Several Ways to SAXPY: Julia

This session discusses the SAXPY via Julia cuda.jl

Several Ways to SAXPY: NUMBA

This session discusses the SAXPY via numba python.