Traduzido do inglês

ROCm é a pilha de software de código aberto da AMD para computação em GPU, suportando modelos de programação como HIP, OpenMP e OpenCL. Ela abrange GPGPU, HPC e computação heterogênea, sendo utilizada em supercomputadores e frameworks de aprendizado de máquina.

ROCm é uma pilha de software desenvolvida pela Advanced Micro Devices (AMD) para programação de unidades de processamento gráfico (GPU). Ela abrange vários domínios, incluindo computação de propósito geral em unidades de processamento gráfico (GPGPU), computação de alto desempenho (HPC) e computação heterogênea. ROCm oferece múltiplos modelos de programação, incluindo HIP (programação baseada em kernels de GPU), OpenMP (programação baseada em diretivas) e OpenCL. A pilha é software livre, de código aberto e gratuito, exceto pelos blobs de firmware de GPU, e é distribuída sob várias licenças. O nome inicialmente significava plataforma Radeon Open Compute, mas devido ao fato de "Open Compute" ser uma marca registrada, deixou de funcionar como um acrônimo.

ROCm é projetada para fornecer uma plataforma unificada para desenvolvedores aproveitarem GPUs AMD em tarefas computacionalmente intensivas, desde simulações científicas até cargas de trabalho de Machine learning. Ela inclui uma gama de componentes, desde drivers de kernel de baixo nível até bibliotecas e ferramentas de alto nível, permitindo execução eficiente em diversos hardwares. A pilha é desenvolvida ativamente pela AMD e pela comunidade de código aberto, com suporte tanto para GPUs profissionais quanto para consumidores.

Histórico

A primeira pilha de software GPGPU da ATI/AMD foi chamada Close to Metal, que posteriormente se tornou Stream. ROCm foi lançada por volta de 2016 com a iniciativa Boltzmann, baseando-se em pilhas anteriores de GPU da AMD. Algumas ferramentas remontam ao GPUOpen, enquanto outras se originam da Arquitetura de Sistema Heterogêneo (HSA). Em julho de 2026, a AMD anunciou que ROCm adotaria um ciclo de lançamento de seis semanas, visando atualizações e melhorias mais frequentes.

Linguagem Intermediária da Arquitetura de Sistema Heterogêneo

A HSAIL foi projetada para produzir uma representação intermediária de nível médio, agnóstica de hardware, que poderia ser compilada just-in-time (JIT) para o hardware final (GPU, FPGA, etc.) usando um finalizador apropriado. Essa abordagem foi abandonada para ROCm, que agora compila apenas código de GPU usando LLVM e seu backend AMDGPU, que foi integrado ao upstream. No entanto, a pesquisa continua sobre modularidade aprimorada com LLVM MLIR.

Capacidades de Programação

ROCm como uma pilha abrange desde o driver de kernel até aplicações de usuário final. A AMD fornece vídeos introdutórios sobre hardware GCN e programação ROCm através de seu portal de aprendizado. Uma das melhores introduções técnicas à pilha e à programação ROCm/HIP permanece, até hoje, encontrada no Reddit.

Suporte de Hardware

ROCm é primariamente direcionada a GPUs profissionais discretas, mas GPUs consumidoras e APUs com a mesma arquitetura de uma GPU profissional suportada são conhecidas por funcionar com ROCm. Por exemplo, todas as GPUs profissionais da arquitetura RDNA 2 são oficialmente suportadas pelo ROCm 5.x; usuários relatam que unidades RDNA2 consumidoras, como a Radeon 6800M APU e a Radeon 6700XT GPU, também funcionam.

GPUs de Grau Profissional

ROCm suporta oficialmente uma gama de GPUs profissionais, incluindo aquelas baseadas nas arquiteturas CDNA e RDNA. Essas são tipicamente usadas em data centers e estações de trabalho para cargas de trabalho de HPC e Artificial intelligence. O suporte é continuamente expandido a cada lançamento.

GPUs de Grau Consumidor

Embora não seja oficialmente garantido, muitas GPUs consumidoras das mesmas famílias de arquitetura que os modelos profissionais suportados funcionam com ROCm. A comunidade documentou uso bem-sucedido de GPUs Radeon consumidoras para tarefas de computação, embora desempenho e estabilidade possam variar.

Ecossistema de Software

Aprendizado de Máquina

Vários frameworks de Deep learning têm um backend ROCm, permitindo aceleração de GPU em hardware AMD. Frameworks notáveis incluem PyTorch, TensorFlow, ONNX, MXNet, CuPy, MIOpen, Caffe, Iree (que usa LLVM MLIR) e llama.cpp. Essas integrações permitem que desenvolvedores executem treinamento e inferência de Neural network em GPUs AMD, suportando modelos como Large language models e arquiteturas Transformer (architecture).

Supercomputação

ROCm está ganhando tração significativa nos 500 maiores supercomputadores. É usada com os supercomputadores exascale El Capitan e Frontier. Software relacionado está disponível no AMD Infinity Hub, que fornece aplicações conteinerizadas para pesquisa científica.

Outras Acelerações e Interoperabilidade Gráfica

A partir da versão 3.0, o Blender pode usar kernels de computação HIP para seu renderizador Cycles, habilitando renderização acelerada por GPU em hardware AMD.

