Invia messaggio

Notizie

March 11, 2021

Memoria specifica del dominio

La computazione specifica del dominio può essere tutta la collera, ma sta evitando il problema reale.

La più grande preoccupazione è le memorie che strozzano la prestazione dell'unità di elaborazione, consumano più potere e prendono la maggior parte della area del chip. Le memorie devono liberarsi dalle strutture rigide preferite da software attuale. Quando gli algoritmi e la memoria sono progettati insieme, i miglioramenti nella prestazione sono significativi ed elaborare può essere ottimizzata.

L'elaborazione specifica del dominio è stata diffusa dalla conferenza 2018 di Turing, «una nuova età dell'oro per architettura del computer,» da John Hennessy e da David Patterson. Ma le unità di elaborazione sono state costrette dalla memoria per le decadi. L'elaborazione cambiante senza ripensa della memoria e le gerarchie di memoria trascura la legge di Amdahl, che fornisce una relazione matematica fra accelera possibile per un sistema quando determinati pezzi di quel sistema sono migliorati. Vi dice basicamente per ottenere i ritorni di diminuzione se vi concentrate soltanto sull'un pezzo solo del sistema piuttosto che esaminando il sistema complessivamente.

Così perché non concentrarsi sull'impasse? «La memoria specifica del dominio è appena un nuovo termine, ma gli architetti stanno facendo a lungo questi generi di ottimizzazioni,» dice Prasad Saggurti, direttore di marketing di prodotto a Synopsys. «E se non hanno, stanno mancando un trucco perché la maggior parte della gente sta facendolo.»

Altri acconsentono. «Ricordi le video memorie — DRAM con i registri a scorrimento incorporati?» chiede a Michael Frank, al collega ed all'architetto del sistema al IP di Arteris. «Forse GDDR [1-5], memorie di etichetta speciali del nascondiglio, o memorie associative indietro nei giorni di TTL? Molto questi realmente non sono sopravvissuto a perché la loro funzionalità era troppo specifica. Hanno mirato ad un dispositivo unico. Avete bisogno di dominio abbastanza grande e state combattendo contro il basso costo di odierno DRAM, che ha il beneficio di grande volume e di fabbricazione su grande scala.»

A volte va più profondo di quello. «Potreste hardwire qualcosa in una ROM,» dice il Saggurti di Synopsys. «Che cosa stiamo vedendo è più gente che regola oggi la memoria. Per esempio, con una trasformata di fourier, o una trasformata zeta, la gente scriverebbe il codice in tal modo che avete potuto immagazzinare i coefficienti in certo ordine. Quando state facendo una moltiplicazione della matrice, potete immagazzinare i coefficienti in certo ordine in modo che leggerlo fuori sia stato più velocemente. Non potete memorizzare i dati in una memoria, invece, mettente lo in tre o quattro memorie differenti in modo che abbiate potuto leggere le cose tramite i percorsi dei dati multipli. Questi generi di cose stanno accadendo più recentemente.»

Il cambiamento è duro. «La sfida è quella nel passato, la gente ha avuta un piacevole, modello astratto per il pensiero ai sistemi informatici,» dice Steven Woo, il collega e l'inventore distinto a Rambus. «Mai non realmente hanno dovuto pensare alla memoria. È venuto avanti gratis ed il modello di programmazione ha reso tale quello quando avete fatto i riferimenti alla memoria, appena è accaduto. Mai avete dovuto non essere esplicito circa cui stavate facendo.»

I progressi stanno realizzandi nella prestazione generale di memoria. «Gli odierni regolatori di memoria e le norme di interfaccia avanzate hanno migliorato drammaticamente che cosa potete estrarre dalla tecnologia avanzata del silicio,» dice Frank di Arteris. «Questo ha permesso alle code profonde ed alle tabelle degli orari avanzate. Tecnologie di memoria avanzate, quale l'alta memoria di larghezza di banda (HBM) ed impilato per morire larghezze di banda di sostegno che abbiamo pensato impossible raggiungere appena una decade fa. Eppure non viene a buon mercato. Le tecnologie di Sub-10 nanometro inoltre permettono ai grandi nascondigli, così forse noi possono chiamare la memoria specifica del dominio di questo indigente.»

