Este pode ser o momento que a AMD esperou por muito tempo.
Recentemente, a Wafer AI implantou no AMD MI355X Kimi K3. Como resultado, o modelo que anteriormente exigia 16 NVIDIA B200 distribuídos em dois servidores agora pode ser implantado em um único servidor AMD com 8 MI355X.

Mais importante ainda, não é apenas colocar o modelo dentro.
No teste com entrada de 1024 tokens e saída de 400 tokens, o MI355X alcançou uma taxa total de throughput de 952 tokens/s, com uma velocidade de geração por usuário de 118 tokens/s.
Calculado por nó único, seu throughput é cerca de 3,8 vezes maior que a solução de 16 cartões B200, e sua relação custo-benefício também supera a B200 e a B300.
E o mais surpreendente é que o ROCm não passou por nenhuma complicação这次.
O modelo é muito grande, a memória gráfica começa a ser mais importante que o poder de processamento
Kimi O K3 possui 2,8 trilhões de parâmetros, exigindo mais de 1,5 TB de memória GPU apenas para os pesos do modelo, sem contar o KV Cache necessário para contextos de milhões de tokens.
Um servidor com 8 GPUs B200, cada uma com 192 GB de memória VRAM, tem uma capacidade total de aproximadamente 1,5 TB. Isso significa que é difícil acomodar completamente os pesos do modelo, muito menos deixar espaço para o KV Cache. Portanto, o B200 precisa utilizar dois servidores e 16 GPUs.
Cada cartão B300 possui 288 GB de memória VRAM, permitindo que o modelo seja acomodado dentro de um único nó. Curiosamente, o AMD MI355X também possui 288 GB de memória VRAM; oito MI355X somam cerca de 2,3 TB, suficiente para uma única servidor.
Isso não é apenas uma máquina a menos. Após o modelo ser executado entre nós, a geração de cada token pode exigir sincronização de dados pela rede. Mesmo com uma rede RoCE v2 de aproximadamente 195 GB/s, a comunicação entre nós ainda desacelera a decodificação.
O MI355X, com mais memória de vídeo, manteve todo o modelo em um único nó.

Do resultado final, o throughput pico total de 8 MI355X atingiu 952 Token/s, com uma velocidade de geração por caminho de 118 Token/s.
Para comparação, o throughput total de uma implantação de nó duplo com 16 B200 é de 498 Token/s, o que equivale a aproximadamente 249 Token/s por nó.
Ou seja, o throughput por nó do MI355X é aproximadamente 3,8 vezes maior que o throughput médio por nó da implantação dual-node do B200. Em termos de velocidade de geração por usuário, os 118 Token/s do MI355X também superam os 90 Token/s do B200.
O B300 continua sendo a solução com o desempenho absoluto mais alto. O throughput total de um nó com 8 B300 atinge 1568 Token/s, com uma velocidade de geração por caminho de 172 Token/s, resultando em um throughput total aproximadamente 1,65 vezes maior que o do MI355X.

Mas o preço alterou a conclusão. O Wafer é calculado a US$ 2,50 por cartão por hora para MI355X, US$ 4,25 para B200 e US$ 6,00 para B300.
Sob este pressuposto de preço, o MI355X oferece aproximadamente 48 Token/s de throughput pico por dólar; o B200, cerca de 7 Token/s; e o B300, cerca de 33 Token/s.
B300 é mais rápido, mas o MI355X oferece maior eficiência de custo por unidade. Para centros de dados que precisam executar modelos abertos em grande escala, isso pode ser mais importante do que simplesmente competir pelo título de desempenho máximo.
Mais surpreendente ainda, o ROCm pode ser usado diretamente.
Por muito tempo, o maior problema das GPU de data center da AMD não foi geralmente o hardware, mas sim o software.
O mesmo modelo pode ser executado diretamente no CUDA, mas no ROCm pode ser necessário alterar o framework, adicionar operadores ou até reescrever os kernels subjacentes.
Mas Kimi A situação do K3 é diferente.
A AMD forneceu suporte quase sincronizado no lançamento. A Wafer afirmou que os modelos podem ser executados diretamente no MI355X, e os trabalhos subsequentes se concentram principalmente em poucos problemas de compatibilidade e otimização de desempenho.
Um dos problemas ocorreu na etapa de decodificação por inferência. Kimi O K3 não fornece os parâmetros do modelo rascunho necessários para o MTP ou EAGLE, portanto, o Wafer utilizou um modelo externo de difusão de bloco como rascunho.
Este plano pode ser executado diretamente no CUDA, mas no ambiente ROCm, o primeiro pedido real causa um erro no agendador. A causa é a ausência de definição de uma função chamada top_k_renorm_prob no ramo ROCm.
O que esta função faz não é complicado: selecionar os k valores mais altos da distribuição de probabilidade, definir as outras probabilidades como zero e renormalizar as probabilidades mantidas.
Wafer finalmente preencheu esse trecho de lógica com uma função comum do PyTorch, sem necessidade de escrever kernels de GPU manualmente nem de redesenhar o sistema de decodificação por inferência.
Após a correção, a decodificação estimada aumentou o desempenho em um único fluxo em cerca de 2,2 vezes, o desempenho em fluxo único sob concorrência média em cerca de 1,7 vezes e o throughput total máximo em cerca de 18%.

