Kernel Forge: An Agent Harness for LLM-based Generation and Optimization of CUDA Kernels
Kernel Forge è un harness agentico open-source end-to-end che sfrutta i Large Language Models e il Monte Carlo Tree Search per generare e ottimizzare automaticamente kernel CUDA per diversi carichi di lavoro PyTorch, ottenendo incrementi di velocità significativi rispetto alla modalità eager di PyTorch pur fornendo un'interfaccia grafica per l'ispezione e il debug.
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
Immagina di cercare di eseguire un videogioco sul tuo computer. A volte il gioco scorre fluidamente, ma altre volte scatta o va a scatti. Questo accade perché il computer deve eseguire milioni di minuscoli calcoli matematici ogni secondo per disegnare le immagini e gestire la fisica. Nel mondo dell'intelligenza artificiale (IA), questi calcoli sono ancora più intensi. Per far "pensare" un'IA, essa si affida a istruzioni speciali ad alta velocità chiamate kernel. Pensa al kernel come a una ricetta specifica e super efficiente che uno chef usa per sminuzzare le verdure. Se lo chef usa un coltello smussato e un metodo lento, la cena arriverà in ritardo. Se usa un coltello affilato e specializzato, il cibo sarà pronto istantaneamente.
Per anni, scrivere queste "ricette" è stato come cercare di scrivere un romanzo in una lingua che parli appena. Richiede esperti altamente qualificati per codificare manualmente istruzioni complesse per i chip (GPU) per farli girare più velocemente. Ma ora, abbiamo un nuovo tipo di aiutante: i Large Language Models (LLM). Potresti conoscerli come le smart chatbot che possono scrivere storie o risolvere problemi matematici. Gli scienziati stanno ora insegnando a queste chatbot come scrivere le "ricette" (kernel) per l'IA, sperando che possano farlo più velocemente e meglio degli umani. Tuttavia, c'è un trucco: il fatto che una chatbot scriva una ricetta che sembra buona sulla carta non significa che cucinerà effettivamente il pasto più velocemente in una cucina reale.
È qui che entra in gioco un nuovo progetto chiamato Kernel Forge. I ricercatori dell'Università del Michigan hanno costruito un sistema intelligente che non si limita a chiedere a una chatbot di scrivere codice; agisce come un coach a tempo pieno, un ispettore della qualità e un project manager, tutto in uno. Volevano vedere se l'IA potesse effettivamente prendere il controllo dell'ottimizzazione di queste ricette per modelli di IA del mondo reale, non solo per casi di test finti e inventati.
Il Problema: La Trappola dell' "Isolamento"
Immagina di stare addestrando un robot a correre. Se lo testi solo su una pista perfettamente piatta e vuota, potrebbe sembrare uno sprinter di classe mondiale. Ma nel momento in cui lo metti su una strada cittadina trafficata e sconnessa, potrebbe inciampare e cadere. Questo è esattamente ciò che è accaduto con i precedenti tentativi di usare l'IA per scrivere kernel per GPU. La maggior parte degli strumenti testava l'IA fornendole problemi matematici casuali e inventati su una pista vuota. Generavano un pezzo di codice, lo testavano in isolamento e dicevano: "Guarda quanto è veloce questo!".
Ma nel mondo reale, i modelli di IA sono come città trafficate. Le "ricette" (kernel) devono lavorare con forme specifiche di dati, quantità specifiche di memoria e devono interagire bene con le altre ricette vicine a loro. Una ricetta che è veloce in un test casuale potrebbe essere lenta o addirittura rompersi quando viene utilizzata all'interno di un vero modello di IA, come quelli che generano immagini o chiacchierano con te. Gli strumenti precedenti spesso lasciavano ai programmatori umani il compito di capire come inserire queste nuove ricette scritte dall'IA all'interno della complessa macchina, il che era un processo lungo e soggetto a errori.
La Soluzione: Kernel Forge
I ricercatori hanno creato Kernel Forge, uno strumento open-source che funge da ponte tra lo scrittore IA e il mondo reale. Invece di chiedere all'IA di indovinare, Kernel Forge osserva prima un vero modello di IA (come uno che riconosce i volti o scrive storie) mentre gira su un computer. Prende appunti su esattamente quali "ricote" vengono utilizzate, quanto sono grandi i dati e quanto tempo impiegano per essere eseguiti.
Una volta ottenuti questi dati del mondo reale, affida il lavoro a un agente IA (una smart bot alimentata da un large language model). Ma questa non è una soluzione a colpo singolo. Il sistema utilizza una strategia intelligente chiamata Monte Carlo Tree Search. Immagina un detective che risolve un mistero. Inve invece di seguire solo un'intuizione, il detective prova molti percorsi diversi. Se un percorso porta a un vicolo cieco, non si arrende; torna indietro e prova un angolo diverso. Allo stesso modo, Kernel Forge non genera solo una versione di una ricetta sperando nel meglio. Genera molte versioni, le testa e, se una è lenta, prova a sistemarla o prova un approccio completamente diverso. Mantiene un "albero genealogico" di tutti i tentativi, ricordando quali erano promettenti anche se non erano perfetti all'inizio.
I Risultati: Vittorie Veloci, Ma Non Ovunque
Il team ha testato Kernel Forge su quattro diversi tipi di modelli di IA: uno per il riconoscimento di immagini (ResNet-50), uno per la generazione di arte (Stable Diffusion 3.5 Medium) e due per la conversazione e il ragionamento (Gemma 4 e Qwen 3.5). Hanno eseguito questi test su un potente computer con una NVIDIA GB10 GPU.
Ecco cosa hanno scoperto:
- Funziona, ma è pignolo: Il sistema ha generato con successo nuove ricette più veloci per molte parti dell'IA. In alcuni casi, il codice scritto dall'IA era significativamente più veloce del codice standard che il computer usa di solito. Ad esempio, nel generatore di immagini, il nuovo codice per la "group normalization" era 1,70 volte più veloce. Nella chatbot Gemma 4, il nuovo codice per la "softmax" (un passaggio matematico usato per prendere decisioni) era massicciamente 2,83 volte più veloce.
- La rete di sicurezza "Guardata": Il sistema è molto attento. Ha una "guardia" che controlla ogni nuova ricetta. Se la nuova ricetta scritta dall'IA è più lenta o commette un errore, il sistema torna immediatamente al codice originale, affidabile. Non forza mai una cattiva ricetta sull'utente. Ciò significa che anche se l'IA tenta di ottimizzare una parte del codice e fallisce, il computer non crasha o rallenta; usa semplicemente il vecchio, sicuro metodo.
- I "Grandi Protagonisti" sono difficili da battere: I ricercatori hanno notato qualcosa di interessante. Le parti dell'IA che occupano la maggior parte del tempo (i "grandi protagonisti") sono spesso già gestite da codice molto maturo e scritto da esperti di aziende come NVIDIA. L'IA ha faticato a battere questi esperti. Ad esempio, nel generatore di immagini, l'operazione "lineare" (che occupa oltre il 50% del tempo) era in realtà più lenta quando l'IA ha cercato di riscriverla. Il sistema ha saggiamente deciso di mantenere il codice originale per quella parte.
- Le piccole vittorie si sommano: I maggiori aumenti di velocità si sono verificati nelle parti più piccole e meno critiche del codice. Mentre l'IA non è riuscita a battere gli esperti nei compiti più grandi, ha trovato modi intelligenti per velocizzare i compiti più piccoli di 1,5 - 2,8 volte.
Il Costo della Curiosità
I ricercatori hanno anche esaminato quanto costasse questo "pensare". Hanno utilizzato un potente modello di IA per generare il codice e, ogni volta che l'IA scriveva una riga di codice o controllava un risultato, questo costava una piccola somma (in base all'uso delle API). Hanno scoperto che man mano che lasciavano l'IA provare più e più variazioni (fino a 50 round di tentativi e correzioni), il costo aumentava. Tuttavia, l'aumento di velocità ottenuto non sempre corrispondeva alla spesa extra. Ciò suggerisce che, sebbene l'IA possa trovare ottime scorciatoie, dobbiamo essere intelligenti su quando fermare la ricerca, specialmente se la parte di codice che stiamo cercando di correggere non è molto importante per la velocità complessiva.
In Breve
Kernel Forge dimostra che stiamo entrando in una nuova era in cui l'IA può aiutare a scrivere il codice di basso livello che rende altre IA più veloci. Non è una bacchetta magica che risolve tutto istantaneamente; non può ancora facilmente battere i migliori esperti umani sui compiti più grandi. Ma è uno strumento potente che può trovare aumenti di velocità nascosti nei dettagli più piccoli, il tutto mantenendo il sistema sicuro e stabile.
I ricercatori hanno rilasciato il loro strumento come open-source, il che significa che chiunque può usarlo per provare a rendere i propri modelli di IA più veloci. Hanno dimostrato che combinando la creatività dell'IA con la sicurezza dei test nel mondo reale, possiamo iniziare a ottimizzare i motori del nostro mondo digitale senza bisogno di un dottorato in informatica per farlo. È un passo verso un futuro in cui i nostri computer non saranno solo più intelligenti, ma anche molto più efficienti.
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.