Evaluating-Performance

Lo strumento prevede la velocità di esecuzione del codice su un chip

Tempo di lettura: 4 minuti

I ricercatori del MIT hanno inventato uno strumento di apprendimento automatico che prevede la velocità con cui i chip del computer eseguiranno il codice da varie applicazioni.

Per far funzionare il codice il più velocemente possibile, gli sviluppatori e i compilatori, ovvero programmi che traducono il linguaggio di programmazione in codice leggibile da una macchina, utilizzano in genere modelli di prestazioni che eseguono il codice attraverso una simulazione di determinate architetture di chip.

I compilatori usano queste informazioni per ottimizzare automaticamente il codice e gli sviluppatori le usano per affrontare i colli di bottiglia delle prestazioni sui microprocessori che le eseguiranno. Ma i modelli di prestazioni per il codice macchina sono scritti a mano da un gruppo relativamente piccolo di esperti e non sono validati correttamente. Di conseguenza, le misurazioni delle prestazioni simulate spesso si discostano dai risultati della vita reale.

In una serie di articoli per conferenze, i ricercatori descrivono una nuova pipeline di apprendimento automatico che automatizza questo processo, rendendolo più facile, veloce e preciso. In un documento presentato alla Conferenza internazionale sull’apprendimento automatico di giugno, i ricercatori hanno presentato Ithemal, un modello di rete neurale che si allena su dati etichettati sotto forma di “blocchi di base”, frammenti fondamentali di istruzioni di calcolo, per prevedere automaticamente per quanto tempo prende un determinato chip per eseguire blocchi di base mai visti prima. I risultati suggeriscono che Ithemal offre prestazioni molto più accurate 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 benchmark di blocchi di base da una varietà di domini, tra cui apprendimento automatico, compilatori, crittografia e grafica che possono essere utilizzati per convalidare i modelli di prestazioni. Hanno riunito più di 300.000 dei blocchi profilati in un set di dati open source chiamato BHive. Durante le loro valutazioni, Ithemal ha predetto la velocità con cui i chip Intel avrebbero eseguito il codice anche meglio di un modello prestazionale creato dalla stessa Intel.

In definitiva, sviluppatori e compilatori possono utilizzare lo strumento per generare codice che viene eseguito più velocemente e in modo più efficiente su un numero sempre crescente di progetti di chip diversi e “black box”. “I moderni processori per computer sono opachi, orribilmente complicati e difficili da capire. È anche incredibilmente difficile scrivere un codice informatico che esegua il più rapidamente possibile per questi processori “, afferma il co-autore Michael Carbin, un assistente professore presso il Dipartimento di Ingegneria Elettrica e Informatica (EECS) e un ricercatore in Informatica e Laboratorio di intelligenza artificiale (CSAIL). “Questo strumento rappresenta un grande passo avanti verso la modellazione completa delle prestazioni di questi chip per una maggiore efficienza.”

Più di recente, in un documento presentato alla conferenza NeurIPS di dicembre, il team ha proposto una nuova tecnica per generare automaticamente ottimizzazioni del compilatore. In particolare, 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 vettorializzazione realizzati a mano utilizzati nel compilatore LLVM, un popolare compilatore utilizzato nel settore.

Imparare dai dati

Progettare a mano modelli prestazionali può essere “un’arte nera”, afferma Carbin. Intel fornisce un’ampia documentazione di oltre 3.000 pagine che descrivono le architetture dei suoi chip. Ma al momento esiste solo un piccolo gruppo di esperti che costruirà modelli di prestazioni che simulano l’esecuzione del codice su tali architetture.

“I documenti di Intel non sono né privi di errori né completi e Intel ometterà alcune cose, perché è proprietaria”, afferma Mendis. “Tuttavia, quando si utilizzano i dati, non è necessario conoscere la documentazione. Se c’è qualcosa nascosto puoi impararlo direttamente dai dati. ”

Per fare ciò, i ricercatori hanno registrato il numero medio di cicli necessari a un determinato microprocessore per calcolare le istruzioni di blocco di base, in sostanza, la sequenza di avvio, esecuzione e spegnimento, senza intervento umano. L’automazione del processo consente una rapida profilazione di centinaia di migliaia o milioni di blocchi.

Architetture specifiche del dominio

Durante l’addestramento, il modello Ithemal analizza milioni di blocchi di base con profilo automatico 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. Durante i test, Ithemal può essere alimentato con blocchi di base mai visti prima e un determinato 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 e la velocità del mondo reale, del 50 percento rispetto ai modelli artigianali tradizionali. Inoltre, 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 di Intel era del 20 percento su una varietà di blocchi di base in più domini diversi.

Lo strumento ora semplifica l’apprendimento rapido della velocità delle prestazioni per qualsiasi nuova architettura di chip, afferma Mendis. Ad esempio, ora sono in fase di realizzazione architetture specifiche del dominio, come la nuova unità di elaborazione tensoriale di Google utilizzata specificamente per le reti neurali, ma non sono ampiamente comprese. “Se si desidera formare un modello su una nuova architettura, è sufficiente raccogliere più dati da tale architettura, eseguirlo attraverso il nostro profiler, utilizzare tali informazioni per formare Ithemal e ora si dispone di un modello che prevede le prestazioni”, afferma Mendis.

Successivamente, i ricercatori stanno studiando metodi per rendere interpretabili i modelli. Gran parte dell’apprendimento automatico è una scatola nera, quindi non è davvero chiaro perché un particolare modello abbia fatto le sue previsioni. “Il nostro modello sta dicendo che ci vuole un processore, diciamo, 10 cicli per eseguire un blocco di base. Ora, stiamo cercando di capire perché ”, afferma Carbin. “Questo è un ottimo livello di granularità che sarebbe sorprendente per questi tipi di strumenti.”

Sperano anche di usare Ithemal per migliorare ulteriormente le prestazioni di Vemal e ottenere automaticamente prestazioni migliori.

Fonte