Migliorare i sistemi di Processing-in-Memory con nuove librerie
Una nuova libreria migliora i calcoli complessi nelle architetture PIM.
― 6 leggere min
Indice
- La Sfida delle Operazioni Complesse
- La Necessità di Librerie Efficaci
- Panoramica delle Funzioni Trascendenti
- Come Funziona il PIM
- Stato Attuale della Tecnologia PIM
- Limitazioni dei Sistemi PIM Esistenti
- La Nuova Libreria per le Funzioni Trascendenti
- Valutazione delle Prestazioni della Libreria
- Testare la Libreria con Carichi di Lavoro Reali
- Conclusione
- Fonte originale
- Link di riferimento
Il Processing-in-memory (PIM) è un modo nuovo di usare la memoria che la combina con le capacità di elaborazione. Questo approccio mira a risolvere il problema del trasferimento dei dati tra la memoria e le unità di elaborazione nei computer moderni. Nei sistemi tradizionali, c'è sempre stata una differenza di prestazioni tra la velocità dei processori e quella con cui possono accedere alla memoria. Con l'aumentare della velocità dei computer, accedere ai dati è diventato un grosso limite. I sistemi PIM cercano di migliorare le prestazioni permettendo i calcoli proprio dove sono memorizzati i dati.
La Sfida delle Operazioni Complesse
Una delle principali sfide nei sistemi PIM attuali è gestire calcoli complessi, in particolare le Funzioni trascendenti. Queste funzioni includono le funzioni trigonometriche come seno e coseno, l'esponenziazione e i logaritmi. Questi calcoli sono cruciali in molte applicazioni moderne, inclusi quelli nel machine learning. Le architetture PIM attuali spesso hanno capacità limitate e faticano a gestire bene queste operazioni complesse.
La Necessità di Librerie Efficaci
Per supportare questi calcoli complessi nei sistemi PIM, è stata sviluppata una nuova libreria. Questa libreria offre metodi efficienti per gestire le funzioni trascendenti. Usa due tecniche principali: CORDIC e Tabelle di ricerca (LUT). CORDIC è un metodo che permette di eseguire calcoli usando operazioni semplici come somme e spostamenti. Le tabelle di ricerca memorizzano valori pre-calcolati così da poter effettuare calcoli velocemente cercandoli invece di calcolarli da zero.
Panoramica delle Funzioni Trascendenti
Le funzioni trascendenti sono funzioni che non possono essere espresse come una semplice equazione polinomiale. Questo le rende più difficili da calcolare con precisione in un numero finito di passaggi. Le funzioni trascendenti comuni includono seno, coseno, esponenziazione e logaritmo. Queste funzioni sono importanti in varie applicazioni, come il calcolo scientifico e il machine learning.
Come Funziona il PIM
I sistemi PIM integrano elementi di elaborazione vicino alla memoria per ridurre i ritardi causati dal trasferimento dei dati. Questi sistemi possono essere divisi in due categorie principali:
Processing-near-memory (PNM): Questo tipo posiziona le unità di elaborazione proprio accanto alla memoria. Questo approccio aiuta a velocizzare l'accesso ai dati.
Processing-using-memory (PUM): Questo tipo usa le proprietà della memoria stessa per eseguire calcoli, permettendo operazioni senza spostare i dati fuori dalla memoria.
Recenti progressi nella tecnologia della memoria hanno reso possibile progettare sistemi PIM che offrono queste capacità.
Stato Attuale della Tecnologia PIM
I primi sistemi PIM nel mondo reale hanno cominciato a comparire sul mercato. Aziende come UPMEM hanno sviluppato architetture PIM che posizionano piccoli core di elaborazione accanto a banchi di memoria. Questi sviluppi dimostrano che il PIM può diventare una soluzione pratica ai problemi di movimento dei dati affrontati dall’architettura informatica tradizionale.
Sono emersi più prototipi, inclusi vari approcci come HBM-PIM e AxDIMM. Ognuno di questi sistemi si concentra su casi d'uso specifici come il machine learning o l'elaborazione dei dati, ma condividono caratteristiche comuni, come set di istruzioni limitati e unità di elaborazione semplici.
Limitazioni dei Sistemi PIM Esistenti
I sistemi PIM attuali hanno limitazioni in termini di tipi di operazioni che possono eseguire. Ad esempio, molti sistemi non supportano calcoli avanzati come le funzioni trascendenti in modo nativo, affidandosi invece a librerie software. Questo crea sfide nelle applicazioni che richiedono un uso frequente di queste funzioni, poiché la programmazione deve gestire il trasferimento dei compiti tra diverse unità di elaborazione.
La Nuova Libreria per le Funzioni Trascendenti
Per affrontare le limitazioni dei sistemi PIM esistenti, è stata creata una nuova libreria specializzata in funzioni trascendenti. Questa libreria supporta vari metodi per calcolare queste funzioni in modo efficiente. Il focus della libreria è fornire calcoli rapidi e accurati nel contesto delle architetture PIM.
Metodo CORDIC
Il metodo CORDIC è un algoritmo iterativo che può essere usato per calcolare varie funzioni matematiche, inclusi seno e coseno. Il principale vantaggio di CORDIC è che utilizza solo operazioni semplici come somma e spostamento di bit, che sono più facili da eseguire nei sistemi PIM rispetto a operazioni più complesse come la moltiplicazione.
Tabelle di Ricerca (LUT)
Il metodo delle tabelle di ricerca prevede il calcolo preventivo dei valori delle funzioni e la loro memorizzazione nella memoria. Quando è necessario un calcolo, il sistema recupera il valore necessario dalla tabella. Questo metodo accelera notevolmente i calcoli evitando la necessità di ampi calcoli ogni volta che viene chiamata una funzione. Le tabelle di ricerca possono essere adattate in base alle necessità dell'applicazione, consentendo un equilibrio tra velocità e precisione.
Valutazione delle Prestazioni della Libreria
Per determinare quanto sia efficace la nuova libreria, sono state condotte analisi delle prestazioni utilizzando microbenchmark. I microbenchmark sono piccoli programmi progettati per testare le prestazioni di funzioni specifiche. Questi test hanno misurato l'accuratezza, i cicli di esecuzione, il consumo di memoria e il tempo di setup associato ai diversi metodi di calcolo.
Cicli di Esecuzione
Il numero di cicli di esecuzione è una metrica importante nella valutazione delle prestazioni. Meno cicli di esecuzione indicano generalmente prestazioni più veloci. La libreria è risultata capace di ottimizzare efficacemente i cicli di esecuzione, rendendola adatta per vari utilizzi.
Consumo di Memoria
Il consumo di memoria è un altro fattore critico quando si valuta la prestazione. Le architetture PIM spesso hanno risorse di memoria limitate, rendendo essenziale gestire queste risorse in modo efficiente. Sono stati testati diversi metodi di calcolo delle funzioni per il loro utilizzo di memoria, assicurando che la libreria rimanga pratica in scenari reali.
Testare la Libreria con Carichi di Lavoro Reali
Oltre ai microbenchmark, la libreria è stata testata con tre significativi carichi di lavoro reali: Blackscholes, Sigmoid e Softmax. Questi benchmark rappresentano applicazioni comuni in cui le funzioni trascendenti svolgono un ruolo fondamentale.
Blackscholes
Il modello Blackscholes è usato in finanza per calcolare il prezzo delle opzioni. Richiede diverse funzioni, tra cui esponenziazione e logaritmi. La versione PIM del benchmark Blackscholes ha dimostrato notevoli miglioramenti nelle prestazioni rispetto ai metodi tradizionali.
Sigmoid
La funzione Sigmoid è comunemente usata nel machine learning come funzione di attivazione. Questo benchmark ha evidenziato la capacità della libreria di fornire prestazioni competitive rispetto alle implementazioni tradizionali su CPU.
Softmax
Softmax viene utilizzato nel machine learning per convertire punteggi grezzi in probabilità. L'implementazione di Softmax utilizzando la nuova libreria ha dimostrato che l'architettura PIM può gestire efficacemente applicazioni esigenti, riducendo notevolmente il sovraccarico del movimento dei dati.
Conclusione
I sistemi Processing-in-memory hanno un grande potenziale per migliorare l'efficienza e la velocità dei calcoli riducendo i colli di bottiglia associati al movimento dei dati. La nuova libreria per le funzioni trascendenti affronta efficacemente le limitazioni delle architetture PIM esistenti offrendo metodi efficienti per calcoli complessi. Sfruttando approcci come CORDIC e tabelle di ricerca, la libreria può fornire risultati rapidi e accurati, aprendo la strada a applicazioni più avanzate in campi come il machine learning e il calcolo scientifico.
Man mano che la tecnologia PIM continua a evolversi, la disponibilità di librerie efficienti sarà cruciale per sbloccare il suo pieno potenziale e abilitare una nuova generazione di sistemi informatici in grado di gestire le richieste dei carichi di lavoro moderni.
Titolo: TransPimLib: A Library for Efficient Transcendental Functions on Processing-in-Memory Systems
Estratto: Processing-in-memory (PIM) promises to alleviate the data movement bottleneck in modern computing systems. However, current real-world PIM systems have the inherent disadvantage that their hardware is more constrained than in conventional processors (CPU, GPU), due to the difficulty and cost of building processing elements near or inside the memory. As a result, general-purpose PIM architectures support fairly limited instruction sets and struggle to execute complex operations such as transcendental functions and other hard-to-calculate operations (e.g., square root). These operations are particularly important for some modern workloads, e.g., activation functions in machine learning applications. In order to provide support for transcendental (and other hard-to-calculate) functions in general-purpose PIM systems, we present \emph{TransPimLib}, a library that provides CORDIC-based and LUT-based methods for trigonometric functions, hyperbolic functions, exponentiation, logarithm, square root, etc. We develop an implementation of TransPimLib for the UPMEM PIM architecture and perform a thorough evaluation of TransPimLib's methods in terms of performance and accuracy, using microbenchmarks and three full workloads (Blackscholes, Sigmoid, Softmax). We open-source all our code and datasets at~\url{https://github.com/CMU-SAFARI/transpimlib}.
Autori: Maurus Item, Juan Gómez-Luna, Yuxin Guo, Geraldo F. Oliveira, Mohammad Sadrosadati, Onur Mutlu
Ultimo aggiornamento: 2023-09-05 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2304.01951
Fonte PDF: https://arxiv.org/pdf/2304.01951
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.