Plataforma de Computação AMD ROCm: Um Guia Abrangente para Ubuntu
O AMD ROCm é uma pilha de software de computação de GPU de código aberto, concebida para impulsionar a inteligência artificial de alto desempenho, inferência de aprendizado profundo e cálculos científicos. Este artigo detalha o processo de instalação e configuração do ROCm em sistemas Ubuntu, permitindo que você estabeleça um ambiente robusto para desenvolvimento com GPUs AMD.
Preparativos Essenciais e Verificação do Ambiente
Requisitos Mínimos do Sistema
Antes de prosseguir com a instalação, certifique-se de que seu sistema atende às seguintes especificações:
- Sistema Operacional: Ubuntu 20.04, 22.04 ou 24.04 LTS
- Hardware Gráfico: GPUs da série AMD Radeon Instinct (como as da série MI300)
- Armazenamento: Pelo menos 50 GB de espaço em disco disponível
- Memória RAM: Recomendado 16 GB ou mais
Ferramentas Indispnesáveis para a Construção
Inicie instalando as ferramentas cruciais necessárias para compilar o ROCm a partir do código-fonte:
# Instalar o 'repo' para gerenciar múltiplos repositórios Git
mkdir -p ~/bin/
curl -s https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod +x ~/bin/repo
# Instalar o Git LFS para manipulação de arquivos grandes
sudo apt update
sudo apt install git-lfs -y
Obtenção e Inicialização do Código-Fonte
Passo 1: Estabelecer o Diretório de Trabalho
Crie e navegue para o diretório que servirá como seu espaço de trabalho para o ROCm:
# Criar e acessar o diretório de trabalho do projeto ROCm
mkdir -p ~/rocm-workspace/
cd ~/rocm-workspace/
Passo 2: Configurar e Sincronizar os Fontes
Defina a versão do ROCm e utilize o repo para baixar o código-fonte de todos os componentes:
# Definir a versão específica do ROCm a ser utilizada
export ROCM_PLATFORM_VERSION="6.3.2"
# Inicializar a configuração do repositório, apontando para o manifest da versão desejada
~/bin/repo init -u https://github.com/ROCm/ROCm.git -b roc-6.3.x -m tools/rocm-build/rocm-${ROCM_PLATFORM_VERSION}.xml
# Sincronizar todos os módulos e dependências do código-fonte. Este processo pode ser demorado.
echo "Iniciando a sincronização dos componentes ROCm. Isso pode levar um tempo considerável..."
~/bin/repo sync
Notas Importantes:
- O branch
roc-6.3.xé utilizado para obter uma versão estável. - O arquivo
rocm-${ROCM_PLATFORM_VERSION}.xmldetalha as versões exatas de cada componente. - Mantenha uma conexão de internet estável durante a sincronização.
Estratégias de Configuração do Ambiente de Compilação
Opção A: Compilação via Contêiner Docker (Recomendado)
A abordagem Docker isola o ambiente de compilação, garantindo consistência e minimizando conflitos de dependências com o sistema hospedeiro.
# Baixar a imagem Docker pré-configurada para o processo de compilação
docker pull rocm/rocm-build-ubuntu-20.04:6.3
# Iniciar o contêiner de compilação, montando volumes essenciais e definindo variáveis de ambiente
docker run -ti \
-e ROCM_BUILD_VERSION=${ROCM_PLATFORM_VERSION} \
-e CCACHE_DIR=/host_ccache \
-e WORK_DIR_IN_CONTAINER=/source_code \
-w /source_code \
-v "$PWD":/source_code \
-v "$HOME/.ccache":/host_ccache \
-u $(id -u):$(id -g) \
rocm/rocm-build-ubuntu-20.04:6.3 bash
Opção B: Compilação Direta no Sistema Hospedeiro
Para construir o ROCm diretamente no seu Ubuntu, você precisará instalar as dependências necessárias. O projeto ROCm inclui um script para este fim.
# Navegar para o diretório que contém o script de pré-requisitos para Ubuntu 22.04
cd ~/rocm-workspace/ROCm/tools/rocm-build/docker/ubuntu22
# Copiar e executar o script de instalação de dependências
cp install-prerequisites.sh /tmp/rocm_deps_install.sh
cd /tmp
bash rocm_deps_install.sh
Processo de Compilação e Ajustes de Otimização
Seleção da Arquitetura de GPU Alvo
Especifique a arquitetura da GPU que você está utilizando para otimizar a compilação. Para GPUs da série MI300, as arquiteturas comuns são gfx940, gfx941 e gfx942.
# Definir as arquiteturas de GPU para a série MI300
export TARGET_GPU_ARCHS="gfx940;gfx941;gfx942"
# Para acelerar a compilação, é possível selecionar uma única arquitetura
# export TARGET_GPU_ARCHS="gfx942"
Execução do Comando de Compilação
Com o ambiente configurado e a arquitetura alvo definida, inicie a compilação dos componantes do ROCm:
# Voltar para o diretório raiz do workspace
cd ~/rocm-workspace
# Compilar os pacotes centrais de desenvolvimento do ROCm
make -f ROCm/tools/rocm-build/ROCm.mk -j $(nproc) rocm-dev
# Para listar todos os componentes disponíveis para compilação:
# make -f ROCm/tools/rocm-build/ROCm.mk list_components
# Para compilar um componente específico (exemplo: rocBLAS):
# make -f ROCm/tools/rocm-build/ROCm.mk T_rocblas
Verificação da Instalação e Solução de Problemas
Inspeção dos Artefatos de Compilação
Após a conclusão da compilação, verifique os pacotes gerados e os logs para quaisquer anomalias:
# Listar os pacotes Debian (.deb) gerados (exemplo: para Ubuntu 22.04)
ls -lh out/ubuntu-22.04/22.04/deb/
# Consultar os arquivos de log para depuração
ls -lh out/ubuntu-22.04/22.04/logs/
Dicas Comuns para Solução de Problemas
-
Problema: Memória InsuficienteSe a compilação falhar devido a falta de memória, considere aumentar o espaço de troca (swap):
# Criar e ativar um arquivo de swap de 8GB sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Para persistência após reinício, adicione a linha seguinte ao /etc/fstab: # echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab -
Problema: Dependências FaltandoExecute novamente o script de instalação de pré-requisitos para garantir que todas as dependências estejam presentes:
# Reexecutar o script de instalação de pré-requisitos do ROCm bash ~/rocm-workspace/ROCm/tools/rocm-build/docker/ubuntu22/install-prerequisites.sh -
Problema: Arquitetura de GPU IncompatívelVerifique o modelo de sua GPU e atualize a variável de ambiente
TARGET_GPU_ARCHSse necessário:# Verificar o modelo da GPU instalada /opt/rocm/bin/rocm-smi # Ou use 'rocminfo' se 'rocm-smi' não estiver disponível # Atualizar a variável TARGET_GPU_ARCHS com a arquitetura correta # export TARGET_GPU_ARCHS="gfxXYZ"
Sugestões de Otimização de Performance
- Compilação Paralela: Aproveite todos os núcleos da CPU usando
-j $(nproc). - Otimização de Cache: Habilite o
ccachepara acelerar recompilações subsequentes. - Foco na Arquitetura: Compile apenas para a arquitetura de GPU específica do seu hardware para reduzir o tempo de compilação.
Com a conclusão destes passos, o AMD ROCm GPU compute platform estará configurado em seu sistema Ubuntu. Você está pronto para explorar o desenvolvimento de aplicações de IA utilizando frameworks como PyTorch/TensorFlow com HIP, ou para trabalhar com bibliotecas HPC do ROCm.