Inevitabilitatea pătrunderii FPGA în centrele de date

Inevitabilitatea pătrunderii FPGA în centrele de date
Nu trebuie să fii un designer de cipuri pentru a programa pentru FPGA, la fel cum nu trebuie să fii un programator C++ pentru a scrie cod în Java. Cu toate acestea, în ambele cazuri va fi probabil util.

Scopul comercializării atât a tehnologiilor Java, cât și a FPGA este de a respinge această din urmă afirmație. Vești bune pentru FPGA - folosind straturile de abstractizare și setul de instrumente potrivite, în ultimii 35 de ani de la inventarea dispozitivului logic programabil, crearea de algoritmi și fluxuri de date pentru FPGA-uri în loc de CPU-uri, DSP-uri, GPU-uri sau orice altă formă de ASIC-uri personalizate a devenit din ce în ce mai ușoară.

Momentul uimitor al creării lor este evident în faptul că exact atunci când procesoarele nu mai puteau rămâne singurul modul de calcul centre de date Pentru o varietate de sarcini – din diverse motive – FPGA-urile și-au atins eficiența oferind performanțe ridicate, latență redusă, conectivitate la rețea și memorie – capacitățile de calcul diverse ale SoC-urilor FPGA moderne, care sunt practic sisteme de calcul complete. Cu toate acestea, FPGA-urile se combină cu succes și cu alte dispozitive în sisteme hibride și, în opinia noastră, abia încep să-și găsească locul cuvenit în ierarhia de calcul.

De aceea am organizat conferința The Next FPGA Platform în San Jose pe 22 ianuarie. Desigur, unul dintre principalii furnizori de FPGA din lume și un pionier în acest domeniu este Xilinx. Ivo Bolsens, vicepreședinte senior și director de tehnologie la Xilinx, a vorbit la conferință și ne-a spus astăzi părerile sale despre modul în care Xilinx ajută la crearea sistemelor de calcul modificabile pentru centrele de date.

Arhitecților de sistem și programatorilor le-a luat ceva timp să ajungă la un centru de date eterogen, unul care să găzduiască diferite tipuri de putere de calcul, gestionând sarcini de calcul, stocare și rețea. Acest lucru pare necesar deoarece respectarea Legii lui Moore folosind diferite cipuri CMOS devine din ce în ce mai dificilă. Deocamdată, limbajul nostru este încă centrat pe procesor și încă vorbim despre „accelerarea aplicațiilor”, ceea ce înseamnă că programele rulează mai bine decât ceea ce se poate face doar pe un procesor. În cele din urmă, centrele de date vor deveni colecții de putere de calcul, stocare și protocoalele care leagă totul împreună și vom reveni la termeni precum „calcul” și „aplicații”. Calculul hibrid va deveni la fel de normal ca serviciile cloud de astăzi, care rulează pe servere tradiționale sau... mașini virtuale...și, la un moment dat, vom folosi pur și simplu cuvântul „informatică” pentru a descrie munca lor. La un moment dat - și FPGA-urile vor fi probabil esențiale în deschiderea acestei ere - o vom numi din nou procesare de date.

Adoptarea FPGA-urilor în centrele de date va necesita o schimbare a mentalității. „Când vă gândiți la modalități de a accelera aplicațiile de astăzi, trebuie să ajungeți la elementele de bază ale modului în care funcționează, ce resurse sunt folosite, unde se petrece timpul”, explică Bolsens. – Trebuie să studiați problema generală pe care încercați să o rezolvați. Multe aplicații care rulează astăzi în centrele de date se extind pentru a consuma cantități mari de resurse. Luați învățarea automată, de exemplu, care utilizează un număr mare de noduri de calcul. Dar când vorbim despre accelerare, trebuie să ne gândim nu numai la accelerarea calculului, ci și la accelerarea infrastructurii.”

De exemplu, în genul de operațiuni de învățare automată pe care Bolsens le-a studiat în practică, aproximativ 50% din timp este petrecut transferând date înainte și înapoi între puterea de calcul dispersată și doar jumătatea rămasă din timp este cheltuită cu calculele în sine.

