Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Informatica distribuita, parallela e in cluster

Presentiamo MG3MConv: Potenziamento delle prestazioni CNN su SW26010

MG3MConv offre un'efficienza migliorata per i compiti di convoluzione sul processore SW26010.

― 6 leggere min


MG3MConv: CNN su SW26010MG3MConv: CNN su SW26010della convoluzione efficiente.Un nuovo algoritmo per un'elaborazione
Indice

Le reti neurali convoluzionali (CNN) sono diventate una parte fondamentale dell'intelligenza artificiale, alimentando i progressi in settori come il riconoscimento delle immagini, l'elaborazione del linguaggio e la guida automatica. Con la crescita delle dimensioni dei dati e la complessità dei modelli, il tempo necessario per eseguire le CNN diventa una preoccupazione. Poiché i processi di convoluzione rappresentano una parte importante del lavoro computazionale nelle CNN, creare algoritmi efficienti per queste operazioni è essenziale.

Il processore SW26010, un avanzato processore many-core, è progettato per eseguire compiti come questi. Anche se ha un grande potenziale, il suo attuale supporto per i compiti di convoluzione è ancora piuttosto basilare. Gli studi esistenti si sono concentrati sul miglioramento della velocità, ma spesso trascurano l'Adattabilità necessaria per i diversi tipi di lavoro di convoluzione.

MG3MConv: Un nuovo approccio

Per affrontare le limitazioni del processore SW26010, abbiamo sviluppato un nuovo algoritmo di convoluzione chiamato MG3MConv. Questo algoritmo è progettato per le caratteristiche uniche del processore e mira a migliorare sia le Prestazioni che la flessibilità nella gestione di una varietà di compiti di convoluzione.

Contesto delle CNN e dello SW26010

Le CNN sono essenziali per molte applicazioni di intelligenza artificiale grazie alla loro capacità di condividere pesi in modo efficiente e rappresentare i dati. Svolgono un ruolo significativo nella visione artificiale e nell'elaborazione del linguaggio. Tuttavia, le CNN possono diventare lente mentre gestiscono set di dati più grandi e reti più complesse.

Il processore SW26010 è il principale motore del supercomputer Sunway TaihuLight in Cina. Dispone di molti core e sistemi di memoria specializzati che possono migliorare le prestazioni se utilizzati correttamente. Tuttavia, gli algoritmi esistenti per la convoluzione su questo processore sono limitati e spesso non ottimizzano le diverse condizioni in cui lavorano le CNN.

Necessità di miglioramento nel supporto alla convoluzione

I metodi attuali per supportare la convoluzione sul SW26010 tentano principalmente di migliorare le prestazioni di picco senza considerare quanto siano adattabili questi algoritmi per vari compiti. Questo porta a inefficienze, in particolare quando si trattano batch di dimensioni più piccole e numeri di canale variabili.

La maggior parte degli studi esistenti manca anche di un focus sulla convoluzione a precisione singola, che è comunemente utilizzata in scenari reali. MG3MConv mira a colmare questa lacuna introducendo un approccio più granulare.

Caratteristiche chiave di MG3MConv

MG3MConv introduce diverse idee innovative:

  1. Mappatura Multi-granulare: Invece di utilizzare un approccio universale, MG3MConv supporta vari modi di organizzare e mappare i compiti di convoluzione, consentendo prestazioni migliori in diverse condizioni.

  2. Thread Blocks: L'introduzione di un concetto chiamato thread blocks (TB) aiuta a suddividere i compiti in pezzi più piccoli e gestibili. Questo consente un uso più efficiente delle risorse del processore.

  3. Quattro livelli di ottimizzazione: L'algoritmo applica ottimizzazioni a diversi livelli-livello CG, livello TB, livello thread e livello istruzione-per migliorare le prestazioni e l'efficienza.

Valutazione delle prestazioni di MG3MConv

Per determinare quanto bene funziona MG3MConv, abbiamo condotto una serie di test utilizzando CNN rappresentative. Abbiamo misurato le sue prestazioni rispetto a soluzioni esistenti come cuDNN su GPU NVIDIA.

Test di adattabilità

Un aspetto significativo della nostra valutazione ha riguardato il test su quanto bene MG3MConv possa adattarsi a diverse scene di convoluzione. Abbiamo esaminato diverse configurazioni, comprese variazioni nei numeri dei canali, dimensioni dei batch, dimensioni dei filtri e impostazioni di stride.

Risultati dai test di adattabilità
  1. Variazione dei numeri di canale: Quando variavamo il numero di canali nelle Convoluzioni, MG3MConv ha superato cuDNN in quasi tutti i casi. L'algoritmo ha mostrato un miglioramento marcato man mano che il numero dei canali aumentava.

  2. Regolazione delle dimensioni dei batch: Sono stati notati miglioramenti nelle prestazioni man mano che aumentavano le dimensioni dei batch. Una dimensione di batch più grande porta generalmente a una migliore larghezza di banda e maggiore efficienza.

  3. Impatto della dimensione del filtro: La dimensione dei filtri ha generalmente avuto poco effetto sulle prestazioni dell'algoritmo quando si utilizza MG3MConv, in particolare con numeri di canale più elevati.

  4. Variazioni di padding e stride: L'algoritmo ha dimostrato stabilità anche quando le dimensioni di padding e stride fluttuavano.

