Introduction to GPU Programming with OpenACC: Difference between revisions
No edit summary |
No edit summary |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
==== '''About the course''' ==== | ==== '''About the course''' ==== | ||
The ''Scientific Computing'' group at the IT department (UiB) in collaboration with ''NRIS'' (Norwegian Research Infrastructure Services) is offering a one day | The ''Scientific Computing'' group at the IT department (UiB) in collaboration with ''NRIS'' (Norwegian Research Infrastructure Services) is offering a one-day physical teaching course on Introduction to GPU Programming. The course will be given by [https://orcid.org/0000-0003-2838-7422 Dr. Hicham Agueny]. | ||
The course is designed for beginners in GPU-programming and who want to get familiar with available directives programming models with a special focus on the OpenACC offloading. The course does not require any basic knowledge in GPU-programming, but it is a requirement that the user has some basic programming experience with either Fortran or C. The course aims at providing an overview of the OpenACC model and guiding users towards its optimal use. The course will familiarise the users with the most needed constructs, clauses and runtime library routines via some practical numerical applications. The applications include solving partial differential equations, matrix multiplication, integration etc. | The course is designed for beginners in GPU-programming and who want to get familiar with available directives programming models with a special focus on the OpenACC offloading. The course does not require any basic knowledge in GPU-programming, but it is a requirement that the user has some basic programming experience with either Fortran or C. The course aims at providing an overview of the OpenACC model and guiding users towards its optimal use. The course will familiarise the users with the most needed constructs, clauses and runtime library routines via some practical numerical applications. The applications include solving partial differential equations, matrix multiplication, integration etc. | ||
| Line 48: | Line 48: | ||
'''III. Hands-on + discussion 13:00- 15:30''' | '''III. Hands-on + discussion 13:00- 15:30''' | ||
==== Instructor ==== | |||
'''Hicham Agueny''' | |||
===== Coordinator===== | |||
Dhanya Pushpadas | |||
===== Helper ===== | |||
Andreas Sæther Skeidsvoll | |||
===== '''Course material''' ===== | ===== '''Course material''' ===== | ||
See the course material here in the [https://documentation.sigma2.no/code_development/guides/converting_acc2omp/openacc2openmp.html documentation] and [https://arxiv.org/abs/2201.11811 pdf here] | See the course material here in the [https://documentation.sigma2.no/code_development/guides/converting_acc2omp/openacc2openmp.html documentation] and [https://arxiv.org/abs/2201.11811 pdf here] | ||
| Line 57: | Line 64: | ||
# A secure shell application (ssh/Putty) | # A secure shell application (ssh/Putty) | ||
If you need to install such tools, please see the [https://wiki.uib.no/hpcdoc/index.php/HPC_and_NIRD_toolkit_course_fall_2020#Preparing_your_machine_for_the_course pages of our course in October 2020]. | If you need to install such tools, please see the [https://wiki.uib.no/hpcdoc/index.php/HPC_and_NIRD_toolkit_course_fall_2020#Preparing_your_machine_for_the_course pages of our course in October 2020]. | ||
'''A part of the training course is to perform profiling during the hands-on, especially, with the use of the NVIDIA Nsight Systems profiling tool. In order to speed up the visualization of the profiling analysis, we recommend installing the tool in your local system. The tool can be downloaded from here https://developer.nvidia.com/nsight-systems | |||
Let us know if you are experiencing any issues with the installation.''' | |||
===== '''Community standards''' ===== | ===== '''Community standards''' ===== | ||
| Line 62: | Line 72: | ||
We hope to make a good learning environment for everyone, and expect everyone to do their part for this. We follow [https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html#code-of-conduct-detailed-view carpentry code of conduct]. If you believe there is a violation of the code of conduct, we ask you to report it directly or via email to the organisers. | We hope to make a good learning environment for everyone, and expect everyone to do their part for this. We follow [https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html#code-of-conduct-detailed-view carpentry code of conduct]. If you believe there is a violation of the code of conduct, we ask you to report it directly or via email to the organisers. | ||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | [[Category:Training]] | ||
[[Category:Training]] | [[Category:Training]] | ||
| Line 71: | Line 137: | ||
[[Category:Training]] | [[Category:Training]] | ||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | |||
[[Category:Training]] | [[Category:Training]] | ||
[[Category:Training]] | [[Category:Training]] | ||
Latest revision as of 10:09, 28 March 2022
About the course
The Scientific Computing group at the IT department (UiB) in collaboration with NRIS (Norwegian Research Infrastructure Services) is offering a one-day physical teaching course on Introduction to GPU Programming. The course will be given by Dr. Hicham Agueny.
The course is designed for beginners in GPU-programming and who want to get familiar with available directives programming models with a special focus on the OpenACC offloading. The course does not require any basic knowledge in GPU-programming, but it is a requirement that the user has some basic programming experience with either Fortran or C. The course aims at providing an overview of the OpenACC model and guiding users towards its optimal use. The course will familiarise the users with the most needed constructs, clauses and runtime library routines via some practical numerical applications. The applications include solving partial differential equations, matrix multiplication, integration etc.
Prerequisites
The participants are expected to have
- Basic programming experience with either Fortran or C
- Basic Linux terminal experience
The course does not require any basic knowledge in GPU-programming
Expected Outcome of the course
By the end of this training course, the participants should be able to:
- Recognise the necessity of GPU-programming.
- Define different available programming models.
- Get an overview of the GPU-architectures and compilers supporting OpenACC.
- Determine the role of different constructs, clauses, and runtime library routines.
- Compile and interpret the compiler flags and feedback messages.
- Use appropriate constructs and clauses to offload compute regions to the GPU device.
- Select and map regions of a code with the use of data locality concepts.
- Implement OpenACC on simple numerical models.
- Do code-profiling using NVIDIA Nsight Systems.
Registration
Please register here We have limited capacity of 30 participants. Registration closes on 24th March. The course is free of charge and is organised by the Scientific Computing group at UiB IT department in collaboration with NRIS (Norwegian Research Infrastructure Services). We do not provide travel costs.
Date & Time
29th March 2022 Tuesday 10:00 -15:30
Location
Media City Bergen, Seminar 2 (57702.110) Location map
Schedule
I General introduction 10:00-10:45
- State-of-the-art supercomputers
- Introduction to GPU-hardware
- GPU-programming models and supports
Coffee break (10:45-11:00)
II Showcase: OpenACC and functionality 11:00 - 12:00
- Synchronous OpenACC
- Nsight Systems profiling
- Asynchronous OpenACC
Lunch (12:00-13:00) Lunch will be served by the organisers
III. Hands-on + discussion 13:00- 15:30
Instructor
Hicham Agueny
Coordinator
Dhanya Pushpadas
Helper
Andreas Sæther Skeidsvoll
Course material
See the course material here in the documentation and pdf here
Preparations
The participants need to bring their own laptop to do hands-on exercises and we strongly recommend that these tools are installed beforehand
- A terminal application or command line interface
- A secure shell application (ssh/Putty)
If you need to install such tools, please see the pages of our course in October 2020.
A part of the training course is to perform profiling during the hands-on, especially, with the use of the NVIDIA Nsight Systems profiling tool. In order to speed up the visualization of the profiling analysis, we recommend installing the tool in your local system. The tool can be downloaded from here https://developer.nvidia.com/nsight-systems Let us know if you are experiencing any issues with the installation.
Community standards
We hope to make a good learning environment for everyone, and expect everyone to do their part for this. We follow carpentry code of conduct. If you believe there is a violation of the code of conduct, we ask you to report it directly or via email to the organisers.