L'inevitabilità della penetrazione degli FPGA nei data center

L'inevitabilità della penetrazione degli FPGA nei data center
Non è necessario essere un progettista di chip per programmare per FPGA, proprio come non è necessario essere un programmatore C++ per scrivere codice in Java. Tuttavia, in entrambi i casi sarà probabilmente utile.

L'obiettivo della commercializzazione delle tecnologie Java e FPGA è confutare quest'ultima affermazione. Buone notizie per gli FPGA: utilizzando i giusti livelli di astrazione e il giusto set di strumenti, negli ultimi 35 anni dall'invenzione del dispositivo logico programmabile, la creazione di algoritmi e flussi di dati per FPGA anziché CPU, DSP, GPU o qualsiasi altra forma di ASIC personalizzati è diventata sempre più comune, più facile.

La sorprendente tempestività della loro creazione è evidente nel fatto che proprio quando le CPU non potevano più rimanere l'unico modulo di calcolo dei data center a svolgere molti compiti - per una serie di ragioni - gli FPGA hanno raggiunto la loro efficacia, offrendo velocità, bassa latenza, capacità di networking e memoria: capacità di calcolo eterogenee dei moderni SoC FPGA, che sono sistemi informatici quasi a tutti gli effetti. Tuttavia, gli FPGA vengono combinati con successo anche con altri dispositivi nei sistemi ibridi e, a nostro avviso, stanno appena iniziando a trovare il posto che meritano nella gerarchia informatica.

Ecco perché abbiamo organizzato la conferenza The Next FPGA Platform a San Jose il 22 gennaio. Naturalmente uno dei principali fornitori di FPGA al mondo e pioniere in questo settore è Xilinx. Ivo Bolsens, vicepresidente senior e chief technology officer di Xilinx, è intervenuto alla conferenza e oggi ci ha espresso le sue opinioni su come Xilinx sta contribuendo a creare sistemi informatici mutevoli per i data center.

Architetti di sistema e programmatori hanno impiegato molto tempo per ideare un data center eterogeneo, che presenterà vari tipi di potenza informatica in grado di risolvere problemi di elaborazione, archiviazione e rete. Ciò sembra necessario perché sta diventando sempre più difficile seguire la legge di Moore utilizzando vari dispositivi CMOS. Per ora, il nostro linguaggio è ancora incentrato sulla CPU e parliamo ancora di “accelerazione delle applicazioni”, ovvero far funzionare i programmi meglio di quanto si possa fare solo con le CPU. Nel corso del tempo, i data center diventeranno insiemi di potenza di calcolo, archiviazione di dati e protocolli che collegheranno tutto insieme, e torneremo a termini come “informatica” e “applicazioni”. L'informatica ibrida diventerà normale quanto gli odierni servizi cloud eseguiti su desktop o macchine virtuali e, a un certo punto, utilizzeremo semplicemente la parola "informatica" per descrivere come funzionano. Ad un certo punto, ed è probabile che gli FPGA contribuiranno a inaugurare questa era, lo chiameremo nuovamente elaborazione dei dati.

L’adozione degli FPGA nei data center richiederà un cambiamento di mentalità. "Quando si pensa a come velocizzare le applicazioni odierne, è necessario comprendere le nozioni di base su come funzionano, quali risorse vengono utilizzate e dove viene impiegato il tempo", spiega Bolsens. – Devi studiare il problema generale che stai cercando di risolvere. Molte applicazioni in esecuzione nei data center oggi sono scalabili e consumano grandi quantità di risorse. Prendiamo ad esempio l’apprendimento automatico, che utilizza un numero enorme di nodi informatici. Ma quando parliamo di accelerazione, dobbiamo pensare non solo all’accelerazione dei computer, ma anche all’accelerazione delle infrastrutture”.

Ad esempio, nel tipo di operazioni di apprendimento automatico studiate in pratica da Bolsens, circa il 50% del tempo viene dedicato al trasferimento dei dati avanti e indietro tra la potenza di calcolo dispersa, e solo la restante metà del tempo viene dedicata ai calcoli stessi.

“È qui che penso che l’FPGA possa aiutare, perché possiamo garantire che sia gli aspetti computazionali che quelli di comunicazione dell’applicazione siano ottimizzati. E possiamo farlo a livello di infrastruttura generale e a livello di chip. Questo è uno dei grandi vantaggi degli FPGA, poiché consente di creare reti di comunicazione per esigenze applicative specifiche. Sulla base dei modelli tipici di spostamento dei dati nei carichi di lavoro AI, non vedo la necessità di un'architettura complessa basata su switch. Puoi costruire una rete con un grande flusso di dati. Lo stesso vale per le attività di addestramento della rete neurale: puoi costruire una rete mesh con dimensioni dei pacchetti che si adattano a un'attività specifica. Utilizzando un FPGA, i protocolli di trasferimento dati e le topologie dei circuiti possono essere scalati e adattati in modo molto preciso a un'applicazione specifica. E nel caso dell’apprendimento automatico, è anche chiaro che non abbiamo bisogno di numeri in virgola mobile a doppia precisione e possiamo adattare anche quello”.

La differenza tra un FPGA e una CPU o un ASIC personalizzato è che questi ultimi sono programmati in fabbrica, dopodiché non è più possibile cambiare idea sul tipo di dati da calcolare o sugli elementi da calcolare, o sulla natura dei dati fluire attraverso il dispositivo. Gli FPGA ti consentono di cambiare idea se le condizioni operative cambiano.

In passato, questo vantaggio aveva un prezzo, quando la programmazione FPGA non era per i deboli di cuore. La necessità è quella di aprire i compilatori FPGA per una migliore integrazione con gli strumenti utilizzati dai programmatori per scrivere applicazioni parallele alla CPU in C, C++ o Python e di esternalizzare parte del lavoro a librerie che accelerano le procedure sugli FPGA. Questo è ciò che fa lo stack di machine learning di Vitis, alimentando piattaforme ML come Caffe e TensorFlow, con librerie per l'esecuzione di modelli di intelligenza artificiale convenzionali o l'aggiunta di funzionalità FPGA ad attività come la transcodifica video, il riconoscimento di oggetti video e l'analisi dei dati, la gestione dei rischi finanziari e qualsiasi altra cosa. -biblioteche di partito.

Questo concetto non è molto diverso dal progetto CUDA di Nvidia, lanciato dieci anni fa, che scarica il calcolo parallelo sugli acceleratori GPU, o dal toolkit ROCm di AMD, o dalla promessa del progetto OneAPI di Intel, che dovrebbe funzionare su diverse CPU, GPU e FPGA.

L'unica domanda è come tutti questi strumenti saranno collegati tra loro in modo che ogni persona possa programmare una serie di potenze di calcolo a propria discrezione. Questo è importante perché gli FPGA sono diventati più complessi, molto più complessi di qualsiasi CPU disponibile. Sono realizzati utilizzando i processi produttivi più avanzati e le più moderne tecnologie di confezionamento dei chip. E troveranno la loro nicchia, poiché non possiamo più sprecare tempo, denaro, energia e intelligenza: tutte queste sono risorse troppo costose.

"Gli FPGA offrono vantaggi tecnologici", afferma Bolsens. – E non si tratta solo della solita pubblicità sull’adattabilità e sulla riconfigurabilità. In tutte le applicazioni importanti: apprendimento automatico, analisi grafica, trading ad alta velocità, ecc. - hanno la capacità di adattare a un compito specifico non solo il percorso di distribuzione dei dati, ma anche l'architettura della memoria, ovvero il modo in cui i dati si muovono all'interno del chip. Gli FPGA hanno anche molta più memoria integrata rispetto ad altri dispositivi. Va inoltre tenuto presente che se un’attività non rientra in un FPGA, è possibile scalarla su più chip senza incontrare gli svantaggi che ti attendono quando si scalano le attività su più CPU o GPU”.

Fonte: habr.com

Aggiungi un commento