Outras Linguagens

#### Julia

O pacote AMDGPU.jl para Julia integra-se com e seleciona componentes da pilha ROCm. Em vez de compilar código através de HIP, o AMDGPU.jl usa o compilador Julia para gerar IR LLVM diretamente, que é então consumido pelo LLVM para gerar código de dispositivo nativo. O AMDGPU.jl usa a implementação HSA do ROCr para carregar e executar código de dispositivo na GPU, similarmente a como o HIP carrega seu próprio código de dispositivo gerado. O AMDGPU.jl também suporta integração com as bibliotecas ROCm rocBLAS (para BLAS), rocRAND (para geração de números aleatórios) e rocFFT (para FFTs). Integração futura com rocALUTION, rocSOLVER, MIOpen e outras bibliotecas ROCm está planejada.

Distribuição de Software

Oficial

Instruções de instalação são fornecidas para Linux e Windows na documentação oficial da AMD ROCm. O software ROCm está atualmente espalhado por vários repositórios públicos no GitHub. Dentro do meta-repositório público principal, há um manifesto XML para cada lançamento; usando git-repo, uma ferramenta de controle de versão construída sobre o Git, é a maneira recomendada de sincronizar localmente com a pilha. A AMD também distribui aplicações conteinerizadas para ROCm, notavelmente aplicações de pesquisa científica reunidas sob o AMD Infinity Hub, e pacotes adaptados para várias distribuições Linux.

Terceiros

Há um ecossistema crescente de terceiros empacotando ROCm. Distribuições Linux estão oficialmente empacotando ROCm nativamente, com vários graus de avanço, incluindo Arch Linux, Gentoo, Debian, Fedora, GNU Guix e NixOS. Também existem pacotes Spack para ambientes de HPC.

Componentes

Há um componente de espaço de kernel, ROCk, e o restante - aproximadamente uma centena de componentes na pilha - são módulos de espaço de usuário. A política tipográfica não oficial é usar ROC maiúsculo, seguido de minúsculas para bibliotecas de baixo nível (por exemplo, ROCt), e o contrário para bibliotecas voltadas ao usuário (por exemplo, rocBLAS). A AMD está desenvolvendo ativamente com a comunidade LLVM, mas a integração ao upstream não é instantânea; a partir de janeiro de 2022, ainda está atrasada. A AMD ainda empacota oficialmente vários forks do LLVM para partes que ainda não foram integradas ao upstream, incluindo otimizações de compilador destinadas a permanecerem proprietárias, suporte a depuração, offloading OpenMP e mais.

Baixo Nível

#### ROCk - Driver de Kernel

O driver de kernel ROCk é o componente central do espaço de kernel que gerencia o hardware da GPU e fornece a interface para bibliotecas de espaço de usuário.

#### ROCm - Bibliotecas de Dispositivo

Bibliotecas de suporte implementadas como bitcode LLVM. Elas fornecem várias utilidades e funções para operações matemáticas, operações atômicas, consultas de parâmetros de lançamento, lançamento de kernels no dispositivo e mais.

#### ROCt - Thunk

O thunk ROCt é responsável por todo o pensamento e enfileiramento que entra na pilha, lidando com interações de baixo nível com o driver de kernel.

#### ROCr - Runtime

O runtime ROCr é um conjunto de APIs e bibliotecas que permite o lançamento de kernels de computação por aplicações host. É a implementação da AMD da API de runtime HSA. É diferente do Runtime de Linguagem Comum ROCm.

#### ROCm - Suporte a Compilador

O gerenciador de objetos de código ROCm é responsável por interagir com a representação intermediária LLVM, gerenciando objetos de código e seu carregamento.

Nível Médio

#### ROCclr - Runtime de Linguagem Comum

O runtime de linguagem comum ROCclr é uma camada de indireção que adapta chamadas para ROCr no Linux e PAL no Windows. Costumava ser capaz de rotear entre diferentes compiladores, como o compilador HSAIL. Agora está sendo absorvido pelas camadas de indireção superiores (HIP e OpenCL).

#### OpenCL

ROCm inclui seu próprio carregador de ICD (Installable Client Driver) e uma implementação OpenCL empacotada juntos. A partir de janeiro de 2022, o ROCm 4.5.2 inclui OpenCL 2.2, e está atrás da concorrência.

#### HIP - Interface de Portabilidade Heterogênea

A implementação da AMD para suas GPUs é chamada HIPAMD. Há também uma implementação para CPU, principalmente para fins de demonstração.

#### HIPCC

HIP inclui um compilador HIPCC que ou envolve o Clang e compila com o backend AMDGPU aberto do LLVM, ou redireciona para o compilador da NVIDIA.

#### HIPIFY

HIPIFY é uma ferramenta de compilação fonte-a-fonte. Ela traduz CUDA para HIP e vice-versa, usando uma ferramenta baseada em Clang ou um script Perl semelhante ao sed.

#### GPUFORT

Como o HIPIFY, GPUFORT é uma ferramenta que compila código-fonte para outros alvos, facilitando a portabilidade de código Fortran para execução em GPU.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:gpu-computing·open-source-software·amd·high-performance-computing
Esta página foi editada pela última vez em 9 de set. de 2026 por AI Wiki Bot · Histórico