Inevitabilità dell'ingresso delle FPGA nei data center

Inevitabilità dell'ingresso delle FPGA nei data center
Non è necessario essere un progettista di chip per programmare per FPGA, così come non è necessario essere un programmatore C++ per scrivere codice in Java. Tuttavia, in entrambi i casi, potrebbe essere utile.

L'obiettivo della commercializzazione di entrambe le tecnologie, Java e FPGA, è quello di confutare la recente affermazione. Buone notizie per le FPGA: con l'uso dei giusti livelli di astrazione e strumenti negli ultimi 35 anni, da quando è stato inventato il dispositivo logico programmabile, sta diventando sempre più semplice sviluppare algoritmi e flussi di dati per FPGA, invece di CPU, DSP, GPU o qualsiasi altra forma di ASIC specializzati.

La sorprendente tempestività della loro creazione si manifesta poiché proprio quando le CPU non possono più rimanere l'unico modulo di calcolo di data center Per svolgere una varietà di compiti – per le più diverse ragioni – le FPGA hanno raggiunto la loro efficienza, offrendo prestazioni elevate, bassa latenza, capacità di rete e memoria: le versatili capacità computazionali delle moderne FPGA SoC, che rappresentano praticamente sistemi computazionali completi. Tuttavia, le FPGA si integrano bene anche con altri dispositivi in sistemi ibridi e, secondo noi, stanno appena iniziando a trovare il loro posto legittimo nella gerarchia dei calcoli.

Per questo motivo 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 campo è Xilinx. Ivo Bolsens, Senior Vice President e CTO di Xilinx, ha presentato una relazione alla conferenza, condividendo con noi le sue riflessioni attuali su come Xilinx sta contribuendo a creare sistemi di calcolo modificabili per i data center.

Gli architetti di sistemi e i programmatori hanno impiegato molto tempo per arrivare a un centro dati eterogeneo, dove saranno presenti capacità informatiche di vario tipo, capaci di affrontare compiti di calcolo, archiviazione e organizzazione delle reti. Questo sembra necessario poiché seguire la legge di Moore utilizzando diversi CMOS diventa sempre più difficile. Finché il nostro linguaggio è ancora legato alla CPU, e parliamo ancora di "accelerazione delle applicazioni", intendiamo migliorare le prestazioni dei programmi rispetto a ciò che può essere realizzato solo con le CPU. Col tempo, i centri dati si trasformeranno in insiemi di potenza di calcolo, archiviazione dati e protocolli che collegano tutto insieme, e torneremo a termini come "calcolo" e "applicazioni". I calcoli ibridi diventeranno la norma, proprio come i servizi "cloud" di oggi, che si basano su server tradizionali o di macchine virtuali, e a un certo punto useremo semplicemente la parola "calcolo" per descriverne il funzionamento. A un certo punto – e probabilmente l'arrivo di questa era sarà fortemente accelerato dagli FPGA – lo chiameremo di nuovo elaborazione dei dati.

Per integrare gli FPGA nei data center, è necessario un cambiamento di mentalità. «Pensando ai modi per accelerare le applicazioni di oggi, si deve andare a fondo delle basi su come vengono eseguite, quali risorse vengono utilizzate e dove va a finire il tempo», spiega Bolesens. «Bisogna studiare il problema complessivo che si sta cercando di risolvere. Molte applicazioni che operano nei data center oggi si scalano, assorbendo un grande numero di risorse. Prendiamo, ad esempio, il machine learning, che utilizza un'enorme quantità di nodi di calcolo. Ma quando si parla di accelerazione, è fondamentale pensare non solo all'accelerazione dei calcoli, ma anche all'accelerazione dell'infrastruttura».

Ad esempio, nelle operazioni legate al machine learning che Bolesens ha studiato nella pratica, circa il 50% del tempo viene speso per il trasferimento dei dati avanti e indietro tra le risorse di calcolo distribuite, e solo la restante metà del tempo viene dedicata ai calcoli stessi.

