Description
The course has been specifically designed for companies that need to increase their computing capacity, either due to the use of highly complex algorithms or the need to manage large amounts of data.
Examples of applications: machine learning, deep learning, science and engineering, biomedicine, computational simulation, computer graphics, etc.
Objectives
The practice aims to cover the following objectives:
- Introduce students to remote access to GPUs installed in supercomputers, including access, environment setup, compilation, and file transfer.
- Provide students with basic knowledge of GPU architecture, enabling them to understand the CUDA programming model, which differs significantly from the traditional CPU programming model.
- Introduce students to GPU programming using the CUDA programming language, both in the host code and the code that will run on the GPU.
Requirements
Participants must have access to a computer with a Linux or Mac operating system (not a tablet, Chromebook, etc.) with an Internet connection. All work will be done remotely, so a good Internet connection is highly recommended.
Additionally, to follow the course effectively, basic user-level knowledge of working with the Linux shell, as well as programming in C or C++, will be necessary.
Methodology
This course is delivered entirely online. It follows a theoretical-practical approach, aimed at introducing participants to Nvidia GPU programming using the CUDA programming language:
- Theory (1 hour): Delivered asynchronously, providing students with a series of videos they can study at any time, as long as they complete this section before moving on to the second part.
- Practice (2 hours): Delivered synchronously, requiring students to connect at a specific time. This session will consist of practical exercises to apply some of the theoretical concepts on a specific supercomputer.
- Independent Work (4 hours): Students will be given a set of exercises to complete on their own, with the support of an instructor available via a dedicated course chat.
Certification
A certificate of completion will be issued to students who successfully complete the course. To obtain the certificate, students must submit the assigned independent work within the established deadline. The certificate will confirm that the student has successfully met the course requirements.