← Últimos artigos
🤖 AI

KernelArc: A Multi-Agent Framework for GPU Kernel Optimization

O KernelArc é um framework multiagente que otimiza autonomamente kernels de GPU por meio de agentes paralelos e especializados em estratégias que coordenam via memória compartilhada e guardiões determinísticos, alcançando as primeiras colocações no leaderboard SOL-ExecBench para diversas cargas de trabalho em GPUs NVIDIA H100 e B200.

Autores originais: Joyjit Kundu, Ben Stoffelen, Kaili Wang, Peter Vrancx, Ludovic Denoyer

Publicado 2026-08-19
📖 6 min de leitura🧠 Leitura aprofundada

Autores originais: Joyjit Kundu, Ben Stoffelen, Kaili Wang, Peter Vrancx, Ludovic Denoyer

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

Os computadores modernos dependem de chips especializados chamados unidades de processamento gráfico, ou GPUs, para lidar com os cálculos massivos exigidos pela inteligência artificial. Esses chips são incrivelmente poderosos, mas também são máquinas complexas com muitas partes diferentes que devem trabalhar em perfeita sincronia. Para extrair o máximo deles, os engenheiros devem escrever programas minúsculos e altamente específicos chamados kernels, que dizem ao chip exatamente como mover dados e realizar operações matemáticas. Durante anos, este tem sido um trabalho para especialistas humanos que passam incontáveis horas ajustando o código, equilibrando o uso da memória e o tempo das operações para espremer cada bit de velocidade. À medida que esses chips se tornaram mais sofisticados, o trabalho manual tornou-se mais difícil, e a lacuna entre o que o hardware pode fazer e o que o software alcança aumentou.

Pesquisadores começaram a usar modelos de linguagem de grande escala — programas de computador treinados em vastas quantidades de texto — para ajudar a escrever e melhorar esse código. Esses modelos podem sugerir mudanças, testá-las e aprender com os resultados, atuando como um engenheiro automatizado. No entanto, um único agente automatizado costuma ficar estagnado. Ele pode encontrar uma boa solução e continuar polindo-a, perdendo outras abordagens melhores que residem em uma direção diferente. É como um caminhante que encontra um caminho agradável para subir uma montanha e continua subindo por ele, sem perceber que uma trilha diferente ali perto leva a um pico muito mais alto. Para resolver isso, uma equipe de pesquisadores do IMEC desenvolveu um novo sistema chamado KernelArc, que utiliza um grupo desses agentes automatizados trabalhando juntos para explorar muitos camros diferentes ao mesmo tempo.

O sistema KernelArc opera atribuindo diferentes estratégias a vários agentes executados em paralelo. Em vez de um único agente tentar resolver um problema sozinho, cada agente no grupo foca em um ângulo de ataque diferente, como alterar a forma como os dados são armazenados, alterar a precisão matemática utilizada ou fundir múltiplas etapas em uma só. Esses agentes não compartilham todo o seu processo de pensamento ou cada etapa que realizam, o que seria muito confuso e desordenado. Em vez disso, eles compartilham apenas suas conclusões finais: o que funcionou e o que falhou. Eles escrevem esses resultados em um espaço de memória compartilhada que atua como um quadro de avisos. Se um agente descobre um truque que acelera um cálculo, ele publica o resultado. Outros agentes podem ler essa publicação e usar o insight para guiar seu próprio trabalho, evitando becos sem saída e construindo sobre o sucesso.

Para garantir que os agentes não percam tempo com códigos quebrados, o sistema inclui um árbitro automatizado rigoroso. Este árbitro executa cada sugestão de código através de uma série de testes para verificar se está correto e quão rápido é. Se uma sugestão falha no teste, ela é descartada imediatamente. Se funciona, mas não é mais rápida que a melhor versão atual, é mantida como um backup, mas não substitui a líder. Somente quando uma nova versão é simultaneamente correta e mais rápida é que ela se torna o novo padrão. Esse processo permite que a equipe de agentes explore uma ampla gama de possibilidades sem se perder nos detalhes de cada tentativa individual. O sistema também possui um mecanismo de segurança que entra em ação se um agente ficar preso em um platô, onde não podem ser encontrados novos progressos. Quando isso acontece, o sistema força o agente a tentar uma abordagem completamente diferente, garantindo que a busca continue avançando.