Ma questi sono tutti gli esempi di piccoli cambiamenti incrementali. «I sottosistemi di memoria di Architecting in cui il calcolo soprattutto segue i dati, piuttosto che l'altro modo intorno, richiede un significativo ripensano di molti precetti che gli architetti si abituino a,» dice Matt Horsnell, ingegnere principale senior della ricerca per il gruppo di ricerca e sviluppo del braccio. «C'è un'opportunità di migliorare l'astrazione di programmazione, dall'odierna lista tipica delle operazioni sui dati, ad una forma ampliata che incapsula la concorrenza e una certa nozione delle distanze relative fra le unità di calcolo e gli elementi dei dati. Tali astrazioni potrebbero permettere alle trasformazioni necessarie a più ottimamente di mirare alle memorie specifiche del dominio quando gli algoritmi stanno evolvendo rapidamente.»

Centri dati nel sedile del driver
I centri dati sono oggi i driver per molte tendenze di tecnologia. «Una delle domande più a crescita rapida di calcolo è nei centri dati in cui le applicazioni hanno bisogno la più capacità di memoria, larghezza di banda a latenza più bassa,» dice Ravi Thummarukudy, CEO per Mobiveil. «Con l'arrivo di ultimo standard industriale, del collegamento preciso di calcolo (CXL), degli architetti del sistema può la fila la memoria stata necessaria fra della memoria principale in DDRn DIMMS ed a memorie persistenti basate CXL più nuove o di DDRn. La latenza e le caratteristiche economiche di queste file delle memorie sono differenti e quella dà ad architetti le opzioni per combinare le memorie per soddisfare le loro esigenze.»

Quella è una continuazione delle architetture di memoria dell'eredità. «Molti OEM e case di sistema stanno progettando il loro proprio SoCs per personalizzare il silicio ai loro carichi di lavoro specifici,» dice Tim Kogel, ingegnere di applicazioni principale a Synopsys. «La più grande opportunità per i guadagni di potere e della prestazione è la specializzazione della gerarchia di memoria insieme all'architettura sostenente di interconnessione.

Consideri il potere. «Nelle architetture correnti, 90% dell'energia per i carichi di lavoro di AI è consumato tramite il movimento di dati, trasferendo i pesi e le attivazioni fra la memoria, i cache esterni del su chip ed infine all'elemento di calcolo stesso (si veda figura 1),» dice Arun Iyengar, CEO di Untether AI. «Soltanto mettendo a fuoco sulle esigenze di accelerazione di illazione e massimizzando l'efficienza energetica siamo capaci di consegnare la prestazione di calcolo senza precedenti.»

L'ottimizzazione di memoria è un problema a livello di sistema che tocca tutti gli aspetti della progettazione — hardware, software e strumenti. «Le strategie per ottimizzare la memoria sono diverse e dipendono dal dominio dell'applicazione,» aggiunge Kogel. «La migliore strategia è di evitare l'accesso alla memoria del fuori chip complessivamente. Per le architetture specifiche del dominio, questo può essere raggiunto tipicamente aumentando la memoria disponibile del su chip, o sotto forma di nascondigli o l'applicazione ha diretto la memoria. Particolarmente nell'area degli acceleratori d'apprendimento profondi, la memoria disponibile del su chip è un parametro progettuale decisivo che inoltre urta come l'applicazione della rete neurale è compilata sull'hardware dell'obiettivo — per esempio, la piastrellatura dell'operatore dell'avvolgimento.»

