Deep Learning and GPU programming using OpenACC

Photo of scientists participating in a training course in HLRS's Ruehle Saal

Learn how to accelerate your applications with OpenACC, how to train and deploy a neural network to solve real-world problems, and how to effectively parallelize training of deep neural networks on Multi-GPUs.

The workshop combines an introduction to Deep Learning and Deep Learning for Multi-GPUs with a lecture on Accelerated Computing with OpenACC.

The lectures are interleaved with many hands-on sessions using Jupyter Notebooks. The exercises will be done at the AI partition of HLRS's cluster Hawk.

This course is organized in cooperation with LRZ (Germany). All instructors are NVIDIA certified University Ambassadors.

Location

HLRS, University of Stuttgart
Nobelstraße 19
70569 Stuttgart, Germany
Room 0.439 / Rühle Saal
Location and nearby accommodations

Start date

Jul 11, 2023
08:30

End date

Jul 13, 2023
17:00

Language

English

Entry level

Basic

Intermediate

Course subject areas

Data in HPC / Deep Learning / Machine Learning

Topics

Artificial Intelligence

Big Data

Deep Learning

GPU Programming

Machine Learning

Scientific Machine Learning

Back to list

Prerequisites and content levels

Prerequisites

For day one, you need basic experience with C/C++ or Fortran. Suggested resources to satisfy prerequisites: the learn-c.org interactive tutorial, https://www.learn-c.org/.

On day two, you need an understanding of fundamental programming concepts in Python 3, such as functions, loops, dictionaries, and arrays; familiarity with Pandas data structures; and an understanding of how to compute a regression line.
Suggested resources to satisfy prerequisites: Python Beginner’s Guide.

Experience with Deep Learning using Python 3 and, in particular, gradient descent model training will be needed on day three.

Familiarity with TensorFlow and Keras will be a plus as it will be used in the hands-on sessions. For those who did not use these before, you can find tutorials here: github.com/tensorflow/docs/tree/master/site/en/r1/tutorials/keras.

Content levels
  • Basic: 4 hours
  • Intermediate: 11 hours
  • Advanced: 4.5 hours

Learn more about course curricula and content levels.

Instructors

Lectures: Dr. Momme Allalen, PD Dr. Juan Durillo Barrionuevo, Dr. Volker Weinberg (LRZ and NVIDIA University Ambassadors).

Learning outcomes

1st day: Lecture on Accelerated Computing with OpenACC

  • How to profile and optimize your CPU-only applications to identify hot spots for acceleration
  • How to use OpenACC directives to GPU accelerate your codebase
  • How to optimize data movement between the CPU and GPU accelerator

Upon completion, you'll be ready to use OpenACC to GPU accelerate CPU-only applications.

2nd day: Introduction to Deep Learning

  • Implement common deep learning workflows, such as image classification and object detection
  • Experiment with data, training parameters, network structure, and other strategies to increase performance and capability
  • Deploy your neural networks to start solving real-world problems

Upon completion, you’ll be able to start solving problems on your own with deep learning.

3rd day: Introduction to Deep Learning for Multi-GPUs

  • Approaches to multi-GPUs training
  • Algorithmic and engineering challenges to large-scale training
  • Key techniques used to overcome the challenges mentioned above

Upon completion, you'll be able to effectively parallelize training of deep neural networks using TensorFlow.

Agenda

- preliminary -

 1st day: Lecture on Accelerated Computing with OpenACC (9:00 - 17:00)

On the first day you learn the basics of OpenACC, a high-level programming language for programming on GPUs. Discover how to accelerate the performance of your applications beyond the limits of CPU-only programming with simple pragmas.

2nd day: Introduction to Deep Learning  (9:00 - 17:00)

Explore the fundamentals of deep learning by training neural networks and using results to improve performance and capabilities.

During this day, you’ll learn the basics of deep learning by training and deploying neural networks.

3rd day: Introduction to Deep Learning for Multi-GPUs (9:00 - 17:00)

The computational requirements of deep neural networks used to enable AI applications like self-driving cars are enormous. A single training cycle can take weeks on a single GPU or even years for larger datasets like those used in self-driving car research. Using multiple GPUs for deep learning can significantly shorten the time required to train lots of data, making solving complex problems with deep learning feasible.

On the third day we will teach you how to use multiple GPUs to train neural networks.

Exercises

The exercises will be carried out on HLRS's cluster Hawk.

On-site course & COVID rules

Besides the content of the training itself, another important aspect of this event is the scientific exchange among the participants. We try to facilitate such communication by

  • a social event on the evening of the first course day,
  • offering common coffee and lunch breaks and
  • working together in groups of two during the exercises (if desired by the individual participants and permitted by the COVID-19 rules).

By registering you agree to adhere to the COVID-19 regulations of the University of Stuttgart that are in effect at the time of the course. For more information, see  the COVID-19 informations and the Hygiene Concept of the University of Stuttgart.

We recommend to choose travel options and hotels with the possibility to cancel (even close to the event) because we might be forced to deliver the course as an online course.

Registration-information

Register via the button at the top of this page.
We encourage you to register to the waiting list if the course is full. Places might become available.

If you are not interested in all days, please select only those days in which you are interested while registering.

Registration closes on June 27, 2023 (extended registration phase).

Late registrations after that date are still possible according to the course capacity, possibly with reduced quality of service.

Fees

  • Students without Diploma/Master: 30 EUR
  • PhD students or employees at a German university or public research institute: 60 EUR
  • PhD students or employees at a university or public research institute in an EU, EU-associated or PRACE country other than Germany: 120 EUR.
  • PhD students or employees at a university or public research institute outside of EU, EU-associated or PRACE countries: 240 EUR
  • Other participants, e.g., from industry, other public service providers, or government: 600 EUR

Our course fee includes coffee breaks (in classroom courses only).

For lists of EU and EU-associated coutries, and PRACE countries have a look at the Horizon Europe and PRACE website.

Lunch Breaks

We plan to have lunch in the unversity's canteen (Mensa Stuttgart-Vaihingen, have a look at their menu online). Two other near possibilities for lunch are on all days:

We will update this information if opening times etc. change and inform you more precisely before the course starts.

Contact

Tobias Haas phone 0711 685 87223, tobias.haas(at)hlrs.de
Khatuna Kakhiani phone 0711 685 65796, kakhiani(at)hlrs.de

HLRS Training Collaborations in HPC

HLRS is part of the Gauss Centre for Supercomputing (GCS), together with JSC in Jülich and LRZ in Garching near Munich. EuroCC@GCS is the German National Competence Centre (NCC) for High-Performance Computing. HLRS is also a member of the Baden-Württemberg initiative bwHPC.

This course is provided within the framework of the bwHPC training program.

Further courses

See the training overview and the Supercomputing Academy pages.