„Aici cred că FPGA poate ajuta, deoarece ne putem asigura că atât aspectele computaționale, cât și cele de comunicare ale aplicației sunt optimizate. Și putem face acest lucru la nivel general de infrastructură și la nivel de cip. Acesta este unul dintre marile avantaje ale FPGA-urilor, permițându-vă să creați rețele de comunicații pentru nevoi specifice aplicației. Pe baza tiparelor tipice de mișcare a datelor în sarcinile de lucru AI, nu văd nevoia unei arhitecturi complexe bazate pe comutatoare. Puteți construi o rețea cu un flux mare de date. Același lucru este valabil și pentru sarcinile de formare a rețelei neuronale - puteți construi o rețea mesh cu dimensiuni de pachete care se adaptează la o anumită sarcină. Folosind un FPGA, protocoalele de transfer de date și topologiile de circuite pot fi scalate foarte precis și adaptate unei aplicații specifice. Și în cazul învățării automate, este, de asemenea, clar că nu avem nevoie de numere cu virgulă mobilă cu precizie dublă și putem ajusta și asta.”

Diferența dintre un FPGA și un CPU sau ASIC personalizat este că acestea din urmă sunt programate din fabrică, iar după aceea nu vă mai puteți răzgândi cu privire la tipurile de date care se calculează sau elementele care se calculează sau despre natura datelor. curge prin dispozitiv. FPGA-urile vă permit să vă răzgândiți dacă condițiile de operare se schimbă.

În trecut, acest avantaj avea un cost, când programarea FPGA nu era pentru cei slabi de inimă. Necesitatea este de a deschide compilatoare FPGA pentru a se integra mai bine cu instrumentele pe care programatorii le folosesc pentru a scrie aplicații paralele cu CPU în C, C++ sau Python și pentru a externaliza o parte din muncă către biblioteci care accelerează procedurile pe FPGA. Acesta este ceea ce face stiva de învățare automată Vitis, alimentând platforme ML precum Caffe și TensorFlow, cu biblioteci pentru rularea modelelor AI convenționale sau adăugând capabilități FPGA la sarcini precum transcodarea video, recunoașterea obiectelor video și analiza datelor, managementul riscului financiar și orice terț -biblioteci de petrecere.

Acest concept nu este cu mult diferit de proiectul CUDA al Nvidia, lansat în urmă cu un deceniu, care descarcă calculul paralel pe acceleratoarele GPU, sau din setul de instrumente ROCm al AMD, sau de promisiunea proiectului Intel OneAPI, care ar trebui să ruleze pe diferite procesoare, GPU și FPGA.

Singura întrebare este cum vor fi conectate toate aceste instrumente împreună, astfel încât orice persoană să poată programa un set de puteri de calcul la discreția sa. Acest lucru este important deoarece FPGA-urile au devenit mai complexe, mult mai complexe decât oricare dintre procesoarele disponibile. Sunt fabricate folosind cele mai avansate procese de fabricație și cele mai moderne tehnologii de ambalare a așchiilor. Și își vor găsi nișa, deoarece nu mai putem pierde timp, bani, energie și inteligență - toate acestea sunt resurse prea scumpe.

„FPGA-urile oferă avantaje tehnologice”, spune Bolsens. – Și aceasta nu este doar publicitatea obișnuită despre adaptabilitate și reconfigurabilitate. În toate aplicațiile importante - învățare automată, analiză grafică, tranzacționare de mare viteză etc. - au capacitatea de a se adapta la o anumită sarcină nu numai calea de distribuție a datelor, ci și arhitectura memoriei - cum se mișcă datele în interiorul cipului. FPGA-urile au, de asemenea, mult mai multă memorie încorporată decât alte dispozitive. De asemenea, trebuie luat în considerare faptul că, dacă o sarcină nu se potrivește într-un singur FPGA, o puteți scala pe mai multe cipuri fără a întâmpina dezavantajele care vă așteaptă atunci când scalați sarcini pe mai multe procesoare sau GPU-uri.”

Sursa: www.habr.com

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster