L'inevitabilità della penetrazione delle FPGA nei data center

L'inevitabilità della penetrazione delle FPGA nei data center
Non è necessario essere uno sviluppatore di chip per programmare per FPGA, così come non è necessario essere un programmatore C++ per scrivere codice in Java. Tuttavia, in entrambi i casi, probabilmente non sarà superfluo.

L'obiettivo della commercializzazione di entrambe le tecnologie, Java e FPGA, è di confutare l'ultima affermazione. Le buone notizie per FPGA – utilizzando i giusti livelli di astrazione e set di strumenti negli ultimi 35 anni, da quando è stato inventato il dispositivo logico programmabile, creare algoritmi e flussi di dati per FPGA invece che per CPU, DSP, GPU o qualsiasi altra forma di ASIC specializzati diventa sempre più facile.

La tempistica straordinaria della loro creazione si manifesta nel fatto che proprio quando le CPU non potevano più rimanere l'unico modulo di calcolo di data center per svolgere molteplici compiti – per le ragioni più varie – le FPGA hanno raggiunto la loro efficacia, offrendo alta velocità, bassa latenza, capacità di rete e memoria – le capacità computazionali eterogenee dei moderni SoC FPGA, 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 legittimo posto nella gerarchia del calcolo.

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 settore è l'azienda Xilinx. Ivo Bolsens, vicepresidente senior e CTO di Xilinx, ha partecipato alla conferenza con una presentazione e ci ha parlato dei suoi pensieri odierni su come Xilinx sta aiutando a creare sistemi di calcolo modificabili per i data center.

Gli architetti di sistema e i programmatori hanno impiegato abbastanza tempo per arrivare a un data center eterogeneo, in cui saranno presentate risorse computazionali di vario tipo, per affrontare compiti di calcolo, archiviazione e organizzazione delle reti. Questo sembra necessario in considerazione del fatto che seguire la legge di Moore utilizzando vari CMOS diventa sempre più difficile. Finché il nostro linguaggio è ancora legato alla CPU, e parliamo ancora di "accelerazione delle applicazioni", intendendo il miglioramento delle prestazioni dei programmi rispetto a ciò che si può fare solo con le CPU. Dopo un po', i data center si trasformeranno in insiemi di potenze computazionali, archiviazione dati e protocolli che uniscono tutto, e torneremo a termini come "calcoli" e "applicazioni". I calcoli ibridi diventeranno una norma come i servizi "cloud" odierni, basati su normali macchine virtuali, e a un certo punto useremo semplicemente la parola "calcoli" per descrivere il loro funzionamento. A un certo punto – e probabilmente l'arrivo di quest'era sarà attivamente facilitato dalle FPGA – torneremo a chiamarlo elaborazione dei dati.

Per integrare le FPGA nei data center sarà necessario cambiare modo di pensare. "Pensando ai modi per accelerare le applicazioni di oggi, bisogna scavare alle radici di come vengono eseguite, quali risorse vengono utilizzate, a cosa viene dedicato del tempo," spiega Bolsens. "Bisogna studiare il problema generale che si sta cercando di risolvere. Molte applicazioni che operano nei data center oggi sono scalabili, catturando un gran numero di risorse. Prendiamo, ad esempio, l'apprendimento automatico, che utilizza un'enorme quantità di nodi computazionali. Ma parlando di accelerazione, bisogna pensare non solo all'accelerazione dei calcoli, ma anche all'accelerazione dell'infrastruttura."

Ad esempio, nelle operazioni legate all'apprendimento automatico che Bolsens ha studiato in pratica, circa il 50% del tempo viene speso per trasferire dati avanti e indietro tra potenze computazionali disperse, e solo la restante metà del tempo viene utilizzata per i calcoli stessi.

«È proprio qui, mi sembra, che gli FPGA possono fare la differenza, poiché possiamo ottimizzare sia gli aspetti computazionali che quelli di trasmissione dei dati per l'applicazione. E possiamo farlo sia a livello di infrastruttura generale che a livello di chip. Questo è uno dei grandi vantaggi degli FPGA, che consentono di creare reti di comunicazione su misura per le esigenze specifiche dell'applicazione. Osservando i modelli tipici di movimento 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. Utilizzando 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 del machine learning, è chiaro che non abbiamo bisogno di numeri in virgola mobile a doppia precisione e anche questo possiamo adattarlo».

La differenza tra FPGA e CPU o ASIC specializzati è che questi ultimi vengono programmati durante la produzione, e dopo non è più possibile cambiare idea riguardo ai tipi di dati da calcolare o agli elementi da calcolare, o riguardo alla natura del flusso di dati che attraversa il dispositivo. Gli FPGA ti consentono di ripensare se cambiano le condizioni operative.

In passato, questo vantaggio aveva un costo elevato, poiché la programmazione per FPGA non era per i deboli di spirito. Era necessario aprire i compilatori per FPGA affinché si integrassero meglio con gli strumenti utilizzati dai programmatori per creare applicazioni di calcolo parallelo per CPU in linguaggi come C, C++ o Python, e delegare parte del lavoro alle librerie che accelerano le procedure su FPGA. Questo è esattamente ciò che fa il framework per il machine learning Vitis, alla base di piattaforme di ML come Caffe e TensorFlow, e che ha librerie per eseguire modelli di IA standard o per aggiungere capacità FPGA a compiti come la transcodifica 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 trasferisce i calcoli paralleli ai processori GPU, o dal set di strumenti ROCm di AMD, o dalle promesse del progetto OneAPI di Intel, che dovrebbe funzionare su varie CPU, GPU e FPGA.

La questione è solo come questi strumenti saranno collegati insieme, affinché chiunque possa programmare un insieme di capacità computazionali a proprio piacimento. Questo è importante perché le FPGA sono diventate più complesse, molto più complesse di qualsiasi CPU esistente. Sono prodotte con i processi tecnologici più avanzati e con le tecnologie di packaging dei chip più moderne. E troveranno il loro spazio, poiché non possiamo più permetterci di perdere tempo, denaro, energia e intelligenza: tutte queste sono risorse troppo preziose.

«Le FPGA offrono vantaggi tecnologici», afferma Bolzens. «E non si tratta solo di pubblicità riguardo alla loro adattabilità e riconfigurabilità. In tutte le applicazioni critiche – come il machine learning, l'analisi dei grafi, il trading ad alta velocità, ecc. – esse hanno la capacità di adattare non solo il percorso di propagazione dei dati, ma anche l'architettura della memoria: cioè, come i dati si muovono all'interno del chip. Inoltre, le FPGA hanno integrato molta più memoria rispetto ad altri dispositivi. Va anche considerato che, se un compito non può essere gestito da una singola FPGA, è possibile scalare su più chip, senza affrontare gli svantaggi che si incontrano quando si scalano i 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