← Ultimi articoli
🤖 AI

KernelArc: A Multi-Agent Framework for GPU Kernel Optimization

KernelArc è un framework multi-agente che ottimizza autonomamente i kernel GPU attraverso agenti paralleli e specializzati per strategia che coordinano tramite memoria condivisa e guardie deterministiche, raggiungendo i primi posti nella classifica SOL-ExecBench per diversi carichi di lavoro su GPU NVIDIA H100 e B200.

Autori originali: Joyjit Kundu, Ben Stoffelen, Kaili Wang, Peter Vrancx, Ludovic Denoyer

Pubblicato 2026-08-19
📖 6 min di lettura🧠 Approfondimento

Autori originali: Joyjit Kundu, Ben Stoffelen, Kaili Wang, Peter Vrancx, Ludovic Denoyer

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

I computer moderni si affidano a chip specializzati chiamati unità di elaborazione grafica, o GPU, per gestire i calcoli massicci richiesti dall'intelligenza artificiale. Questi chip sono incredibilmente potenti, ma sono anche macchine complesse con molte parti diverse che devono lavorare in perfetta sincronia. Per ottenere il massimo da essi, gli ingegneri devono scrivere programmi minuscoli e altamente specifici chiamati kernel, che dicono al chip esattamente come spostare i dati ed eseguire operazioni matematiche. Per anni, questo è stato un lavoro per esperti umani che hanno trascorso innumerevoli ore a perfezionare il codice, bilanciare l'uso della memoria e temporizzare le operazioni per spremere ogni briciolo di velocità. Man mano che questi chip sono diventati più sofisticati, il lavoro manuale è diventato più difficile e il divario tra ciò che l'hardware può fare e ciò che il software realizza si è ampliato.

I ricercatori hanno iniziato a utilizzare modelli linguistici di grandi dimensioni — programmi per computer addestrati su enormi quantità di testo — per aiutare a scrivere e migliorare questo codice. Questi modelli possono suggerire modifiche, testarle e imparare dai risultati, agendo come un ingegnere automatizzato. Tuttavia, un singolo agente automatizzato spesso si blocca. Potrebbe trovare una buona soluzione e continuare a perfezionarla, perdendo di vista altri approcci migliori che giacciono in una direzione diversa. È come un escursionista che trova un bel sentiero per salire su una montagna e continua a camminare su di esso, senza rendersi conto che un sentiero diverso nelle vicinanze conduce a una vetta molto più alta. Per risolvere questo problema, un team di ricercatori presso l'IMEC ha sviluppato un nuovo sistema chiamato KernelArc, che utilizza un gruppo di questi agenti automatizzati che lavorano insieme per esplorare molti percorsi contemporaneamente.

Il sistema KernelArc opera assegnando diverse strategie a diversi agenti che girano in parallelo. Invece di un singolo agente che cerca di risolvere un problema da solo, ogni agente nel gruppo si concentra su un diverso angolo di attacco, come cambiare il modo in cui i dati vengono memorizzati, alterare la precisione matematica utilizzata o fondere più passaggi in uno solo. Questi agenti non condividono l'intero processo di pensiero o ogni singolo passaggio che compiono, il che sarebbe troppo disordinato e confuso. Invezione, condividono solo le loro conclusioni finali: cosa ha funzionato e cosa è fallito. Scrivono questi risultati in uno spazio di memoria condivisa che funge da bacheca. Se un agente scopre un trucco che velocizza un calcolo, lo pubblica. Altri agenti possono leggere quel post e usare l'intuizione per guidare il proprio lavoro, evitando vicoli ciechi e costruendo sul successo.

Per garantire che gli agenti non perdano tempo su codice rotto, il sistema include un arbitro automatizzato rigoroso. Questo arbitro sottopone ogni nuovo suggerimento di codice a una serie di test per controllare se è corretto e quanto è veloce. Se un suggerimento fallisce il test, viene scartato immediatamente. Se funziona ma non è più veloce della versione migliore attuale, viene conservato come backup ma non sostituisce il leader. Solo quando una nuova versione è sia corretta che più veloce, diventa il nuovo standard. Questo processo permette al team di agenti di esplorare una vasta gamma di possibilità senza perdersi nei dettagli di ogni singolo tentativo. Il sistema ha anche un meccanismo di sicurezza che scatta se un agente si blocca su un plateau, dove non è possibile trovare ulteriori miglioramenti. Quando ciò accade, il sistema costringe l'agente a provare un approccio completamente diverso, assicurando che la ricerca continui a procedere in avanti.

