In un documento pubblicato un anno fa, gli scienziati di Google Research, incluso il responsabile dell’intelligenza artificiale di Google Jeff Dean, hanno descritto un approccio basato sull’intelligenza artificiale alla progettazione di chip che potrebbe imparare dall’esperienza passata e migliorare nel tempo, migliorando nel generare architetture per componenti invisibili. Hanno affermato che ha completato i progetti in media in meno di sei ore, che è significativamente più veloce delle settimane che impiegano gli esperti umani nel ciclo.
Sebbene il lavoro non fosse del tutto nuovo – si basava su una tecnica proposta dagli ingegneri di Google in un documento pubblicato nel marzo 2020 – ha fatto avanzare lo stato dell’arte in quanto implicava che il posizionamento dei transistor su chip potesse essere ampiamente automatizzato. Ora, in un articolo pubblicato sulla rivista Nature , il team originale di ricercatori di Google afferma di aver messo a punto la tecnica per progettare una generazione imminente, precedentemente non annunciata, di unità di elaborazione del tensore (TPU) di Google, circuiti integrati specifici per l’applicazione (ASIC). ) sviluppato specificamente per accelerare l’IA.
Se resa pubblicamente disponibile, la tecnica dei ricercatori di Google potrebbe consentire alle startup a corto di liquidità di sviluppare i propri chip per l’intelligenza artificiale e altri scopi specializzati. Inoltre, potrebbe aiutare ad abbreviare il ciclo di progettazione dei chip per consentire all’hardware di adattarsi meglio alla ricerca in rapida evoluzione.
“Fondamentalmente, in questo momento nel processo di progettazione, hai strumenti di progettazione che possono aiutarti a fare un po’ di layout, ma hai esperti di posizionamento e routing umani che lavorano con quegli strumenti di progettazione per ripetere molte, molte volte”, ha detto Dean a VentureBeat in un precedente intervista. “È un processo di più settimane per passare effettivamente dal progetto che si desidera a averlo effettivamente disposto fisicamente su un chip con i giusti vincoli in termini di area, potenza e lunghezza del cavo e soddisfare tutti i ruoli di progettazione o qualsiasi processo di fabbricazione tu stia eseguendo . Possiamo essenzialmente avere un modello di apprendimento automatico che impara a giocare al gioco del posizionamento dei [componenti] per un particolare chip”.
AI chip design
Un chip di computer è diviso in dozzine di blocchi, ognuno dei quali è un modulo individuale, come un sottosistema di memoria, un’unità di calcolo o un sistema logico di controllo. Questi blocchi collegati via cavo possono essere descritti da una netlist, un grafico di componenti circuitali come componenti di memoria e celle standard incluse porte logiche (ad esempio, NAND, NOR e XOR) . La “pianificazione del pavimento” del chip comporta il posizionamento di netlist su griglie bidimensionali chiamate canvas in modo che le metriche delle prestazioni come il consumo energetico, i tempi, l’area e la lunghezza del cavo siano ottimizzate rispettando i vincoli sulla densità e la congestione del routing.
Dagli anni ’60 sono stati proposti molti approcci automatizzati alla pianificazione dei chip, ma nessuno ha raggiunto prestazioni a livello umano. Inoltre, la crescita esponenziale della complessità dei chip ha reso queste tecniche inutilizzabili sui chip moderni. I progettisti di chip umani devono invece iterare per mesi con strumenti di automazione della progettazione elettronica (EDA), prendendo una descrizione del livello di trasferimento del registro (RTL) della netlist del chip e generando un posizionamento manuale di quella netlist sulla tela del chip. Sulla base di questo feedback, che può richiedere fino a 72 ore, il progettista conclude che i criteri di progettazione sono stati raggiunti o fornisce feedback ai progettisti RTL a monte, che quindi modificano il codice di basso livello per facilitare l’attività di posizionamento.
La soluzione del team di Google è un metodo di apprendimento per rinforzo in grado di generalizzare tra i chip, il che significa che può imparare dall’esperienza per diventare sia migliore che più veloce nel posizionare nuovi chip.
Giocare con il sistema
La formazione di sistemi di progettazione basati sull’intelligenza artificiale che generalizzano tra i chip è impegnativa perché richiede l’apprendimento per ottimizzare il posizionamento di tutte le possibili netlist di chip su tutte le possibili tele. In effetti, la pianificazione del chip è analoga a un gioco con vari pezzi (ad esempio, topologie netlist, conteggi macro, dimensioni macro e proporzioni), schede (dimensioni della tela e proporzioni) e condizioni di vincita (l’importanza relativa di diverse metriche o diversi vincoli di densità e congestione del percorso). Anche un’istanza di questo “gioco” – posizionare una particolare netlist su una particolare tela – ha più mosse possibili rispetto al gioco da tavolo cinese Go.
Il sistema dei ricercatori mira a posizionare un grafico “netlist” di porte logiche, memoria e altro su una tela di chip, in modo tale che il design ottimizzi potenza, prestazioni e area (PPA) rispettando i vincoli sulla densità di posizionamento e la congestione del routing. I grafici variano in dimensioni da milioni a miliardi di nodi raggruppati in migliaia di cluster e, in genere, la valutazione delle metriche di destinazione richiede da ore a oltre un giorno.
A partire da un chip vuoto, il sistema del team di Google posiziona i componenti in sequenza fino a quando non completa la netlist. Per guidare il sistema nella scelta dei componenti da posizionare per primi, i componenti vengono ordinati per dimensione decrescente; posizionare prima i componenti più grandi riduce la possibilità che non sia possibile posizionarli in un secondo momento.
Sopra: Macro posizionamenti di Ariane, un processore RISC-V open source, mentre la formazione procede. A sinistra, la politica viene addestrata da zero e a destra viene messa a punto una politica pre-addestrata per questo chip. Ogni rettangolo rappresenta un singolo posizionamento macro.
L’addestramento del sistema ha richiesto la creazione di un set di dati di 10.000 posizionamenti di chip, dove l’input è lo stato associato al dato posizionamento e l’etichetta è la ricompensa per il posizionamento (cioè lunghezza del cavo e congestione). I ricercatori lo hanno costruito scegliendo prima cinque netlist di chip differenti, a cui è stato applicato un algoritmo di intelligenza artificiale per creare 2.000 diversi posizionamenti per ogni netlist.
Il sistema ha impiegato 48 ore per “pre-addestrarsi” su una scheda grafica Nvidia Volta e 10 CPU, ciascuna con 2 GB di RAM. La messa a punto inizialmente ha richiesto fino a 6 ore, ma l’applicazione del sistema pre-addestrato a una nuova netlist senza la messa a punto ha generato il posizionamento in meno di un secondo su una singola GPU nei benchmark successivi.
In un test, i ricercatori di Google hanno confrontato le raccomandazioni del loro sistema con una linea di base manuale: il design di produzione di un chip TPU di generazione precedente creato dal team di progettazione fisica TPU di Google. Sia il sistema che gli esperti umani hanno generato costantemente posizionamenti praticabili che soddisfacevano i requisiti di tempistica e congestione, ma il sistema di intelligenza artificiale ha anche superato o abbinato i posizionamenti manuali in area, potenza e lunghezza del cavo impiegando molto meno tempo per soddisfare i criteri di progettazione.
Lavoro futuro
Google afferma che la capacità del suo sistema di generalizzare e generare soluzioni “di alta qualità” ha “importanti implicazioni”, aprendo opportunità di co-ottimizzazione con le fasi precedenti del processo di progettazione del chip. Esplorazioni architettoniche su larga scala erano precedentemente impossibili perché ci volevano mesi di sforzi per valutare un determinato candidato architettonico. Tuttavia, la modifica del design di un chip può avere un impatto enorme sulle prestazioni, osserva il team di Google, e potrebbe gettare le basi per la completa automazione del processo di progettazione del chip.
Inoltre, poiché il sistema del team di Google impara semplicemente a mappare i nodi di un grafico su un insieme di risorse, potrebbe essere applicabile a una vasta gamma di applicazioni tra cui pianificazione urbana, test e distribuzione di vaccini e mappatura della corteccia cerebrale. “[Mentre] il nostro metodo è stato utilizzato in produzione per progettare la prossima generazione di Google TPU … [noi] crediamo che [esso] possa essere applicato a problemi di posizionamento di impatto oltre la progettazione del chip”, hanno scritto i ricercatori nel documento.