Lançamento do ZLUDA 5, uma implementação aberta universal da tecnologia CUDA

Andrzej Janik apresentou a versão ZLUDA 5, uma implementação aberta da tecnologia CUDA. O objetivo do projeto é permitir a execução de aplicativos CUDA não modificados em sistemas com GPUs diferentes das GPUs NVIDIA, com desempenho próximo ao de aplicativos executados sem intermediários. O código do projeto é escrito na linguagem Rust e é distribuído sob as licenças MIT e Apache 2.0.

ZLUDA 5 se tornou a segunda versão significativa do projeto, formada após a limpeza da base de código removendo o código desenvolvido durante o trabalho de Andrzej na AMD. Desde 2022, Andrzej trabalhou na AMD para criar uma camada de compatibilidade entre GPUs AMD e CUDA, mas em 2024 o projeto foi encerrado. De acordo com os termos do contrato e após receber permissão para publicação de um representante da AMD, Andrzej tornou público o código dos trabalhos realizados durante sua estadia na AMD, que permite a execução de aplicativos CUDA sobre a pilha ROCm e o runtime HIP (Heterogeneous-computing Interface for Portability).

No ano passado, Andrzej foi forçado a remover o código do acesso aberto após receber uma carta de advogados que deixaram claro que a permissão dada em correspondência por e-mail não tinha validade legal. Após isso, Andrzej começou a trabalhar em uma nova edição do ZLUDA, formada a partir da base de código existente antes do início de seu trabalho na AMD. No estado atual, o desenvolvimento está focado na execução de aplicativos que utilizam CUDA para acelerar tarefas relacionadas ao aprendizado de máquina. O projeto atualmente é limitado ao funcionamento em GPUs AMD, mas será adaptado no futuro para GPUs Intel.

Principais melhorias na nova versão:

  • Adicionada a suporte inicial para a execução de frameworks llm.c, Llama.cpp e PyTorch sobre ZLUDA para a execução de grandes modelos de linguagem utilizando otimizações CUDA aplicadas para GPUs NVIDIA.
  • Implementado o suporte inicial para a execução de aplicativos que utilizam as bibliotecas cuBLAS, cuBLASLt e nvml para melhorar o desempenho.
  • Adicionada a camada zluda_trace para rastreamento de aplicativos que utilizam CUDA. Com zluda_trace, é possível diagnosticar problemas e identificar deficiências no ZLUDA que impedem a execução normal do aplicativo.
  • Foi apresentada a ferramenta de linha de comando zoc (compilador offline ZLUDA), que permite compilar arquivos com instruções NVIDIA PTX para uma representação intermediária AMD RDNA (anteriormente, essa funcionalidade estava disponível na forma de funções de biblioteca).
  • No carregador de módulos PTX, foi implementado um mecanismo de cache para núcleos executados na GPU. O caching evita a reexecução de operações de compilação de instruções PTX (Parallel Thread Execution) que consomem muitos recursos em código de máquina para uma GPU específica.

    Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster