KernelEvolve: Scaling Agentic Kernel Coding for Heterogeneous AI Accelerators at Meta
KernelEvolve é um framework agêntico que automatiza a geração e otimização de kernels de alto desempenho para diversos modelos de recomendação de deep learning em aceleradores de IA heterogêneos, reduzindo significativamente o tempo de desenvolvimento enquanto garante a correção e entrega ganhos de desempenho substanciais sobre as linhas de base existentes.
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 nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
O Grande Problema: O Pesadelo da "Tradução"
Imagine que a Meta gerencia um enorme sistema de publicidade global. Para mostrar o anúncio perfeito para você, este sistema precisa realizar cálculos complexos bilhões de vezes por dia. Esse cálculo é feito por chips de computador especializados chamados aceleradores de IA (como GPUs NVIDIA, GPUs AMD e os próprios chips customizados da Meta, chamados MTIA).
No entanto, há um grande problema: esses chips falam línguas diferentes.
- Um chip NVIDIA fala "CUDA".
- Um chip AMD fala "ROCm".
- O chip customizado da Meta fala um dialeto único de "Triton".
Além disso, as "palavras" (operações matemáticas) necessárias para os anúncios são incrivelmente diversas. Algumas são matemática padrão (como multiplicação), mas muitas são tarefas estranhas e customizadas específicas para anúncios, como ordenar o histórico do usuário ou fazer hashing de dados.
O Jeito Antigo:
Para fazer os anúncios rodarem rápido, engenheiros humanos tinham que escrever manualmente uma "tradução" específica (um kernel) para cada tarefa matemática em cada tipo de chip.
- A Analogia: Imagine que você é um chef tentando servir uma refeição para 1.000 convidados, mas cada convidado fala uma língua diferente e tem uma dieta diferente. Você tem que escrever manualmente uma receita única e traduzi-la para uma língua diferente para cada convidado. Se você esquecer uma tradução, aquele convidado não é alimentado. Se você quiser mudar o cardápio (atualizar o modelo de IA), terá que reescrever todas as 1.000 receitas do zero. Isso leva semanas, é propenso a erros e é incrivelmente caro.
A Solução: KernelEvolve (O Robô "Super-Tradutor")
O artigo apresenta o KernelEvolve, um sistema de agentes de IA que automatiza todo esse processo. Em vez de humanos escreverem o código, o KernelEvolve atua como um robô chef incansável e superinteligente que pode aprender instantaneamente qualquer língua e escrever a receita perfeita para qualquer convidado.
Veja como ele funciona, passo a passo:
1. A "Busca em Árvore" (Tentando Muitos Caminhos)
Quando o KernelEvolve precisa resolver um problema matemático, ele não apenas adivinha uma vez. Ele usa uma Busca em Árvore (Tree Search).
- A Analogia: Imagine que você está tentando encontrar a rota mais rápida através de um labirinto gigante. Um humano pode tentar um caminho, ficar preso e desistir. O KernelEvolve é como um enxame de formigas. Ele envia milhares de "exploradores" simultaneamente. Alguns vão para a esquerda, outros para a direita. Se um explorador bater em uma parede (um erro de código), ele para. Se um explorador encontrar um atalho (uma maneira mais rápida de fazer a matemática), ele marca aquele caminho como "bom" e envia mais formigas por aquela rota.
- Ele continua fazendo isso, aprendendo com cada beco sem saída e cada sucesso, até encontrar o caminho absoluto mais eficiente.
2. A "Biblioteca de Memória" (Aprendendo com o Passado)
O KernelEvolve possui uma enorme e organizada biblioteca de notas chamada Base de Conhecimento Persistente.
- A Analogia: Se você está tentando consertar uma torneira com vazamento, você não apenas adivinha; você consulta um manual. O KernelEvolve faz isso, mas seu manual é gigantesco. Ele contém instruções específicas para cada tipo de chip (NVIDIA, AMD, MTIA).
- A Magia: Mesmo para o chip customizado da Meta (MTIA), que é tão novo que nenhuma IA jamais o viu antes, o KernelEvolve possui um "manual de instruções" especial injetado em sua biblioteca. Ele lê essas notas, aprende as peculiaridades únicas do chip e escreve o código especificamente para ele. Isso permite que ele trabalhe em um hardware que não existe nos dados de treinamento públicos da internet.
3. O "Ciclo de Autocorreção" (Depurando a Si Mesmo)
Depois que o robô escreve um pedaço de código, ele não apenas confia nele. Ele executa um Ciclo de Autocorreção.
- A Analogia: O robô escreve uma receita, cozinha o prato e depois o prova.
- Teste de Sabor (Correção): O sabor é igual ao original? (A matemática corresponde ao resultado esperado?)
- Teste de Velocidade (Desempenho): Foi mais rápido do que o jeito antigo?
- O Conserto: Se o prato estiver muito salgado (muito lento) ou com gosto errado (erro matemático), o robô analisa o porquê. Ele olha para os "logs da cozinha" (dados de profiling) para ver se o fogão estava quente demais ou se os ingredientes foram misturados de forma errada. Ele então reescreve a receita e tenta novamente.
- Ele repete este ciclo centenas de vezes para uma única tarefa, refinando o código até que esteja perfeito.
4. A "Cozinha Remota" (FaaS)
Para testar essas receitas, o robô precisa usar os chips caros reais.
- A Analogia: O robô (o cérebro) vive em um computador de escritório padrão. Os chips (os fornos) estão em uma cozinha de alta tecnologia separada. Em vez de o robô caminhar até a cozinha, esperar pelo forno e voltar, ele envia a receita para uma Cozinha Remota (FaaS - Function as a Service). A cozinha remota cozinha o prato e envia os resultados de volta instantaneamente. Isso permite que o robô teste milhares de receitas ao mesmo tempo sem ficar parado esperando por um forno.
Os Resultados: Por Que Isso Importa
O artigo afirma que o KernelEvolve é um divisor de águas por três razões:
- Velocidade: Ele reduziu o tempo de criação desses códigos especializados de semanas para horas.
- Desempenho: O código que ele escreve é incrivelmente rápido. Nos testes, ele fez a IA rodar de 1,2 a 17 vezes mais rápido do que o código padrão escrito por humanos.
- Exemplo: Para uma tarefa específica de ordenação de dados, foi 9,8 vezes mais rápido. Para uma operação matemática específica no chip customizado da Meta, foi 17 vezes mais rápido.
- Confiabilidade: Ele passou em 100% dos testes de correção. Ele não apenas tornou as coisas rápidas; ele garantiu que a matemática estivesse certa todas as vezes.
Resumo
KernelEvolve é um sistema de IA que automatiza o trabalho chato, difícil e caro de traduzir código de computador para diferentes tipos de chips de IA. Ao usar uma estratégia de "tentar e aprender" (Busca em Árvore), uma enorme biblioteca de regras de hardware (Base de Conhecimento) e um ciclo de autocorreção, ele consegue gerar códigos de alta velocidade para o sistema de anúncios da Meta em horas, em vez de semanas, tornando todo o sistema mais rápido e barato de operar.
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.