AMD apoiou discretamente uma implementação de CUDA sobre ROCm e a lançou como código aberto
- A AMD vem trabalhando há vários anos para permitir que bases de código voltadas à API CUDA da NVIDIA possam rodar em HIP/ROCm.
- Apesar desses esforços, isso não era uma boa solução (simples, imediata e com desempenho garantido) para quem buscava desempenho ideal.
- Nos últimos dois anos, a AMD vem apoiando discretamente um projeto para fornecer compatibilidade binária em nível de biblioteca, permitindo que muitos aplicativos NVIDIA CUDA rodem sobre a pilha AMD ROCm sem alterações no código-fonte.
ZLUDA: suporte a CUDA para gráficos Intel
- Alguns anos atrás, um projeto chamado ZLUDA foi iniciado para oferecer suporte a CUDA em gráficos Intel, mas foi interrompido por motivos pessoais.
- O desenvolvedor do ZLUDA, Andrzej Janik, recebeu da AMD em 2022 um contrato para adaptar o ZLUDA ao uso de HIP/ROCm em GPUs AMD.
- Nos últimos dois anos, Janik implementou o ZLUDA em GPUs Radeon, permitindo que muitos softwares CUDA rodem em HIP/ROCm sem modificações.
Código aberto do ZLUDA
- A AMD decidiu encerrar o financiamento deste projeto neste ano e não lançá-lo como produto de software.
- No entanto, havia uma cláusula no fim do contrato permitindo que Janik publicasse o trabalho como código aberto.
- Janik ofereceu acesso para testar e executar benchmarks desta nova implementação do ZLUDA.
Limitações da implementação do ZLUDA e código aberto
- A implementação do ZLUDA não é 100% segura, com suporte incompleto ao NVIDIA OptiX e sem lidar atualmente com softwares que não usam código assembly PTX, entre outras limitações.
- Na maioria dos casos, esta implementação é surpreendentemente capaz para o trabalho de um único desenvolvedor.
- O código aberto é licenciado de forma dupla sob as licenças Apache 2.0 ou MIT.
- A linguagem de programação Rust foi usada para esta implementação para Radeon.
Opinião do GN⁺
- Este artigo apresenta um projeto que a AMD apoiou discretamente para oferecer compatibilidade com CUDA, o que pode ser uma grande contribuição para a comunidade de código aberto.
- O ZLUDA é um avanço importante por permitir que desenvolvedores executem aplicativos CUDA na plataforma AMD sem alterar o código-fonte.
- Esses esforços dão aos usuários de GPUs AMD acesso a um ecossistema de software mais amplo, e é especialmente interessante ver o uso de uma linguagem moderna como Rust.
2 comentários
Nvidia, vai se foder!
Opinião do Hacker News
O ZLUDA foi publicado como código aberto depois que a AMD encerrou o financiamento
Menção à CUDA Dark API
Opiniões torcendo para que a AMD quebre o monopólio do CUDA
Relato de experiência sobre a tentativa de rodar Stable Diffusion em uma GPU AMD e as dificuldades encontradas
Alguns anos depois de o Blender abandonar o OpenCL e adotar um backend CUDA, ele adicionou um backend Radeon HIP, mas foi constatado que usar ZLUDA + backend CUDA é ligeiramente mais rápido do que o backend Radeon HIP.
A decisão da AMD de parar de financiar este projeto parece incompreensível.
Pergunta relacionada à notícia de que a Nvidia teria burlado a verificação de driver sob licença GPL no kernel
Um artigo do Phoronix apresenta um guia para quem quiser compilar diretamente a stack ROCm/HIP da AMD.
O ROCm parece ser melhor explicado no GitHub do que na documentação oficial, o que reforça a importância do branding como um dos motivos de a AMD perder competitividade no mercado.
Há também quem ache que a AMD deveria alocar mais equipes para este projeto.