Credito:CC0 Dominio Pubblico
I ricercatori del MIT hanno inventato uno strumento di apprendimento automatico che prevede la velocità con cui i chip dei computer eseguiranno il codice di varie applicazioni.
Per eseguire il codice il più velocemente possibile, sviluppatori e compilatori, programmi che traducono il linguaggio di programmazione in codice leggibile dalla macchina, utilizzano in genere modelli di prestazioni che eseguono il codice attraverso una simulazione di determinate architetture di chip.
I compilatori utilizzano tali informazioni per ottimizzare automaticamente il codice, e gli sviluppatori lo usano per affrontare i colli di bottiglia delle prestazioni sui microprocessori che lo eseguiranno. Ma i modelli di prestazioni per il codice macchina sono scritti a mano da un gruppo relativamente ristretto di esperti e non sono adeguatamente convalidati. Come conseguenza, le misurazioni delle prestazioni simulate spesso si discostano dai risultati della vita reale.
In una serie di atti di conferenza, i ricercatori descrivono una nuova pipeline di apprendimento automatico che automatizza questo processo, rendendo più facile, Più veloce, e più preciso. In un documento presentato alla Conferenza internazionale sull'apprendimento automatico a giugno, i ricercatori hanno presentato Ithemal, un modello di rete neurale che si addestra su dati etichettati sotto forma di "blocchi di base" - frammenti fondamentali di istruzioni di calcolo - per prevedere automaticamente quanto tempo impiega un dato chip per eseguire blocchi di base mai visti prima. I risultati suggeriscono che Ithemal si comporta in modo molto più accurato rispetto ai tradizionali modelli sintonizzati a mano.
Quindi, al Simposio internazionale IEEE di novembre sulla caratterizzazione del carico di lavoro, i ricercatori hanno presentato una suite di riferimento di blocchi di base da una varietà di domini, compreso l'apprendimento automatico, compilatori, crittografia, e grafici che possono essere utilizzati per convalidare modelli di prestazioni. Hanno messo insieme più di 300, 000 dei blocchi profilati in un set di dati open source chiamato BHive. Durante le loro valutazioni, Ithemal ha previsto la velocità con cui i chip Intel avrebbero eseguito il codice anche meglio di un modello di prestazioni costruito dalla stessa Intel.
In definitiva, sviluppatori e compilatori possono utilizzare lo strumento per generare codice che viene eseguito in modo più rapido ed efficiente su un numero sempre crescente di progetti di chip diversi e "scatola nera". "I moderni processori per computer sono opachi, orrendamente complicato, e difficile da capire. È anche incredibilmente difficile scrivere codice per computer che venga eseguito il più velocemente possibile per questi processori, ", afferma il coautore Michael Carbin, ricercatore presso il Dipartimento di Ingegneria Elettrica e Informatica (EECS) e ricercatore presso il Laboratorio di Informatica e Intelligenza Artificiale (CSAIL). "Questo strumento è un grande passo avanti verso la modellazione completa delle prestazioni di questi chip per una maggiore efficienza".
Più recentemente, in un documento presentato alla conferenza NeurIPS di dicembre, il team ha proposto una nuova tecnica per generare automaticamente ottimizzazioni del compilatore. Nello specifico, generano automaticamente un algoritmo, chiamato Vemal, che converte un determinato codice in vettori, che può essere utilizzato per il calcolo parallelo. Vemal supera gli algoritmi di vettorizzazione realizzati a mano utilizzati nel compilatore LLVM, un popolare compilatore utilizzato nel settore.
Imparare dai dati
Progettare a mano modelli di performance può essere "un'arte nera, " dice Carbin. Intel fornisce un'ampia documentazione di oltre 3, 000 pagine che descrivono le architetture dei suoi chip. Ma attualmente esiste solo un piccolo gruppo di esperti che costruirà modelli di prestazioni che simulano l'esecuzione del codice su quelle architetture.
"I documenti di Intel non sono né privi di errori né completi, e Intel ometterà alcune cose, perché è di proprietà, " dice Mendis. "Tuttavia, quando usi i dati, non è necessario conoscere la documentazione. Se c'è qualcosa di nascosto puoi impararlo direttamente dai dati."
Fare così, i ricercatori hanno cronometrato il numero medio di cicli necessari a un dato microprocessore per calcolare le istruzioni di blocco di base, in pratica, la sequenza di avvio, eseguire, e spegnere, senza intervento umano. L'automazione del processo consente la profilazione rapida di centinaia di migliaia o milioni di blocchi.
Architetture specifiche del dominio
In allenamento, il modello Ithemal analizza milioni di blocchi di base profilati automaticamente per apprendere esattamente come le diverse architetture di chip eseguiranno il calcolo. È importante sottolineare che Ithemal accetta il testo non elaborato come input e non richiede l'aggiunta manuale di funzionalità ai dati di input. Nella prova, Ithemal può essere alimentato con blocchi di base invisibili e un dato chip, e genererà un singolo numero che indica la velocità con cui il chip eseguirà quel codice.
I ricercatori hanno scoperto che Ithemal ha ridotto i tassi di errore in termini di precisione, ovvero la differenza tra la velocità prevista rispetto alla velocità reale, del 50% rispetto ai modelli tradizionali realizzati a mano. Ulteriore, nel loro prossimo articolo, hanno mostrato che il tasso di errore di Ithemal era del 10 percento, mentre il tasso di errore del modello di previsione delle prestazioni Intel era del 20% su una varietà di blocchi di base in più domini diversi.
Lo strumento ora semplifica l'apprendimento rapido delle velocità delle prestazioni per qualsiasi nuova architettura di chip, dice Mendis. Ad esempio, architetture specifiche del dominio, come la nuova Tensor Processing Unit di Google utilizzata specificamente per le reti neurali, sono ora in costruzione ma non sono ampiamente compresi. "Se vuoi addestrare un modello su una nuova architettura, raccogli solo più dati da quell'architettura, eseguilo tramite il nostro profiler, utilizzare tali informazioni per addestrare Ithemal, e ora hai un modello che prevede le prestazioni, "dice Mendis.
Prossimo, i ricercatori stanno studiando metodi per rendere interpretabili i modelli. Gran parte dell'apprendimento automatico è una scatola nera, quindi non è molto chiaro perché un particolare modello abbia fatto le sue previsioni. "Il nostro modello dice che ci vuole un processore, dire, 10 cicli per eseguire un blocco base. Ora, stiamo cercando di capire perché, " Dice Carbin. "Questo è un buon livello di granularità che sarebbe fantastico per questi tipi di strumenti."
Sperano anche di utilizzare Ithemal per migliorare ulteriormente le prestazioni di Vemal e ottenere automaticamente prestazioni migliori.
Questa storia è stata ripubblicata per gentile concessione di MIT News (web.mit.edu/newsoffice/), un popolare sito che copre notizie sulla ricerca del MIT, innovazione e didattica.