-
Importância do MLC-LLM
- O MLC-LLM permite compilar e implantar LLMs em GPUs AMD usando ROCm.
- A AMD Radeon™ RX 7900 XTX entrega 80% do desempenho da NVIDIA® GeForce RTX™ 4090 e 94% da NVIDIA® RTX™ 3090Ti.
- Com suporte a Vulkan, também é possível implantar LLMs em dispositivos AMD APU como o SteamDeck.
-
Contexto
- Desde a expansão dos LLMs de código aberto, surgiram muitas soluções de inferência de LLM.
- A maioria das soluções de alta performance é baseada em CUDA e otimizada para GPUs NVIDIA.
- Com a alta demanda por disponibilidade computacional, torna-se útil suportar uma gama mais ampla de aceleradores de hardware.
- A AMD é um candidato em potencial.
-
Discussão de hardware e software
- A AMD RX 7900 XTX possui especificações comparáveis à NVIDIA RTX 4090 e RTX 3090 Ti.
- Todos os modelos têm 24 GB de memória, o que permite acomodar modelos de mesmo porte.
- O desempenho FP16 é 2 vezes maior no 4090 do que no 7900 XTX, e 1,3 vez maior no 3090 Ti.
- O RX 7900 XTX é 40% mais barato que o RTX 4090.
- O motivo de a AMD ter ficado para trás no passado foi a falta de suporte de software, e não de hardware.
-
Compilação de machine learning para ROCm
- A compilação de machine learning (MLC) é uma tecnologia nova que automatiza a otimização de workloads de machine learning.
- O MLC-LLM é baseado no Apache TVM Unity e oferece implantação unificada de alto desempenho para diversos backends.
- Por meio de um fluxo de trabalho baseado em Python, compila modelos de linguagem e otimiza o layout e o escalonamento dos kernels de GPU.
-
MLC para GPUs e APUs AMD
- Várias opções para suportar GPUs AMD: ROCm, OpenCL, Vulkan e WebGPU.
- A stack ROCm, impulsionada recentemente pela AMD, inclui muitos componentes semelhantes à stack CUDA.
- O Vulkan é o padrão gráfico mais recente e oferece o suporte mais amplo entre dispositivos GPU.
- O MLC suporta geração automática de código, viabilizando diversas abordagens sem precisar reestruturar cada kernel de GPU.
-
Benchmark com o pacote MLC Python
- Foi feito benchmark dos modelos Llama 2 7B e 13B com quantização de 4 bits.
- O desempenho de inferência de lote único alcançou 80% da velocidade da NVIDIA 4090 com o lançamento do ROCm 5.6.
-
Execução com Vulkan no SteamDeck
- É possível executar em um SteamDeck com APU AMD usando Vulkan.
- No ROCm, a VRAM da GPU fica limitada a 4 GB pela BIOS, mas o driver Mesa Vulkan pode usar memória unificada para ampliar até 16 GB.
-
Discussão e próximos passos
- A disponibilidade de hardware se destaca como um ponto crítico na era da IA generativa.
- A compilação de ML permite implantação unificada de alto desempenho em todo o backend de hardware.
- Pesquisas sobre GPUs de consumo também podem se generalizar para GPUs em nuvem.
- A comunidade é encorajada a construir soluções baseadas no fluxo de implantação unificada do MLC.
-
Conclusão final
- A engenharia de sistemas de machine learning é uma atividade contínua.
- A NVIDIA ainda lidera essa área por meio de inovação e deve continuar evoluindo com novos avanços em hardware e software.
- Graças ao fluxo de desenvolvimento de compilação de ML baseado em Python, foi possível obter suporte de otimização para ROCm em poucas horas.
-
Links e agradecimentos
- Para mais detalhes sobre a implantação do MLC LLM, consulte a página do projeto.
- O código-fonte do MLC LLM pode ser encontrado no repositório oficial do GitHub.
- Agradecimentos à comunidade Apache TVM e aos desenvolvedores do compilador TVM Unity.
1 comentários
Comentário do Hacker News
O desempenho da GPU para consumidores da AMD (RX7900XTX) é diferente do da GPU de datacenter da AMD (MI300X) porque há diferença de arquitetura entre RDNA e CDNA. A AMD está prevista para lançar a arquitetura UDNA por volta de 2026. A CentML está integrando suporte a AMD CDNA e HIP no compilador de deep learning Hidet.
Várias startups estão tentando quebrar a supremacia da Nvidia usando GPUs da AMD. Entre elas estão Felafax, Lamini, tensorwave e SlashML. Algumas afirmam que a barreira do CUDA é de cerca de 18 meses.
Uma equipe que trabalhava com TVM e MLC se juntou à NVIDIA na OctoAI.
Testar o Phi-4 Q6 no 7950x e no 7900XT mostrou que ele fica muito rápido usando apenas CPU, e confirmou-se o potencial de uso doméstico da AMD.
Não consigo entender por que a comunidade de ML não sai do CUDA. O CUDA é fechado e não é multiplataforma. Com os avanços de IA/LLM, uma migração para multiplataforma deveria ter acontecido mais rápido.
As GPUs RTX 3090 usadas custam entre US$ 600 e 900, oferecem melhor desempenho que a 7900 e, graças ao CUDA, são mais versáteis.
O foco em melhorar a eficiência é importante. Além da eficiência de custo, também é necessária eficiência de energia e computação. Estou testando inferência em CPU comum com o llama.cpp.
A Modular afirma ter alcançado 79% de utilização de GPU em GPUs AMD e planeja um lançamento de prévia oficial para o início do próximo ano. Está otimista por conta de feedback positivo sobre o desempenho das GPUs Nvidia.