← Ultimi articoli
💻 computer science

Equivalence Checking of ML GPU Kernels

Questo articolo introduce Volta, il primo verificatore di equivalenza sound e completo per kernel GPU, che verifica formalmente la correttezza di computazioni di machine learning ottimizzate a mano, da compilatori o da LLM.

Autori originali: Benjamin Driscoll, Kshitij Dubey, Anjiang Wei, Neeraj Kayal, Rahul Sharma, Alex Aiken

Pubblicato 2026-08-18
📖 5 min di lettura🧠 Approfondimento

Autori originali: Benjamin Driscoll, Kshitij Dubey, Anjiang Wei, Neeraj Kayal, Rahul Sharma, Alex Aiken

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

Nella vasta e invisibile macchina dell'intelligenza artificiale moderna, il lavoro più critico non avviene nel cloud, ma su chip informatici specializzati chiamati GPU. Questi chip sono progettati per eseguire milioni di piccoli calcoli simultaneamente, una necessità per l'addestramento dei grandi modelli linguistici che ora scrivono codice, traducono lingue e generano arte. Per far sì che questi modelli girino abbastanza velocemente da essere utili, gli ingegneri devono scrivere istruzioni altamente specializzate, note come kernel, che dicono alla GPU esattamente come spostare i dati ed eseguire operazioni matematiche. Negli ultimi anni, le aziende hanno iniziato a usare l'intelligenza artificiale stessa per scrivere questi kernel, sperando di trovare modi più veloci per svolgere il lavoro rispetto agli ingegneri umani. Tuttavia, questa velocità comporta un rischio: quando un'IA o un compilatore riscrivono un pezzo di codice per renderlo più veloce, possono accidentalmente introdurre errori sottili. Questi errori potrebbero causare la produzione di una risposta errata da parte del computer o, peggio, un crash silenzioso in modi quasi impossibili da individuare attraverso i test standard. La sfida centrale è che questi chip eseguono migliaia di thread di lavoro contemporaneamente e, se non si coordinano perfettamente, possono calpestarsi i piedi a vicenda, creando una "race condition" dove il risultato finale dipende dall'ordine imprevedibile in cui le cose accadono.

Un team di ricercatori ha sviluppato un nuovo strumento chiamato Volta per risolvere questo problema. Invece di indovinare se una nuova versione più veloce di un kernel sia corretta, Volta agisce come un verificatore formale che dimostra matematicamente che le due versioni producono risultati identici. I ricercatori hanno costruito un sistema che prende le istruzioni di basso livello di un kernel di riferimento — la versione originale e affidabile — e il kernel ottimizzato — la nuova versione più veloce — e li fa passare attraverso un motore simbolico. Invece di alimentare il codice con numeri specifici per vedere cosa ne esce, il motore tratta gli input come simboli astratti. Esso traccia ogni possibile percorso che il codice potrebbe intraprendere, monitorando come i dati si muovono attraverso i migliaia di thread paralleli e come essi si sincronizzano tra loro. Se il codice tenta di accedere alla memoria in un modo che potrebbe causare un conflitto, o se i thread rimangono bloccati ad aspettarsi a vicenda per sempre, lo strumento segnala immediatamente l'errore. Se il codice viene eseguito correttamente, lo strumento traduce l'output finale di entrambi i kernel in espressioni matematiche complesse e controlla se tali espressioni siano fondamentalmente le stesse, indipendentemente dai numeri specifici inseriti.

I ricercatori hanno testato Volta su una vasta gamma di compiti di apprendimento automatico reali, inclusi moltiplicazioni di matrici, convoluzioni e i meccanismi di attenzione che alimentano i grandi modelli linguistici. Hanno scoperto che lo strumento poteva verificare con successo kernel che erano stati ottimizzati a mano, da compilatori e persino da grandi modelli linguistici. In un caso, hanno esaminato un kernel generato da un'IA che era stato ottimizzato attraverso tredici round di miglioramento automatizzato. Volta ha confermato che questo codice generato dall'IA era matematicamente equivalente al riferimento originale scritto da un essere umano, provando che le ottimizzazioni aggressive non avevano rotto la logica. Lo strumento ha anche dimostrato il suo valore individuando errori che altri metodi avevano mancato. Ad esempio, ha rilevato "data race" in un popolare e ampiamente citato tutorial per la programmazione GPU che era stato utilizzato da migliaia di sviluppatori per anni. Questi errori erano nascosti perché apparivano solo sotto condizioni temporali molto specifiche che i test standard raramente colgono. Lo strumento ha anche identificato un bug in un kernel generato da un'IA in cui il codice tentava di leggere dati da una posizione di memoria inesistente; sebbene l'hardware attuale abbia ignorato questo errore, i ricercatori hanno dimostrato che il codice era fondamentalmente insicuro e avrebbe potuto fallire su macchine future.

La forza di questo approccio risiede nella sua capacità di gestire la complessità unica della programmazione GPU, dove migliaia di thread devono coordinare le proprie azioni. Gli strumenti precedenti potevano controllare programmi a thread singolo o operazioni matematiche di alto livello, ma faticavano a scomporre il massiccio parallelismo di una GPU in parti gestibili. Volta supera questo problema assumendo che i kernel analizzati seguano un modello specifico e strutturato comune nel machine learning, dove il numero di thread e la dimensione dei dati sono noti in anticipo. All'interno di questo framework, lo strumento può provare con certezza se esiste una race condition se i thread non sono correttamente sincronizzati, e può provare che due versioni diverse di un programma sono equivalenti se producono lo stesso risultato simbolico. I ricercatori hanno dimostrato che il loro strumento può verificare queste proprietà in pochi secondi o minuti, anche per kernel contenenti centinaia di migliaia di istruzioni. Hanno anche dimostrato che la logica matematica dietro il loro strumento è solida, il che significa che se lo strumento afferma che due programmi sono uguali, sono realmente uguali per tutti i possibili input.

Questo lavoro rappresenta un passo significativo verso la creazione di un'intelligenza artificiale più sicura e affidabile. Poiché le aziende si affidano sempre più a sistemi automatizzati per generare il codice che alimenta i loro modelli, la necessità di un modo rigoroso per controllare tale codice diventa critica. I ricercatori hanno dimostrato che è possibile andare oltre il semplice testing, che può controllare solo un numero limitato di scenari, verso un metodo che fornisce una garanzia formale di correttezza. Verificando l'equivalenza dei kernel ottimizzati, Volta offre agli sviluppatori la fiducia necessaria per utilizzare ottimizzazioni più veloci e aggressive senza il timore di introdurre bug silenziosi. Lo strumento è attualmente disponibile per l'uso e i ricercatori hanno reso il loro codice e le prove alla base di esso accessibili al pubblico, permettendo ad altri di costruire su questa base. Sebbene lo strumento non copra ancora ogni possibile tipo di codice GPU, gestisce con successo la stragrande maggioranza dei kernel che guidano il moderno machine learning, offrendo un nuovo standard di fiducia nella generazione automatizzata di codice per l'informatica ad alte prestazioni.

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 →