I ricercatori hanno testato questo sistema su due delle GPU più avanzate disponibili, la NVIDIA H100 e la B200. Si sono concentrati su un insieme di compiti standard utilizzati per misurare le prestazioni, che includono operazioni come la moltiplicazione di matrici, i meccanismi di attenzione usati nei modelli linguistici e varie forme di fusione di dati. In un test specifico che coinvolge un singolo agente che lavora da solo con una guida dettagliata, il sistema è riuscito a raggiungere una velocità di 766 teraflops, ovvero circa il 3,2 percento più veloce della migliore libreria esistente per quel compito specifico. Ciò ha dimostrato che un singolo agente può andare molto in profondità in un problema specifico se dotato di un percorso chiaro. Tuttavia, quando i ricercatori hanno passato al sistema multi-agente KernelArc per affrontare un insieme più ampio di compiti, i risultati sono stati ancora più impressionanti. Il sistema ha prodotto implementazioni personalizzate per varie operazioni complesse, inclusi meccanismi di attenzione specializzati e strati fusi per i grandi modelli linguistici.

Su una classifica pubblica che classifica la velocità di queste operazioni attraverso molti tipi e dimensioni di dati, le sottomissioni di KernelArc si sono prese il primo posto in diverse categorie. Per un compito che coinvolge l'attenzione e l'addizione residua, un singolo agente si era bloccato a un punteggio di prestazione di 0,441. Il sistema multi-agente, condividendo le intuizioni ed esplorando diverse direzioni, ha superato questa barriera e ha raggiunto un punteggio di 0,481. In un altro test che coinvolge un compito di attenzione complesso, il sistema multi-agente ha ottenuto un'accelerazione di quasi 291 volte rispetto a un'implementazione di riferimento standard, e oltre 143 volte più veloce di una base altamente ottimizzata. Questi risultati suggeriscono che avere più agenti che condividono le proprie scoperte permette al sistema di trovare soluzioni migliori più velocemente rispetto a un singolo agente che lavora da solo, specialmente quando lo spazio del problema è ampio e vario.

Lo studio ha anche esaminato come si comporta il sistema al variare del numero di agenti e della quantità di memoria condivisa. Hanno scoperto che fornire agli agenti una memoria condivisa dove potessero pubblicare i propri successi e fallimenti li ha aiutati a raggiungere risultati più solidi entro un numero fisso di tentativi. Quando la memoria era illimitata, il sistema ha ottenuto le prestazioni migliori, raggiungendo un'accelerazione di oltre 290 volte rispetto al punto di partenza. Ciò indica che la capacità di imparare dall'esperienza collettiva del gruppo è un fattore chiave per il successo. I ricercatori hanno osservato che il valore di ogni caratteristica, come la memoria condivisa o la specializzazione della strategia, dipende dal compito specifico e dalla fase della ricerca. A volte gli agenti devono esplorare ampiamente, altre volte devono perfezionare una soluzione specifica.

Questo lavoro non sostiene di aver risolto tutti i problemi di ottimizzazione informatica, né suggerisce che gli ingegneri umani non siano più necessari. I risultati sono specifici per i compiti e l'hardware testati, e il sistema si basa ancora su un framework progettato dagli umani per guidare gli agenti. Tuttavia, i risultati dimostrano che un gruppo coordinato di agenti automatizzati può esplorare una gamma più ampia di soluzioni rispetto a un singolo agente. Condividendo solo le loro conclusioni più preziose, questi agenti possono evitare di ripetere errori e costruire sulle scoperte reciproche. Questo approccio offre un modo promettente per gestire la crescente complessità dell'informatica moderna, dove il divario tra il potenziale dell'hardware e le prestazioni del software continua a crescere. Il sistema dimostra che, con la giusta coordinazione, gli strumenti automatizzati possono aiutare a sbloccare tutto il potere dei chip che guidano la prossima generazione di intelligenza artificiale.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →