Voltar aos Cursos
AI022 Professional

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.

4.9
12.0h
841 estudantes
0 curtidas
Inteligência Artificial
Começar a Aprender

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

  1. Definir os principais recursos e propostas de valor da estrutura HIP.
  2. Demonstrar como acessar e consultar o ambiente HIP usando ferramentas do sistema.
  3. Explicar a relação arquitetônica entre a portabilidade do HIP e sua tecnologia de compilador.
  4. Executar instalações específicas da plataforma para ambientes NVIDIA e AMD.
  5. Coordenar o processo de compilação multi-repositório para compilar o HIP a partir do código-fonte.
  6. Validar uma instalação bem-sucedida usando ferramentas de configuração e verificação do sistema.
  7. Configurar e gerenciar a memória da GPU usando alocação HIP, controles de coerência e visibilidade de memória host zero-copy.
  8. Desenvolver kernels de alto desempenho usando qualificadores específicos do HIP, tipos vetoriais e primitivas de sincronização.
  9. Implementar algoritmos paralelos avançados utilizando funções de embaralhamento de warp, votação, balotagem e grupos cooperativos.
  10. Automatizar a tradução de código CUDA para HIP usando as ferramentas HIPIFY e gerenciar conversões de projetos in-loco.

🔹 Lição 1: Introdução à Portabilidade e Arquitetura do HIP

Visão Geral: Esta lição aborda os aspectos fundamentais da Interface de Computação Heterogênea para Portabilidade (HIP). Foca nos recursos centrais que definem o HIP, os métodos principais para acessar o ambiente HIP e a tecnologia de compilador subjacente que habilita a portabilidade sem problemas entre diferentes arquiteturas de GPU (AMD e NVIDIA).

Resultados 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.

🔹 Lição 2: Instalação e Verificação do Ambiente HIP

Visão Geral: Esta lição fornece um guia técnico para configurar o ambiente HIP (Interface de Computação Heterogênea para Portabilidade) em diferentes plataformas de hardware. Cobertura dos passos específicos de instalação para backends AMD e NVIDIA, o processo complexo de compilação do runtime HIP a partir de repositórios de código-fonte e os procedimentos finais de verificação para garantir a prontidão do sistema para desenvolvimento com GPU.

Resultados de Aprendizagem:

  • 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.

🔹 Lição 3: Modelo e Profundidade da API do HIP

Visão Geral: Esta lição oferece uma exploração abrangente do modelo de programação da Interface de Computação Heterogênea para Portabilidade (HIP). Aborda a API fundamental para gerenciamento de memória e execução de kernels, os detalhes da linguagem de kernel HIP (incluindo qualificadores e variáveis embutidas) e funcionalidades avançadas como primitivas de nível de warp, grupos cooperativos e intrínsecas matemáticas especializadas.

Resultados de Aprendizagem:

  • 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/funções específicas 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.

🔹 Lição 4: Migrando e Convertendo Aplicações CUDA para HIP

Visão Geral: Esta lição aborda o processo sistemático de migrar código-fonte CUDA para a estrutura HIP (Interface de Computação Heterogênea para Portabilidade). Detalha o uso de ferramentas automatizadas como o HIPIFY, estratégias para conversão de projetos, identificação de comportamentos específicos do compilador por plataforma (HIP-Clang vs. NVIDIA) e gestão das diferenças arquitetônicas.

Resultados de Aprendizagem:

  • Automatizar a tradução de código CUDA para HIP usando ferramentas HIPIFY e gerenciar conversões de projetos in-loco.
  • Diferenciar entre plataformas e compiladores-alvo AMD e NVIDIA usando macros de pré-processador e consultas de ambiente.
  • Implementar verificações de funcionalidades arquitetônicas (HIP_ARCH) e aplicar soluções alternativas para funções CUDA especializadas como memcpyToSymbol.