A computação de alto desempenho (HPC - High Performance Computing) e as aplicações de deep learning modernas são favorecidas por uma potência computacional de GPU em escala de cluster e, às vezes, até exigem essa potência. Escrever aplicações CUDA® que utilizem GPUs em um cluster de forma correta e eficiente requer um conjunto de habilidades específicas. Neste workshop, você conhecerá as ferramentas e técnicas necessárias para escrever aplicações CUDA C++ que podem ser dimensionadas com eficiência para clusters de GPUs NVIDIA. 

Para isso, você trabalhará no código de várias aplicações CUDA C++ em um ambiente interativo no cloud com diversas GPUs NVIDIA. Você terá contato com uma série de métodos de programação multi-GPU, incluindo Message Passing Interface (MPI) com reconhecimento de CUDA, antes de chegar ao foco principal do curso, a NVSHMEM™.

NVSHMEM é uma interface de programação paralela baseada em OpenSHMEM que fornece comunicação eficiente e dimensionável para clusters de GPU NVIDIA. A NVSHMEM cria um espaço de endereçamento global para dados que abrange a memória de várias GPUs e pode ser acessado com operações refinadas iniciadas por GPU, operações iniciadas por CPU e operações em fluxos CUDA. As transferências de dados assíncronas iniciadas por GPU da NVSHMEM eliminam as sobrecargas de sincronização entre a CPU e a GPU. Elas também permitem kernels de longa execução que incluem comunicação e computação, reduzindo as sobrecargas gerais que podem limitar o desempenho de uma aplicação com dimensionamento forte. A NVSHMEM tem sido usada em sistemas como o supercomputador Summit, localizado na Oak Ridge Leadership Computing Facility (OLCF), o supercomputador Sierra, do Lawrence Livermore National Laboratory, e a NVIDIA DGX™ A100.

 

Objetivos de Aprendizagem
 

Neste workshop, você:
  • Aprenderá vários métodos para escrever aplicações CUDA C++ multi-GPU
  • Usará uma variedade de padrões de comunicação multi-GPU e entenderá as vantagens e desvantagens
  • Escreverá código CUDA portátil e dimensionável com o paradigma de programa único e múltiplos dados (SPMD - Single Program Multiple Data) usando a MPI com reconhecimento de CUDA e a NVSHMEM
  • Aprimorará código SPMD multi-GPU com o modelo de memória simétrica da NVSHMEM e sua capacidade de realizar transferências de dados iniciadas por GPU
  • Fará exercícios práticos com paradigmas comuns de codificação multi-GPU, como decomposição de domínio e trocas de "halos"

Faça download do datasheet do workshop (PDF de 79,5KB)

Resumo do Workshop

Introdução
(15 minutos)
Paradigmas de Programação Multi-GPU
(120 minutos)

Examinar diversas técnicas de programação de aplicações CUDA C++ para múltiplas GPUs usando um programa CUDA C++ com aproximação de pi pelo método de Monte-Carlo.

  • Usar CUDA para utilizar múltiplas GPUs.
  • Aprender a ativar e usar a comunicação direta de memória ponto a ponto.
  • Escrever uma versão SPMD com MPI com reconhecimento de CUDA.
Intervalo (60 minutos)
Introdução à NVSHMEM
(120 minutos)

Aprender a escrever código com a NVSHMEM e entender o modelo de memória simétrica.

  • Usar NVSHMEM para escrever código SPMD para múltiplas GPUs.
  • Utilizar memória simétrica para permitir que todas as GPUs acessem dados de outras GPUs.
  • Fazer transferências de memória iniciadas por GPU.
Intervalo (15 minutos)
Trocas de Halo com NVSHMEM
(120 minutos)

Praticar padrões comuns de codificação, como trocas de halo e decomposição de domínio usando a NVSHMEM; trabalhar na avaliação.

  • Escrever uma implementação NVSHMEM de um solucionador Jacobi da equação de Laplace.
  • Refatorar um solucionador de equação de onda 1D de GPU única com a NVSHMEM.
  • Concluir a avaliação e receber o certificado.
Revisão Final
(15 minutos)
  • Aprender sobre as vantagens e desvantagens de aplicações em clusters de GPU.
  • Revisar os principais aprendizados e responder a perguntas.
  • Completar a pesquisa do workshop.
Próximas Etapas
(15 minutos)

Continuar a estudar com estes treinamentos do DLI:

 

Detalhes do Workshop

Duração: 8 horas

Valor: US$500 para workshops públicos. Para workshops corporativos, fale conosco.

Pré-requisitos:

  • Experiência intermediária de escrita de aplicações CUDA C e C++
Materiais sugeridos para atender aos pré-requisitos:
Ferramentas, bibliotecas e frameworks: CUDA, MPI, NVSHMEM
 
Tipo de Avaliação:
  • Avaliação de código baseada em habilidades: Os alunos precisam refatorar um solucionador de função de onda 1D de GPU única e prepará-lo para um cluster de GPU com NVSHMEM.

Certificado: após a conclusão bem-sucedida da avaliação, os participantes receberão um certificado do DLI da NVIDIA que reconhece a competência no assunto e contribui para o desenvolvimento da carreira e vida profissional.

Requisitos de Hardware: desktop ou notebook capaz de executar a versão mais atual do Chrome ou Firefox. Cada participante terá acesso exclusivo a uma workstation totalmente configurada e acelerada por GPU no cloud.

Idiomas: inglês

PRÓXIMOS WORKSHOPS PÚBLICOS

Próximos Workshops Públicos

América do Norte / América Latina

Quinta-feira, 18 de novembro de 2021
Das 11h às 19h (horário de Brasília)

Se sua empresa tem interesse em aprimorar e desenvolver habilidades importantes de AI, ciência de dados acelerada ou computação acelerada, solicite um treinamento ministrado por instrutor do DLI da NVIDIA.

Perguntas?