Molte progettazioni stanno guardando per andare più ulteriormente di questa. «I concetti specifici del dominio di memoria stanno esplorandi nel dominio spaziale di calcolo,» dice il Horsnell del braccio. «Come esempio, DSPs tende a fornire uno stagno delle memorie distribuite, spesso direttamente diretto nel software, che può essere una migliore misura per i requisiti di larghezza di banda ed i modelli di accesso delle applicazioni specializzate che i sistemi tradizionali di dividere-memoria. Per colmare la lacuna di efficienza con l'ASICs di fisso-funzione, queste unità di elaborazione offrono spesso certo form di specializzazione di memoria fornendo il supporto diretto per i modelli specifici di accesso (quali N-bufferizzazione, FIFOs, la linea amplificatori, compressione, ecc.). Un aspetto cruciale dell'orchestrazione all'interno di questi sistemi e una sfida nella progettazione loro, sta determinando la giusta granularità per gli accessi ai dati, che possono minimizzare le spese generali di sincronizzazione e di comunicazione mentre massimizzando la concorrenza allo stesso tempo. Altre sfide persistono, compreso la programmazione, la coerenza, la sincronizzazione e la traduzione, che aggiungono la complessità del software. Tuttavia, un itinerario possibile in avanti è di contare sulle lingue specifiche del dominio (DSLs), che rendendo il flusso di dati dei apps più esplicito, può permettere ai compilatori di identificare i modelli specializzati di accesso alla memoria e tracciarli sull'hardware più efficacemente.»

Inoltre paga dare uno sguardo più attento alle memorie stessi. «la Iper-personalizzazione è la tendenza che vediamo quando si tratta delle memorie,» dice Anand Thiruvengadam, responsabile di marketing di prodotto del personale con anzianità di servizio all'interno di Synopsys. «Questo significa le memorie su misura per le applicazioni differenti di conclusione. Anche all'interno di un'applicazione particolare di conclusione come AI ci sono esigenze differenti delle memorie, come per la formazione o inferencing, inferencing nei server, o inferencing nel bordo lontano. Ciascuna di queste applicazioni ha requisiti differenti e quella significa che dovete personalizzare le memorie. Questa personalizzazione significa che più potete non osservare le memorie come le merci o prodotti disponibili immediatamente. Dovete costruirlo per un'applicazione particolare. Quello è dove la salsa segreta dà dei calci a dentro.»

In molti casi la memoria e l'interconnessione sono raccordate strettamente. «Qualche cosa va quando si tratta della combinazione delle tecnologie di interconnessione e di memoria per rispondere alle esigenze di accesso ai dati dei carichi di lavoro dell'applicazione — per esempio, livelli multipli di raggruppamento che si combinano che elaborano con la memoria locale per approfittare della località nelle applicazioni di dato-flusso, o su chip multi-contato/multi-ported SRAMs enorme per le mappe attenuanti della caratteristica degli acceleratori di CNN e delle gerarchie profonde del cache con i protocolli specializzati di coerenza per attenuare l'insieme di lavoro tiepido dei carichi di lavoro del centro dati.»

I piccoli cambi possono dare i grandi risultati. «Appena sguardo al piccolo miracolo che Apple ha eseguito con il M1,» dice Frank. «Hanno capito come all'architetto un sottosistema di memoria che serve bene i padroni eterogenei multipli, facendo uso di strategia nascondente intelligente e di una gerarchia enorme e multilivelli del nascondiglio.»

Così è spesso il caso, software è l'ancora inerziale. «Che cosa accade solitamente c'è è un algoritmo sul posto e vediamo un modo ottimizzarlo, ottimizziamo la memoria, di modo che l'algoritmo è implementato molto meglio,» diciamo Saggurti. «Dal retro, abbiamo questi tipi differenti di memorie. Potete cambiare il vostro algoritmo per usare questi nuovi generi di memorie? Nel passato, facendo uso di TCAMs era principalmente una costruzione di dominio della rete per cercare i IP address. Più recentemente, i motori di addestramento stanno avvi usare TCAMs e quello è così approccio differente. Ciò ha bisogno del software, o dei firmware di cambiare basato sui tipi di memorie disponibili. Ma per lo più, il software resta cambiamenti di memoria e fissi per rendere l'implementazione risultante migliore.»