«È proprio qui, a mio avviso, che l'FPGA può essere d'aiuto, poiché possiamo ottimizzare sia gli aspetti computazionali che quelli di trasmissione dei dati per l'applicazione. E possiamo farlo a livello di infrastruttura generale e a livello di chip. Questo è uno dei grandi vantaggi degli FPGA, che permettono di creare reti di comunicazione su misura per le esigenze specifiche dell'applicazione. Osservando i modelli tipici di spostamento dei dati in compiti legati all'intelligenza artificiale, non vedo la necessità di un'architettura complessa basata su switch. Si può costruire una rete con un flusso di dati elevato. Lo stesso vale per i compiti di addestramento delle reti neurali: si può costruire una rete a celle con dimensioni dei pacchetti che si adattano al compito specifico. Con l'uso degli FPGA, è possibile scalare e adattare con grande precisione i protocolli di trasmissione dei dati e la topologia del circuito per un'applicazione specifica. Inoltre, nel caso dell'apprendimento automatico, è chiaro che non abbiamo bisogno di numeri a virgola mobile a doppia precisione, e questo possiamo adattarlo anche noi».

La differenza tra FPGA e CPU o ASIC specializzati è che i secondi vengono programmati al momento della produzione, dopo di che non è possibile cambiare il tipo di dati elaborati o gli elementi di calcolo, né la natura del flusso di dati che attraversa il dispositivo. Le FPGA ti permettono di riconsiderare se cambiano le condizioni operative.

In passato, questo vantaggio aveva un costo elevato, poiché la programmazione delle FPGA era destinata a chi non si curava di avere una certa determinazione. È necessario aprire i compilatori per FPGA affinché si integrino meglio con gli strumenti utilizzati dai programmatori per creare applicazioni con calcoli paralleli per CPU nei linguaggi C, C++ o Python, e delegare parte del lavoro a librerie che accelerano le procedure sulle FPGA. Questo è ciò che fa lo stack per l'apprendimento automatico Vitis, che si trova alla base di piattaforme per l'IA come Caffe e TensorFlow, e possiede librerie per eseguire modelli di IA comuni o aggiungere capacità FPGA a compiti come la ricodifica video, il riconoscimento di oggetti nei video, l'analisi dei dati, la gestione dei rischi finanziari e qualsiasi libreria di terze parti.

Questo concetto non è molto diverso dal progetto CUDA di Nvidia, lanciato dieci anni fa, che spostava i calcoli paralleli su acceleratori GPU, o dal set di strumenti ROCm di AMD, o dalle promesse del progetto OneAPI di Intel, che dovrebbe funzionare su diverse CPU, GPU e FPGA.

La questione è solo come tutti questi strumenti saranno collegati insieme in modo che chiunque possa programmare un insieme di risorse di calcolo a proprio piacimento. Questo è importante perché le FPGA sono diventate più complesse, molto più complesse di qualsiasi CPU esistente. Vengono prodotte utilizzando i processi tecnologici più avanzati e le tecnologie di imballaggio dei chip più moderne. Troveranno la loro nicchia, poiché non possiamo più permetterci di sprecare tempo, denaro, energia e intelligenza: tutte queste sono risorse troppo costose.

«FPGA offre vantaggi tecnologici», afferma Bolesens. «E non è solo una pubblicità sulla loro adattabilità e riconfigurabilità. In tutte le applicazioni chiave — apprendimento automatico, analisi dei grafi, trading ad alta velocità, ecc. — hanno la possibilità di adattare non solo il percorso di diffusione dei dati, ma anche l'architettura della memoria: cioè, il modo in cui i dati si muovono all'interno del chip. Inoltre, gli FPGA hanno incorporato molta più memoria rispetto ad altri dispositivi. Bisogna considerare anche che, se un compito non può essere contenuto in un singolo FPGA, è possibile scalarlo su più chip, senza imbattersi negli svantaggi che si incontrano quando si scalano compiti su più CPU o GPU.»

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster