Difference between revisions of "GPU Tutorial"
(Created page with "{{Syllabus Introduction to GPU Computing}} == Introduction == Welcome to the HPC.NRW GPU Computing Online Tutorial! This tutorial is '''intended for beginners''' who are jus...") |
m |
||
(6 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Welcome to the HPC.NRW GPU Computing Online Tutorial! | 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. | 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. | ||
Line 8: | Line 10: | ||
== How to proceed through this tutorial? == | == How to proceed through this tutorial? == | ||
− | The tutorial is made up of '''5 sections'''. Each covers a separate stand-alone topic, but | + | 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'''. You don't actually need to have a GPU in your computer to do the quizzes in this tutorial. | + | 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 [https://www.youtube.com/playlist?list=PLhznUsiowt271154ERgAfWM_l2RkDNsHi 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 [mailto:tutorials@hpc.nrw tutorials@hpc.nrw]. | If you have any questions or encounter problems, you can contact us via e-mail at [mailto:tutorials@hpc.nrw tutorials@hpc.nrw]. | ||
Line 16: | Line 18: | ||
== Who created this tutorial? == | == Who created this tutorial? == | ||
− | This tutorial has been developed within the framework of the [https://hpc.dh.nrw/ HPC.NRW] project. It is part of a [[:Category:Tutorials|series of online tutorials]] on various HPC-related topics, all of which were created by HPC.NRW members. Other topics are for example [[OpenMP_in_Small_Bites|OpenMP]] and [[Gprof_Tutorial|Gprof]], and new tutorials continue to be developed. | + | This tutorial has been developed within the framework of the [https://hpc.dh.nrw/ HPC.NRW] project. It is part of a [[:Category:Tutorials|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_in_HPC|Introduction to Linux]], [[OpenMP_in_Small_Bites|OpenMP]] and [[Gprof_Tutorial|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. | 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. | ||
Line 26: | Line 28: | ||
=== [[GPU_Tutorial/Introduction | Introduction]] === | === [[GPU_Tutorial/Introduction | Introduction]] === | ||
− | This session provides a brief background on | + | 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. |
=== [[GPU_Tutorial/SAXPY_CUDA_C | Several Ways to SAXPY: CUDA C/C++]] === | === [[GPU_Tutorial/SAXPY_CUDA_C | Several Ways to SAXPY: CUDA C/C++]] === | ||
Line 34: | Line 36: | ||
=== [[GPU_Tutorial/Open_MP | Several Ways to SAXPY: OpenMP ]] === | === [[GPU_Tutorial/Open_MP | Several Ways to SAXPY: OpenMP ]] === | ||
− | This session discusses the SAXPY via | + | This session discusses the SAXPY via OpenMP GPU Offloading. |
=== [[GPU_Tutorial/Julia | Several Ways to SAXPY: Julia ]] === | === [[GPU_Tutorial/Julia | Several Ways to SAXPY: Julia ]] === | ||
Line 40: | Line 42: | ||
This session discusses the SAXPY via Julia cuda.jl | This session discusses the SAXPY via Julia cuda.jl | ||
− | === [[GPU_Tutorial/ | + | === [[GPU_Tutorial/Numba | Several Ways to SAXPY: NUMBA ]] === |
This session discusses the SAXPY via numba python. | This session discusses the SAXPY via numba python. |
Latest revision as of 09:47, 26 January 2022
Tutorial | |
---|---|
Title: | Introduction to GPU Computing |
Provider: | HPC.NRW
|
Contact: | tutorials@hpc.nrw |
Type: | Multi-part video |
Topic Area: | GPU computing |
License: | CC-BY-SA |
Syllabus
| |
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 |
Introduction
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 tutorials@hpc.nrw.
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.
Topics
Introduction
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.