Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
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