Consapevolezza di capacità di lavorazione
Molto tempo e soldi sta investendo in intelligenza artificiale attualmente. I chip su ordinazione sono costretti da capacità di lavorazione e quello sta mettendo il riflettore sulla memoria e sull'interconnessione.

«Storicamente, la memoria e le architetture di interconnessione sono state progettate basate sui fogli elettronici statici o modelli analitici semplici come il modello d'esecuzione di roofline,» dice Kogel. «Per le applicazioni avanzate, questa diventa abbastanza complesso. Per esempio, predire i requisiti di memoria di ogni strato in un CNN richiede la considerazione dell'ottimizzazione di compilatore come fusione di strato e della piastrellatura. Questi metodi statici diventano irragionevolmente complessi ed inesatti per la previsione e l'ottimizzazione dei carichi di lavoro SoC livelli con i diversi sottosistemi del IP e gli scenari dinamici dell'applicazione. D'altra parte, eseguire l'applicazione sopra l'emulazione dell'hardware o un sistema di modello è troppo tardi nel processo di sviluppo per fare tutti i cambiamenti drastici o ottimizzazione principale della progettazione di memoria.»

Quello mette il fuoco sui carichi di lavoro progettati. «La chiave ai sottosistemi efficienti di memoria è la conoscenza del vostro carico di lavoro,» dice Frank. «Capendo come si comporta, forse anche modellante lo in un modo che lo rende più compatibile con la limitazione della vostra gerarchia di memoria, questo è dove l'architettura è sfidata. Gli acceleratori specifici del dominio richiedono i sistemi di memoria sintonizzati — e l'arte di sviluppo il motore di trasformazione che “l'impedenza” abbina il prodotto in serie, l'accesso organizzato e bursty DRAM della pagina e del modello dell'accesso del motore richiede la comprensione nel comportamento del sistema, nelle tecniche di modellizzazione ed in molti carichi di lavoro per giocare con. A volte prende il cambiamento del modo che il carico di lavoro elabora i dati per potere migliorare il sistema globale. Un buon esempio era la transizione dalla rappresentazione “diretta” alla all'elaborazione basata a mattonelle in GPUs.»

Tutto scende alla modellistica ed alla simulazione. «Proponiamo l'uso degli strumenti virtuali di modello modellare il carico di lavoro dell'applicazione, insieme dei ai modelli livelli della transazione accurati dell'architettura di memoria e di interconnessione,» dice Kogel. «Questo “approccio quantitativo dell'architettura in primo luogo” permette l'analisi preventiva della compensazione, con conseguente specificazione affidabile di implementazione. A scapito di sforzo supplementare di simulazione e di modellistica, il beneficio è rischio riduttore di mancanza degli obiettivi di potere e della prestazione, o costo riduttore di overdesigning l'hardware appena per essere dal lato sicuro. Nell'era dei ritorni di diminuzione dalla legge di Moore, l'opportunità è di uscire con un prodotto ottimizzato e differenziato.»

Quello permette che l'impatto dei cambiamenti algoritmici sia visto, pure. «C'è una necessità di ritornare e riprogettare gli algoritmi,» dice Thiruvengadam. «Possono riprogettare per le architetture tradizionali di memoria dell'eredità, o possono essere riprogettati per le nuove architetture, i nuovi stili di memorie, nuovi sapori di memoria. C'è questa spinta costante per rappresentazione in scala della prestazione, costo che riporta in scala ed anche che equilibrare le alternanze per le applicazioni differenti. Ciò è essenzialmente la ragione per la quale state vedendo lo sviluppo continuato di MRAMs e di FeRAMs. Stanno provando a trovare un punto dolce per almeno una coppia di variabili, se non tutte le variabili. L'esigenza della riprogettazione degli algoritmi con le architetture di memoria certamente sta diventando importante.»

L'equilibrio è necessario. «Dovete pensare al concetto dell'intensità di calcolo ed il tipo di operazioni in questione,» dice Frank. «Determinati algoritmi hanno requisiti insaziabili di larghezza di banda, mentre altri muovono relativamente soltanto le piccole quantità di dati ma realizzare migliaia di operazioni su. l'operazione di In-memoria può lavorare bene per l'elaborazione SIMD tipa, dove la larghezza di banda dell'istruzione è piccola riguardante la larghezza di banda di dati e molti elementi sono elaborati facendo uso della stessa ricetta. Ma non appena ci sono dipendenze sequenziali nel flusso di dati o nel dataflow irregolare, il beneficio degli strizzacervelli specifici del dominio di memoria.»

Memoria su ordinazione
Mentre i cambiamenti architettonici possono fornire i grandi risultati, ottimizzare le memorie può anche fornire i guadagni. «Una grande proporzione del potere e dell'area di odierni acceleratori è usata sulla memoria,» dice Horsnell. «Così tutti i miglioramenti della latenza/densità/energia raggiunti dalle nuove tecnologie di memoria hanno potuto avere un impatto drammatico.»

Le memorie su ordinazione sono gran affare diventante. «Cominciate vedere le cose come calcolo di in-memoria, il calcolo di quasi-memoria, memorie specifiche che potrebbero essere scrivere-tutta-zero memoria — memorie che sono ottimizzate per determinati tipi di operazioni,» dice Saggurti. «Stiamo vedendo molti clienti interrogare noi riguardo a MRAM, ancor più personalizzazione di SRAMs, TCAMs e determinati ritocchi al TCAMs.»

Le difficoltà rimangono, comunque. «Ho avuto molte discussioni per quanto riguarda le progettazioni su ordinazione di memoria, dove elaborando sulla memoria muoio sarei stato un'architettura “ideale”,» dice Frank. «Avrebbe fornito l'alta larghezza di banda, la latenza bassa, ecc. Tutto era giusto, eccezione fatta per il fatto, che il processo di memoria stava limitando che logica potrebbe essere integrata — tre o quattro strati del metallo, a bassa potenza, ma transistor lenti. Quello ha significato l'inefficienza per il motore di calcolo. Il sacrificio la velocità di clock e della complessità di circuito improvvisamente non ha operato all'integrazione del motore di calcolo più così buona scelta.»

Ma alcuni di questi cambiamenti diventeranno necessari. «La gente vuole portare il flash sul chip e rendergli un flash incluso,» dice Saggurti. «Poi la domanda diventa, “è anche possibile? “A 28nm potreste potere fare il flash incluso, ma la gente comincia pensare alle cose come MRAM a 22nm.»

Eppure, ci sono altri modi esaminare il problema. «Variabilità trattata attraverso un wafer ed attraverso il dado e perfino col passare del tempo, progettazione di memoria di limite,» aggiunge Saggurti. «Quando progettate una memoria, SRAM semplice, tendete a progettare per il caso quando la cellula pungente va un modo — lento — e la periferia va l'altro modo — velocemente. Se progettate per quello e se la maggior parte del vostro silicio è tipica, state lasciando molti prestazione e potere sulla tavola. Se capite dove siete nella gamma trattata e permettete al progettista di circuiti integrati di agire sopra quelle informazioni, quindi potete regolare di conseguenza la sincronizzazione. La vostra progettazione potrebbe essere più ottimale e non dovete progettare per il caso peggiore.»

Conclusione
Mentre la memoria è stata sempre una compensazione di progettazione, non ha ricevuto mai lo stesso livello di attenzione come elaborazione, anche se è il limitatore della prestazione in termini di larghezza di banda, potere e area. Il AI sta inducendo la gente a ripensare le architetture di memoria per necessità, ma con quell'attenzione extra, i gruppi addetti alla progettazione possono anche ripensare alcuni del software e degli algoritmi che siano stati ottimizzati per i sistemi di memoria dell'eredità. In un mondo in cui i guadagni della prestazione non vengono gratis ogni 18 mesi, le misure più estreme stanno trasformando nel solo modo fermare i prodotti dalle merci diventanti. (da Brian Bailey)

Dettagli di contatto