>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Python

Como Compilar ROCm Sem Perder a Sanidade

Se você já tentou implementar a stack ROCm (Radeon Open Compute) para trabalho com redes neurais em GPUs AMD, sabe que é uma verdadeira aventura. Geralmente termina de duas formas: ou instalando pacotes binários massivos que arrastam metade das dependências do sistema, ou tentando compilar tudo a partir do código-fonte, o que se transforma em uma busca sem fim pelas versões corretas das bibliotecas.

Recentemente encontrei o repositório TheRock da equipe AMD. É uma tentativa de tornar o processo de compilação e implantação do HIP e ROCm mais amigável. O projeto está atualmente em status de prévia inicial, mas já parece uma tábua de salvação para quem quer usar os recursos mais recentes do PyTorch ou JAX em hardware AMD sem esperar pelos lançamentos oficiais de distribuição.

O Que Há Dentro Dessa "Pedra"

TheRock (The HIP Environment and ROCm Kit) é uma plataforma de compilação leve. Essencialmente, é um projeto CMake massivo que pode puxar os componentes ROCm necessários, corrigi-los e compilá-los em uma única unidade coesa.

O valor principal aqui não está no código em si, mas sim na infraestrutura. A equipe da AMD disponibilizou as ferramentas que, pelo que tudo indica, eles próprios utilizam para compilações diárias.

Veja o que o projeto oferece atualmente:

  • Compilações noturnas de ROCm e PyTorch. Se você precisa de uma correção que acabou de chegar no master, este é o seu caminho.
  • Suporte para compilar PyTorch e JAX a partir do código-fonte especificamente para ROCm.
  • Compatibilidade multiplataforma. Funciona em várias distribuições Linux e, surpreendentemente, nativamente no Windows 11.
  • Personalização granular. Você pode remover tudo o que é desnecessário (como depuradores ou bibliotecas de comunicação específicas) e compilar apenas o que precisa para sua tarefa específica.

Como Funciona na Prática

O projeto usa scripts Python para preparação do ambiente e CMake para a compilação real. Um detalhe interessante: DVC (Data Version Control) é usado para gerenciar dados binários pesados (como kernels MIOpen compilados). Isso realmente economiza tempo durante a compilação, já que você não precisa recompilar tudo do zero.

Para começar no Ubuntu 24.04, o processo é mais ou menos assim:

Depois disso, a mágica do CMake começa. Você pode especificar a arquitetura da sua GPU usando a flag %%5. Se você não sabe qual "cabeça" você tem, há um script no repositório que vai sugerir o alvo correto.

Flexibilidade de Compilação

TheRock implementa um sistema de flags modular. Se você não está fazendo treinamento distribuído em clusters, provavelmente não precisa de bibliotecas de comunicação como RCCL. Você pode simplesmente desativá-las:

A lista de componentes é impressionante: do compilador e runtime até bibliotecas de processamento de vídeo (rocDecode, rocJPEG) e ferramentas de perfil. Há até suporte de emulação via ROCjitsu, que é útil se você está escrevendo código para uma GPU que não tem em mãos agora.

Acelerando o Processo com ccache

Compilar LLVM e bibliotecas pesadas de ML leva muito tempo. Os desenvolvedores do TheRock entendem isso e adicionaram scripts para configurar ccache. Além disso, eles levaram em conta as especificidades de compilar código para AMDGPU (a flag %%6), que às vezes pode fazer o ccache regular se comportar de forma estranha.

No Linux, isso é habilitado com um único comando:

Depois disso, compilações repetidas ficam muito mais rápidas.

Quem Vai Se Beneficiar Disso

Vejo três cenários principais onde o TheRock é realmente útil:

  1. Pesquisadores e engenheiros de ML: quando você precisa executar o PyTorch mais recente com suporte para novos recursos do ROCm que ainda não chegaram às imagens Docker estáveis.
  2. Desenvolvedores de bibliotecas: se você está escrevendo algo sobre HIP, TheRock fornece um sandbox conveniente com todas as ferramentas de depuração (ROCgdb, rocprofv3).
  3. Usuários do Windows: o suporte do ROCm no Windows ainda está追赶 ao Linux, e ter um guia de compilação claro via VS 2022 é uma grande vantagem.

O projeto TheRock não é "apenas outro instalador" — é mais como uma bancada de trabalho profissional. Sim, requer entender como o CMake funciona e quais dependências seu sistema precisa. Mas em troca, oferece controle total sobre a stack ROCm.

Se você está cansado de lutar contra conflitos de pacotes no seu sistema ou quer extrair o máximo da sua Radeon para tarefas de machine learning, dê uma olhada neste repositório. Apenas lembre-se de que o projeto está em acesso antecipado — bugs são possíveis, mas a comunidade e os desenvolvedores da AMD são bastante ativos lá.

Você pode verificar o status das compilações noturnas e a documentação no deles

Projetos relacionados