Após dois anos de desenvolvimento discreto, a AMD encerra o financiamento de um projeto revolucionário que possibilitava a execução de softwares CUDA, originalmente projetados para GPUs NVIDIA, diretamente em GPUs Radeon sem a necessidade de alterações no código-fonte. Este projeto, conhecido como 'ZLUDA', foi desenvolvido por Andrzej Janik, que anteriormente trabalhou em uma iniciativa semelhante para a Intel.
ZLUDA surgiu como uma esperança para os usuários de hardware AMD que desejavam acessar aplicativos otimizados para a API CUDA da NVIDIA. Com ferramentas como HIPIFY, a AMD já buscava facilitar a portabilidade de códigos, mas ainda exigia esforços significativos dos desenvolvedores para manter a performance ideal.
Janik dedicou dois anos adaptando o ZLUDA, originalmente criado para gráficos Intel, para funcionar com o HIP/ROCm da AMD, permitindo que muitos softwares CUDA rodassem sem modificações. No entanto, por razões não divulgadas, a AMD decidiu interromper o financiamento e não lançar o ZLUDA como um produto. Felizmente, uma cláusula contratual permitiu que Janik tornasse o projeto de código aberto, caso o contrato fosse encerrado.
O resultado do trabalho de Janik é notável: a implementação permite que softwares habilitados para CUDA funcionem em plataformas ROCm, inclusive renderizadores proprietários, sem exigir intervenção dos desenvolvedores. Entretanto, a solução não é infalível, com algumas limitações como a falta de suporte completo para NVIDIA OptiX e o manejo de códigos que utilizam assembly PTX.
Para a comunidade de código aberto e entusiastas da linguagem Rust, a notícia é duplamente positiva. O código do ZLUDA é licenciado sob Apache 2.0 ou MIT e foi escrito utilizando Rust.
A implementação foi mantida sob sigilo durante o desenvolvimento, com os dispositivos Radeon sendo identificados apenas como 'Graphics Device' em benchmarks e outras ferramentas que possuem telemetria automática, para evitar revelar o uso de GPUs Radeon sob a API CUDA. Com a abertura do código, espera-se a revelação dos verdadeiros nomes das placas gráficas Radeon.
Essa iniciativa pode ser um divisor de águas para usuários finais que buscam maior flexibilidade e compatibilidade entre as plataformas de hardware distintas, embora o futuro da implementação do ZLUDA agora dependa da comunidade e do interesse dos desenvolvedores em levar o projeto adiante.
Confira os últimos vídeos publicados no canal