Mais importante, o sistema consegue atingir o pico de throughput sob maior concorrência.
O primeiro caractere está muito lento, no final só foram adicionados quatro zeros
Claro, o throughput não é tudo em serviços de inferência. Para usuários reais, outro indicador que afeta diretamente a experiência é o TTFT, ou seja, o tempo de espera entre o envio da requisição e a visualização do primeiro Token.
Neste cenário, o MI355X teve um desempenho inicial inferior. Diante de uma tarefa de pré-carregamento de inicialização fria de aproximadamente 172.000 tokens, o MI355X levou cerca de 51 segundos, enquanto o B300 levou apenas cerca de 23 segundos.
Em modelos que suportam contextos de milhões de tokens, a tarefa de pré-preenchimento pode ser extremamente grande. Se, ao processar contextos longos, os usuários precisarem esperar dezenas de segundos ou mais a cada vez, nenhuma velocidade de decodificação, por mais alta que seja, conseguirá compensar os problemas de experiência.
Wafer descobriu finalmente que a diferença de desempenho quase toda vem de um núcleo de atenção. Kimi No configuration de paralelismo de tensor de 8 vias, cada GPU receberá 12 cabeças de atenção. Já o kernel de pré-preenchimento MLA mais rápido do AMD AITER suporta apenas formas que são múltiplos de 4, 8 ou 16.
12 cabeças não puderam ser emparelhadas, então o sistema recorreu à implementação genérica mais lenta do Triton.
A solução é simples: preencha com zeros os 12 cabeçalhos de atenção até atingir 16, utilize o núcleo de alta velocidade existente e, após o cálculo, recupere apenas os 12 cabeçalhos realmente necessários. Nenhuma modificação na estrutura do modelo foi feita, nem nenhum novo núcleo em assembly foi escrito — apenas quatro zeros foram adicionados.
Após a otimização, a velocidade estável de pré-carregamento do núcleo AITER MLA atingiu cerca de 13.000 tokens/s, enquanto o caminho de fallback original do Triton era de apenas 4.000 a 7.000 tokens/s, reduzindo o tempo de pré-carregamento a frio em aproximadamente duas a três vezes.
Esta otimização não altera o throughput final de decodificação, mas reduz significativamente o tempo de espera do usuário pela aparição do primeiro caractere.
Isso também indica que a aparente grande diferença de software entre AMD e NVIDIA às vezes não é devido à falta de capacidade subjacente, mas sim porque os núcleos de alta velocidade atuais ainda não cobrem certos novos formatos de modelo.
A vantagem competitiva da CUDA ainda existe, mas já surgiram brechas
Um único teste, é claro, não prova que a AMD já alcançou totalmente a NVIDIA.
O B200 foi forçado a operar entre nós devido à falta de memória de vídeo; o desempenho absoluto do B300 ainda lidera; a cadeia de ferramentas, suporte a frameworks e ecossistema de desenvolvedores do ROCm ainda são inferiores aos do CUDA.
Mas os modelos abertos estão entrando rapidamente na era de trilhões de parâmetros. Quando os modelos se tornam tão grandes que não cabem em um único servidor, a capacidade da memória gráfica deixa de ser apenas um número em uma tabela de parâmetros e passa a afetar diretamente o custo de comunicação, a complexidade de implantação e o throughput final.
A estratégia da AMD de fornecer mais HBM por unidade está se tornando uma vantagem sistêmica real.
Se a AMD conseguir continuar melhorando a estabilidade do ROCm, ampliar o suporte a formas de núcleos de alta velocidade e fornecer compatibilidade mais rápida no primeiro dia para novos modelos, então os data centers precisarão considerar seriamente essas GPUs. Preço mais baixo, memória VRAM maior, desempenho suficiente e software que não exige meses de ajustes.
O que você acha disso?
Link de referência:
https://x.com/wafer_ai/status/2083628389903315406
https://x.com/ChiragAsarpota/status/2083864019870634151
Este artigo é do canal do WeChat "Machine Heart" (ID: almosthuman2014), autor: Atenção aos LLMs
