← Últimos artigos
💻 computer science

BF16 Component-Product Emulation of FP32 and FP64 GEMM on Intel AMX

Este artigo apresenta um algoritmo orientado a CPU que aproveita os produtos de matrizes Intel AMX BF16 para emular operações GEMM de alta precisão FP32 e FP64, alcançando um throughput competitivo e precisão ajustável ao decompor operandos em múltiplos componentes de baixa precisão e acumulá-los em maior precisão.

Autores originais: Bing Cui, Yu Liu

Publicado 2026-09-07✓ Author reviewed
📖 4 min de leitura☕ Leitura rápida

Autores originais: Bing Cui, Yu Liu

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Os computadores modernos são construídos com uma divisão crescente em sua maquinaria interna. De um lado, existem motores poderosos projetados especificamente para inteligência artificial, que se destacam ao realizar bilhões de cálculos simples muito rapidamente. Esses motores funcionam melhor com números que são curtos e simples, sacrificando um pouco de detalhe em favor de uma velocidade massiva. Do outro lado, o mundo da descoberta científica — simulando padrões climáticos, modelando como os átomos se ligam ou prevendo o fluxo de fluidos — ainda depende de números que são longos e precisos. Esses cálculos científicos precisam de cada bit de detalhe para permanecerem estáveis e precisos, mas as partes padrão do computador que os manipulam são frequentemente mais lentas e menos eficientes do que os novos motores de IA. Isso cria um dilema: cientistas precisam da velocidade do novo hardware, mas não podem se dar ao luxo de perder a precisão que seu trabalho exige.

Pesquisadores da Maginfra Co., Ltd., na China, exploraram uma maneira de preencher essa lacuna usando um tipo específico de chip de computador chamado Intel AMX. O objetivo deles era ver se os motores de IA rápidos e de baixa precisão poderiam ser "enganados" para realizar a matemática lenta e de alta precisão exigida pela ciência. Em vez de pedir ao chip para fazer a matemática difícil diretamente, eles quebraram o problema em partes menores e mais simples. Imagine tentar medir uma distância muito longa com uma régua que possui apenas marcações para polegadas inteiras. Você poderia medir as polegadas inteiras, depois medir a fração restante, depois medir a pequena fração restante, e somar tudo para obter um total preciso. Os pesquisadores aplicaram essa mesma lógica aos números. Eles pegaram um único número complexo e o dividiram em várias partes mais simples que o motor de IA rápido pudesse manipular facilmente. Eles então executaram muitos cálculos rápidos nessas partes e somaram cuidadosamente os resultados para reconstruir a resposta final, altamente precisa.

A equipe testou essa abordagem em dois níveis diferentes de precisão. Primeiro, eles abordaram a matemática de precisão simples, que é o padrão para muitas aplicações científicas. Eles descobriram que, ao dividir cada número em três partes e executar seis cálculos específicos, poderiam alcançar resultados que eram tão precisos quanto o melhor software existente, mas significativamente mais rápidos. Nos chips de computador que testaram, esse método rodou entre 1,14 e 2,56 vezes mais rápido do que a maneira padrão de realizar a matemática. O aumento de velocidade foi mais perceptível com conjuntos de dados maiores, onde o custo de dividir e remontar os números tornou-se menos importante em comparação com a pura velocidade dos cálculos.

Quando passaram para a matemática de precisão dupla, que é ainda mais exata e usada para as simulações científicas mais exigentes, o desafio aumentou. Aqui, os pesquisadores tiveram que dividir cada número em seis partes. Como os cálculos precisavam ser remontados com extremo cuidado, o processo tornou-se mais complicado. Eles testaram diferentes versões deste método, mantendo de seis a vinte e uma das pequenas peças de cálculo. Eles descobriram um claro compromisso (trade-off): manter mais peças tornava a resposta mais precisa, mas também tornava o processo mais lento. Com apenas seis peças, o método era rápido o suficiente para superar o software padrão para problemas muito grandes, rodando até 1,7 vezes mais rápido. No entanto, à medida que adicionavam mais peças para melhorar a precisão, o trabalho extra necessário para gerenciá-las consumia a vantagem de velocidade. Eventualmente, tentar manter vinte e uma peças tornou o método mais lento do que a abordagem padrão, embora fosse mais preciso.

O estudo também destacou que esta técnica não é uma solução universal para todas as situações. Ela funciona melhor quando os números sendo calculados permanecem dentro de um intervalo específico, semelhante a como uma régua com um comprimento limitado não pode medir uma distância que seja vasta demais ou minúscula demais sem ajustes especiais. Os pesquisadores observaram que seu método não funciona para todos os tipos possíveis de números, particularmente aqueles que são extremamente grandes ou extremamente pequenos, e não garante uma correspondência perfeita, bit a bit, com o software existente. Em vez disso, oferece uma nova ferramenta para cientistas que precisam de alta velocidade e alta precisão, desde que seus dados se encaixem nos limites do método. Ao mostrar que o hardware de baixa precisão pode ser usado para resolver problemas de alta precisão, o trabalho sugere um futuro onde os motores especializados construídos para inteligência artificial também possam acelerar o trabalho pesado da descoberta científica.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →