Video: 010. Воссоздание ретрокомпьютеров на современной технологической базе FPGA – Александр Холодов (Novembre 2024)
Una delle tendenze più interessanti che ho visto nel server computing è l'allontanamento dalle CPU standard e verso una maggiore elaborazione su chip grafici (GPU) e processori riconfigurabili noti come array di gate programmabili sul campo (FPGA). Questo fenomeno viene spesso definito calcolo eterogeneo.
Il concetto qui non è nuovo: GPU e altri acceleratori sono stati sempre più comuni nel calcolo ad alte prestazioni (HPC) o nei supercomputer per anni. Ma ultimamente, abbiamo sentito di più su come Intel ha personalizzato alcuni pacchetti di chip server per includere FPGA oltre alla CPU tradizionale, rivolta principalmente a grandi fornitori di cloud computing iperscale che hanno algoritmi specifici che possono essere eseguiti come istruzioni hardware sugli FPGA. Questo dovrebbe essere molto più veloce di eseguirli come software nelle istruzioni più generali della CPU.
Questo è stato un fattore chiave del recente piano di Intel per l'acquisizione del produttore FPGA Altera. Brian Krzanich, CEO di Intel, ha dichiarato che prevede che fino al 30% dei carichi di lavoro cloud avrà una sorta di accelerazione FPGA entro la fine del decennio. Microsoft sta già utilizzando FPGA Altera per alimentare molti dei suoi servizi cloud come la ricerca di Bing.
Vi è stato un grosso ostacolo per la maggior parte delle aziende che utilizzano FPGA - o per questo motivo GPU - in casi di elaborazione aziendale più tipici: far funzionare il software contemporaneamente su questi chip insieme alla CPU è difficile. (Per i carichi di lavoro aziendali e persino HPC, avrai sempre bisogno di alcune CPU; in altri tipi di applicazioni, come la rete, le aziende hardware possono usare solo un FPGA.) Per il calcolo GPU, abbiamo visto cose come CUDA e Khronos di Nvidia Lo standard OpenCL del gruppo, che semplifica le cose, e abbiamo sicuramente visto molti algoritmi HPC e di apprendimento automatico utilizzare GPU. Ora anche produttori di FPGA come Altera supportano OpenCL, ma nel caso di elaborazione aziendale più generale, si è rivelato troppo difficile.
Ultimamente, ho parlato con un paio di aziende che sperano di semplificarlo.
Bitfusion è una startup che ho visto per la prima volta a TechCrunch Disrupt; la sua tecnologia ha lo scopo di farti spostare un'applicazione dalla CPU a una GPU o FPGA senza riscriverla per ogni piattaforma. Come spiegato dal CEO Subbu Rama, il pacchetto funziona ora cercando le librerie open source comuni utilizzate dagli sviluppatori di software e sostituendo le funzioni al loro interno con funzioni che possono sfruttare la GPU o FPGA. Come ha spiegato, le grandi aziende potrebbero essere in grado di riscrivere il loro codice, ma le società di fascia media non possono farlo. Le applicazioni includono elaborazione scientifica, applicazioni finanziarie come analisi del rischio e negoziazione ad alta frequenza e analisi dei dati come lavorare con i dati dei sensori di petrolio e gas.
Alla fine, ha detto che potrebbe funzionare con qualsiasi linguaggio che chiama tali librerie. Ha notato che la sostituzione delle librerie potrebbe non essere altrettanto efficace della scrittura di codice personalizzato per FPGA o GPU, ma è molto più semplice.
Bitfusion intende offrire i suoi prodotti in tre diversi modelli, come software puro per le aziende che hanno già i propri acceleratori; preinstallato sugli apparecchi; o per applicazioni distribuite nel cloud, attraverso una partnership con Rackspace. Inizialmente, questo utilizzerà gli FPGA Altera, sebbene la società affermi che potrebbe funzionare anche con altri processori. Rama afferma che i clienti iniziali lo stanno utilizzando ora, con disponibilità pubblica pianificata nei prossimi due mesi.
SRC sta adottando un approccio leggermente diverso. Dal 1999 crea "server riconfigurabili" per agenzie governative e ora sta realizzando una soluzione per data center iperscale e operazioni Web. Chiamato server Saturn 1, è una cartuccia che si collega allo chassis HP Moonshot e SRC afferma che può fornire prestazioni del computer che sono in genere 100 volte più veloci di quelle dei tradizionali design a microprocessore. (L'azienda vende anche sistemi più grandi montati su rack e full size, in genere per i suoi clienti più grandi.)
Ciò che rende questo diverso è un compilatore speciale noto come Carte, che converte il codice in un design in silicio che può essere eseguito su architettura FPGA, secondo il CEO Jon Huppenthal. Mi ha detto che SRC ha trascorso anni a creare il compilatore, inizialmente per i clienti aziendali, da quando l'azienda è stata fondata dal pioniere del supercomputer Seymour Cray e Jim Guzy negli anni '90. Una differenza nell'approccio di SRC, ha detto, è che Carte non è pensata per i sistemi generici, ma è legata in modo specifico all'architettura di SRC, che le conferisce maggiori prestazioni e coerenza. Saturn 1 utilizza due FPGA Altera, uno che esegue il codice utente; l'altro che mantiene il sistema in esecuzione rapidamente, insieme a un processore Intel. Attualmente, ha aggiunto, l'azienda è alla sua dodicesima generazione di processori riconfigurabili.
Questa è una soluzione più costosa, rivolta principalmente a centri di calcolo piuttosto grandi, ma è ancora più accessibile rispetto agli approcci precedenti.
L'idea di utilizzare FPGA o processori riconfigurabili per attività più tradizionali non è nuova. Tuttavia, ci è voluto molto tempo perché ciò diventasse persino una possibilità per i clienti più tradizionali al di fuori dei progettisti hardware o delle applicazioni militari. Questi nuovi approcci possono presumere che questa tecnologia diventi più comunemente usata, ma solo se i miglioramenti di prezzo / prestazioni si abbinano davvero alle affermazioni del fornitore e la tecnologia diventa più facile da usare. I nuovi approcci sono un passo in quella direzione.