Guia de Programação AMD HIP
Um manual técnico abrangente para a Interface de Computação Heterogênea para Portabilidade (HIP). Ele fornece uma API de tempo de execução em C++ e uma linguagem de kernel que permite aos desenvolvedores criar aplicativos portáveis para GPUs AMD e NVIDIA a partir de um único código-fonte. O guia cobre instalação, configuração do ambiente, modelos de programação, alocação de memória e ferramentas para portar código CUDA para HIP.
Visão Geral do Curso
Resumo do Conteúdo
Um manual técnico abrangente para a Interface de Computação Heterogênea para Portabilidade (HIP). Ele fornece uma API de tempo de execução em C++ e uma linguagem de kernel que permite aos desenvolvedores criar aplicações portáveis para GPUs AMD e NVIDIA a partir de um único código-fonte. O guia cobre instalação, configuração do ambiente, modelos de programação, alocação de memória e ferramentas para migrar códigos CUDA para HIP.
Domine a programação GPU portável: uma única fonte para plataformas AMD e NVIDIA.
Autor: Advanced Micro Devices, Inc. (AMD)
Agradecimentos: AMD, o logotipo AMD Arrow, AMD Instinct, Radeon, ROCm e suas combinações são marcas registradas da Advanced Micro Devices, Inc. Linux é uma marca registrada de Linus Torvalds. PCIe é uma marca registrada da PCI-SIG Corporation.
Objetivos de Aprendizagem
- Definir os principais recursos e propostas de valor da estrutura HIP.
- Demonstrar como acessar e consultar o ambiente HIP usando ferramentas do sistema.
- Explicar a relação arquitetônica entre a portabilidade do HIP e sua tecnologia de compilador.
- Executar instalações específicas da plataforma para ambientes NVIDIA e AMD.
- Coordenar o processo de compilação multi-repositório para compilar o HIP a partir do código-fonte.
- Validar uma instalação bem-sucedida usando ferramentas de configuração e verificação do sistema.
- Configurar e gerenciar a memória da GPU usando alocação HIP, controles de coerência e visibilidade de memória host zero-copy.
- Desenvolver kernels de alto desempenho usando qualificadores específicos do HIP, tipos vetoriais e primitivas de sincronização.
- Implementar algoritmos paralelos avançados utilizando funções de embaralhamento de warp, votação, balotagem e grupos cooperativos.
- Automatizar a tradução de código CUDA para HIP usando as ferramentas HIPIFY e gerenciar conversões de projetos in-loco.