Entrar em Contato

Programa do Curso

Introdução

  • O que é o ROCm?
  • O que é o HIP?
  • ROCm vs CUDA vs OpenCL
  • Noções gerais das funcionalidades e da arquitetura do ROCm e do HIP
  • ROCm para Windows vs ROCm para Linux

Instalação

  • Instalando o ROCm no Windows
  • Verificando a instalação e conferindo a compatibilidade do dispositivo
  • Atualizando ou desinstalando o ROCm no Windows
  • Solucionando problemas comuns de instalação

Iniciando

  • Criando um novo projeto ROCm usando o Visual Studio Code no Windows
  • Explorando a estrutura do projeto e os arquivos
  • Compilando e executando o programa
  • Exibindo a saída usando printf e fprintf

API do ROCm

  • Utilizando a API do ROCm no programa host
  • Consultando informações e capacidades do dispositivo
  • Alocando e liberando memória do dispositivo
  • Copiando dados entre o host e o dispositivo
  • Iniciando kernels e sincronizando threads
  • Tratamento de erros e exceções

Linguagem HIP

  • Utilizando a linguagem HIP no programa do dispositivo
  • Escrivendo kernels que executam na GPU e manipulam dados
  • Usando tipos de dados, qualificadores, operadores e expressões
  • Utilizando funções embutidas, variáveis e bibliotecas

Modelo de Memória do ROCm e do HIP

  • Utilizando diferentes espaços de memória, como global, compartilhado, constante e local
  • Usando diferentes objetos de memória, como ponteiros, matrizes, texturas e superfícies
  • Utilizando diferentes modos de acesso à memória, como somente leitura, somente gravação, leitura/gravação, etc.
  • Aproveitando o modelo de consistência de memória e mecanismos de sincronização

Modelo de Execução do ROCm e do HIP

  • Utilizando diferentes modelos de execução, como threads, blocos e grades
  • Usando funções de thread, como hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Usando funções de bloco, como __syncthreads, __threadfence_block, etc.
  • Usando funções de grade, como hipGridDim_x, hipGridSync, grupos cooperativos, etc.

Depuração

  • Depurando programas do ROCm e do HIP no Windows
  • Usando o depurador do Visual Studio Code para inspecionar variáveis, pontos de interrupção, pilha de chamadas, etc.
  • Utilizando o ROCm Debugger para depurar programas do ROCm e do HIP em dispositivos AMD
  • Usando o ROCm Profiler para analisar programas do ROCm e do HIP em dispositivos AMD

Otimização

  • Otimizando programas do ROCm e do HIP no Windows
  • Utilizando técnicas de coalescimento para melhorar a largura de banda de memória
  • Usando técnicas de cacheamento e pré-busca para reduzir a latência da memória
  • Aproveitando memória compartilhada e memória local para otimizar acessos à memória e a largura de banda
  • Utilizando análise de desempenho (profiling) e ferramentas relacionadas para medir e melhorar o tempo de execução e a utilização de recursos

Resumo e Próximos Passos

Requisitos

  • Compreensão da linguagem C/C++ e dos conceitos de programação paralela
  • Conhecimento básico de arquitetura de computadores e hierarquia de memória
  • Experiência com ferramentas de linha de comando e editores de código
  • Familiaridade com o sistema operacional Windows e PowerShell

Público-alvo

  • Desenvolvedores que desejam aprender a instalar e utilizar o ROCm no Windows para programar GPUs AMD e explorar seu paralelismo.
  • Desenvolvedores que pretendem escrever código de alto desempenho e escalável, capaz de rodar em diferentes dispositivos AMD.
  • Programadores interessados em explorar os aspectos de baixo nível da programação de GPUs e otimizar o desempenho do seu código.
 21 Horas

Número de participantes


Preço por participante

Próximas Formações Provisórias

Categorias Relacionadas