Praticità attraverso diverse CNN

Per i test pratici, abbiamo applicato MG3MConv a diversi modelli di CNN, inclusi AlexNet, VGG e GoogLeNet. In tutti i test, MG3MConv ha raggiunto una maggiore efficienza hardware rispetto a cuDNN, mostrando significativi miglioramenti in generale.

Valutazione del piano di mappatura multi-granulare

L'idea principale dietro MG3MConv risiede nel suo schema di mappatura multi-granulare. Questo approccio consente all'algoritmo di adattarsi in base alle dimensioni dei dati in ingresso, il che porta a migliori prestazioni complessive.

Caratteristiche architetturali dello SW26010

Per sfruttare appieno le capacità di MG3MConv, è essenziale comprendere le caratteristiche architetturali del processore SW26010. Questo processore ha più core e un design di memoria specifico, che possono essere sfruttati per migliorare le prestazioni.

  1. Core e Memoria: Lo SW26010 ha 260 core organizzati in gruppi, tutti supportando una vasta gamma di operazioni sui dati. Applicando algoritmi efficienti, queste caratteristiche possono aumentare significativamente le prestazioni.

  2. Accesso ai dati: Metodi di accesso ai dati efficienti aiutano a ridurre i colli di bottiglia nella memoria, consentendo un'elaborazione più fluida di grandi set di dati.

  3. Comunicazione dei registri ottimizzata: Il processore consente una condivisione efficace dei dati tra i core, che è cruciale per ottenere elevate prestazioni durante le operazioni di convoluzione.

Livelli di ottimizzazione in MG3MConv

Ottimizzazione a livello CG

A livello CG (core group), MG3MConv si concentra sull'organizzazione e mappatura complessiva dei compiti di convoluzione per migliorare l'efficienza di elaborazione.

Ottimizzazione a livello TB

Per il livello TB (thread block), l'attenzione è sulla collaborazione tra più core per ridurre la pressione sull'accesso alla memoria. Organizzando meglio i dati, l'algoritmo minimizza l'accesso ridondante alla memoria, migliorando la velocità.

Ottimizzazione a livello Thread

Questo livello si concentra su come i dati vengono accessi all'interno di un singolo core. MG3MConv mira a riutilizzare i dati in modo efficace, riducendo il sovraccarico associato al caricamento dei dati durante i calcoli.

Ottimizzazione a livello istruzione

Infine, l'ottimizzazione a livello istruzione si occupa dell'organizzazione e dell'esecuzione delle istruzioni all'interno del kernel assembly. Ottimizzando questi processi, MG3MConv ottiene ulteriori miglioramenti delle prestazioni.

Confronto con soluzioni esistenti

Rispetto a cuDNN e ad altre librerie, MG3MConv ha mostrato miglioramenti sostanziali in termini di efficienza. Su vari modelli di CNN, ha costantemente superato queste soluzioni esistenti, verificando la sua efficacia in diverse scene di convoluzione.

Direzioni future

Guardando al futuro, ulteriori lavori si concentreranno sull'ottimizzazione di altri metodi di convoluzione e sull'espansione di queste esperienze ad altri processori many-core. La flessibilità e l'adattabilità introdotte con MG3MConv possono stabilire un precedente per i futuri progetti di algoritmi.

Conclusione

MG3MConv rappresenta un passo significativo avanti negli algoritmi di convoluzione progettati per il processore SW26010. Affrontando le limitazioni nel supporto attuale ai compiti di convoluzione, consente migliori prestazioni, adattabilità ed efficienza, rendendolo uno strumento prezioso per eseguire reti neurali convoluzionali in applicazioni pratiche. I risultati di vari test confermano i vantaggi di questo nuovo algoritmo rispetto alle opzioni esistenti, aprendo la strada a implementazioni AI più efficaci.

Fonte originale

Titolo: MG3MConv: Multi-Grained Matrix-Multiplication-Mapping Convolution Algorithm toward the SW26010 Processor

Estratto: As the core of artificial intelligence applications, the research of convolution has become a hot topic in high performance computing. With the rapid development of the emerging SW26010 processor in artificial intelligence, there is an urgent need for high-performance convolution algorithms on the processor. However, the current support of convolution on SW26010 is still rudimentary. The only studies provide sufficient runtime peak performance but lack the adaptability to various convolution scenes. To perfect convolution algorithms on SW26010, we propose a multi-grained matrix-multiplication-mapping convolution algorithm called MG3MConv, which targets the architectural features of SW26010. MG3MConv supports diversified mapping schemes of convolution tasks based on the concept of the thread block proposed in this paper. All the architecture-oriented optimization methods are elaborately designed from four levels to fully exploit the hardware efficiency of SW26010. The experiments show that the hardware efficiency of MG3MConv can reach 84.78% in max, which is 1.75 times compared with that of cuDNN based on NVIDIA K80m GPU. Moreover, MG3MConv can overperform cuDNN in most convolution scenes. We also use six representative CNNs as real-world cases, and the hardware efficiency of MG3MConv reaches up to 67.04% on the VGG network model, which is 1.37 times and 1.96 times that of cuDNN and swDNN, respectively.

Autori: Zheng Wu

Ultimo aggiornamento: 2023-07-10 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2307.04941

Fonte PDF: https://arxiv.org/pdf/2307.04941

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.

Altro dall'autore

Articoli simili