Os pesquisadores testaram este sistema em duas das GPUs mais avançadas disponíveis, a NVIDIA H100 e a B200. Eles focaram em um conjunto de tarefas padrão usadas para medir o desempenho, que incluem operações como multiplicação de matrizes, mecanismos de atenção usados em modelos de linguagem e várias formas de fusão de dados. Em um teste específico envolvendo um único agente trabalhando sozinho com um guia detalhado, o sistema conseguiu atingir uma velocidade de 766 teraflops, o que é cerca de 3,2 por cento mais rápido do que a melhor biblioteca existente para essa tarefa específica. Isso mostrou que um único agente pode ir muito fundo em um problema específico se lhe for dado um caminho claro. No entanto, quando os pesquisadores mudaram para o sistema multiagente KernelArc para enfrentar um conjunto mais amplo de tarefas, os resultados foram ainda mais impressionantes. O sistema produziu implementações personalizadas para várias operações complexas, incluindo mecanismos de atenção especializados e camadas fundidas para grandes modelos de linguagem.

Em um ranking público que classifica a velocidade dessas operações através de muitos formatos e tamanhos de dados, as submissões do KernelArc ocuparam o primeiro lugar em várias categorias. Para uma tarefa envolvendo atenção e adição residual, um único agente ficou estagnado em uma pontuação de desempenho de 0,441. O sistema multiagente, ao compartilhar insights e explorar diferentes direções, rompeu essa barreira e atingiu uma pontuação de 0,481. Em outro teste envolvendo uma tarefa de atenção complexa, o sistema multiagente alcançou um aumento de velocidade de quase 291 vezes em comparação com uma implementação de referência padrão, e mais de 143 vezes mais rápido do que uma base altamente otimizada. Esses resultados sugerem que ter múltiplos agentes compartilhando suas descobertas permite que o sistema encontre soluções melhores e mais rapidamente do que um único agente trabalhando sozinho, especialmente quando o espaço do problema é grande e variado.

O estudo também analisou como o sistema se comporta quando o número de agentes e a quantidade de memória compartilhada mudam. Eles descobriram que dar aos agentes uma memória compartilhada onde pudessem publicar seus sucessos e falhas os ajudou a alcançar resultados mais fortes dentro de um número fixo de tentativas. Quando a memória era ilimitada, o sistema teve o melhor desempenho, atingindo um aumento de velocidade de mais de 290 vezes em relação ao ponto de partida. Isso indica que a capacidade de aprender com a experiência coletiva do grupo é um fator chave para o sucesso. Os pesquisadores observaram que o valor de cada recurso, como a memória compartilhada ou a especialização de estratégia, depende da tarefa específica e da fase da busca. Às vezes, os agentes precisam explorar amplamente e, outras vezes, precisam refinar uma solução específica.

Este trabalho não afirma ter resolvido todos os problemas de otimização computacional, nem sugere que os engenheiros humanos não sejam mais necessários. Os resultados são específicos para as tarefas e o hardware testados, e o sistema ainda depende de uma estrutura projetada por humanos para guiar os agentes. No entanto, as descobertas demonstram que um grupo coordenado de agentes automatizados pode explorar uma gama mais ampla de soluções do que um único agente. Ao compartilhar apenas suas conclusões mais valiosas, esses agentes podem evitar repetir erros e construir sobre as descobertas uns dos outros. Essa abordagem oferece uma maneira promissora de lidar com a crescente complexidade da computação moderna, onde a lacuna entre o potencial do hardware e o desempenho do software continua a crescer. O sistema mostra que, com a coordenação adequada, ferramentas automatizadas podem ajudar a desbloquear todo o poder dos chips que impulsionam a próxima geração de inteligência artificial.

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 →