Programa do Curso

Introdução

  • O que é o ROCm?
  • O que é HIP?
  • ROCm vs CUDA vs OpenCL
  • Visão geral das características e arquitetura da ROCm e da HIP
  • ROCm vs HIP vs ROCm for Windows vs ROCm para Linux

Instalação

  • Instalação do ROCm no Windows
  • Verificar a instalação e verificar a compatibilidade do dispositivo
  • Atualizar ou desinstalar o ROCm no Windows
  • Resolução de problemas comuns de instalação

Primeiros passos

  • Criar um novo projeto ROCm utilizando o código Visual Studio no Windows
  • Explorar a estrutura e os ficheiros do projeto
  • Compilar e executar o programa
  • Exibindo a saída usando printf e fprintf

API do ROCm

  • Utilizar a API do ROCm no programa anfitrião
  • Consulta de informações e capacidades do dispositivo
  • Atribuição e desalocação da memória do dispositivo
  • Cópia de dados entre o anfitrião e o dispositivo
  • Lançamento de kernels e sincronização de threads
  • Tratamento de erros e excepções

Linguagem HIP

  • Utilizar a linguagem HIP no programa do dispositivo
  • Escrever kernels que executam no GPU e manipulam dados
  • Utilizar tipos de dados, qualificadores, operadores e expressões
  • Utilização de funções incorporadas, variáveis e bibliotecas

Modelo de memória ROCm e HIP

  • Utilização de diferentes espaços de memória, como global, partilhada, constante e local
  • Utilização de diferentes objectos de memória, tais como ponteiros, arrays, texturas e superfícies
  • Utilização de diferentes modos de acesso à memória, como apenas leitura, apenas escrita, leitura-escrita, etc.
  • Utilização do modelo de consistência de memória e de mecanismos de sincronização

Modelo de execução ROCm e HIP

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

Depuração

  • Depuração dos programas ROCm e HIP no Windows
  • Utilizar o depurador de código Visual Studio para inspecionar variáveis, pontos de interrupção, pilha de chamadas, etc.
  • Utilização do depurador ROCm para depurar programas ROCm e HIP em dispositivos AMD
  • Usando o ROCm Profiler para analisar programas ROCm e HIP em dispositivos AMD

Otimização

  • Otimização de programas ROCm e HIP no Windows
  • Uso de técnicas de coalescência para melhorar o rendimento da memória
  • Uso de técnicas de cache e pré-busca para reduzir a latência da memória
  • Utilização de memória partilhada e técnicas de memória local para otimizar os acessos à memória e a largura de banda
  • Usar ferramentas de criação de perfil e de criação de perfil para medir e melhorar o tempo de execução e a utilização de recursos

Resumo e próximo passo

Requisitos

  • Conhecimento da linguagem C/C++ e dos conceitos de programação paralela
  • Conhecimentos básicos 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 operativo Windows e o PowerShell

Público-alvo

  • Programadores que pretendam aprender a instalar e utilizar o ROCm no Windows para programar AMD GPUs e explorar o seu paralelismo
  • Desenvolvedores que desejam escrever código de alto desempenho e escalável que pode ser executado em diferentes dispositivos AMD
  • Programadores que desejam explorar os aspectos de baixo nível da programação GPU e otimizar o desempenho do seu código
 21 horas

Número de participantes


Preço por participante

Declaração de Clientes (2)

Próximas Formações Provisórias