Inevitabilitatea penetrației FPGA în centrele de date

Inevitabilitatea penetrației FPGA în centrele de date
Nu trebuie să fii dezvoltator de cipuri pentru a programa pentru FPGA, la fel cum nu trebuie să fii programator C++ pentru a scrie cod în Java. Cu toate acestea, în ambele cazuri, este probabil că acest lucru ar fi util.

Scopul comercializării ambelor tehnologii, Java și FPGA, este acela de a contrazice ultimul argument. Veștile bune pentru FPGA sunt că, utilizând niveluri adecvate de abstractizare și un set de instrumente, în ultimii 35 de ani, de când a fost inventat dispozitivul logic programabil, devine tot mai ușor să creezi algoritmi și fluxuri de date pentru FPGA în loc de CPU, DSP, GPU sau orice altă formă de ASIC specializat.

Temporalitatea uimitoare a creării lor se manifestă tocmai atunci când CPU-urile nu mai pot rămâne singurul modul de calcul. a centrelor de date pentru a îndeplini numeroase sarcini – din cele mai diverse motive – FPGA-urile au atins eficiența lor, oferind viteză, latență redusă, capacități de rețea și memorie – capacitățile computaționale diverse ale FPGA-urilor moderne SoC, care reprezintă aproape sisteme complete de calcul. Cu toate acestea, FPGA-urile se combină bine și cu alte dispozitive în sisteme hibride, și, în opinia noastră, abia își încep să-și găsească locul legitim în ierarhia calculului.

Prin urmare, am organizat conferința The Next FPGA Platform în San Jose pe 22 ianuarie. Evident, unul dintre principalii furnizori de FPGA din lume și pionier în acest domeniu este compania Xilinx. Ivo BolSense, vicepreședinte senior și CTO al Xilinx, a susținut o prezentare la conferință și ne-a împărtășit gândurile sale de astăzi despre cum Xilinx ajută la crearea de sisteme de calcul modificabile pentru centrele de date.

Arhitecții de sisteme și programatorii au investit mult timp pentru a ajunge la un centru de date eterogen, în care să fie prezente resurse computaționale de diverse tipuri, care să rezolve probleme de calcul, stocare și organizare a rețelelor. Aceasta pare a fi o necesitate, având în vedere că urmarea legii lui Moore cu ajutorul diverselor CMOS devine din ce în ce mai dificilă. Deocamdată, limbajul nostru este încă legat de CPU, și încă mai discutăm despre „accelerația aplicațiilor”, având în vedere îmbunătățirea performanței programelor în comparație cu ceea ce se poate realiza doar cu CPU-uri. Într-o bună zi, centrele de date vor evolua în seturi de resurse de calcul, stocare de date și protocoale care le leagă împreună, iar ne vom întoarce la termeni precum „calcul” și „aplicații”. Calculul hibrid va deveni la fel de normal ca serviciile „cloud” de astăzi, bazate pe tehnici obișnuite sau mașini virtuale, și într-un oarecare moment vom folosi pur și simplu cuvântul „calcul” pentru a descrie funcționarea lor. Într-o oarecare măsură – și, probabil, sosirea acestei ere va fi activ influențată de FPGA – ne vom întoarce să denumim aceasta procesarea datelor.

Pentru a integra FPGA în centrele de date, va fi necesară o schimbare de mentalitate. „Gândindu-ne la modalități de accelerare a aplicațiilor de astăzi, trebuie să ne întoarcem la fundamentele modului în care acestea sunt executate, ce resurse sunt utilizate, la ce se duce timpul”, explică Boltzens. – Este necesar să studiem problema generală pe care încercați să o rezolvați. Multe aplicații care operează în centrele de date de astăzi sunt scalabile, capturând un mare volum de resurse. Să luăm, de exemplu, învățarea automată, care utilizează un număr uriaș de noduri de calcul. Dar atunci când vorbim despre accelerare, trebuie să ne gândim nu doar la accelerarea calculului, ci și la accelerarea infrastructurii.”

De exemplu, în operațiunile legate de învățarea automată pe care le-a studiat Boltzens în practică, aproximativ 50% din timp este cheltuit pe transferul de date în ambele direcții între resursele de calcul dispersate, iar doar restul de jumătate din timp este dedicat efectiv calculului.

Cred că aici FPGA poate aduce un real ajutor, deoarece putem optimiza atât aspectele de calcul, cât și cele de transfer de date pentru aplicație. Putem face acest lucru atât la nivelul infrastructurii generale, cât și la nivelul cipului. Aceasta este una dintre marile avantaje ale FPGA, permițând crearea de rețele de comunicație adaptate nevoilor specifice ale aplicației. Observând tiparele tipice de mișcare a datelor în sarcini legate de inteligența artificială, nu văd necesitatea unei arhitecturi complexe bazate pe comutatoare. Se poate construi o rețea cu un volum mare de date. Același lucru este valabil și pentru sarcinile de învățare a rețelelor neuronale – se poate construi o rețea celulară cu dimensiuni ale pachetelor adaptate la sarcina specifică. Folosind FPGA, se pot scala și adapta cu precizie protocoalele de transfer de date și topologia circuitului pentru aplicația specifică. Și în cazul învățării automate, este de asemenea evident că nu avem nevoie de numere în virgulă mobilă de precizie dublă, iar aceasta poate fi adaptată și ea.

Diferența dintre FPGA și CPU sau ASIC-uri specializate este că ultimele sunt programate în timpul producției, iar după aceea nu mai poți răzgândi tipurile de date calculate sau elementele calculate, sau natura fluxului de date care trece prin dispozitiv. FPGA-urile îți permit să te răzgândești dacă condițiile de operare se schimbă.

În trecut, acest avantaj era costisitor, când programarea pentru FPGA era destinată doar celor puternici. Este necesar să deschizi compilatoarele pentru FPGA, astfel încât acestea să se integreze mai bine cu instrumentele utilizate de programatori pentru a crea aplicații cu calcul paralel pentru CPU în limbaje precum C, C++ sau Python, și să delegi parte din muncă bibliotecilor care accelerează procedurile pe FPGA. Aceasta este ceea ce face stack-ul pentru învățarea automată Vitis, care stă la baza unor platforme pentru MA, precum Caffe și TensorFlow, și are biblioteci pentru a rula modelele AI obișnuite sau pentru a adăuga capacități FPGA la sarcini precum transcodarea video, recunoașterea obiectelor în video, analiza datelor, gestionarea riscurilor financiare și orice biblioteci externe.

Această conceptie nu se deosebește prea mult de proiectul CUDA de la Nvidia, lansat acum zece ani, care a delegat calculul paralel pe acceleratoarele GPU, sau de setul de instrumente ROCm de la AMD, sau de promisiunile proiectului Intel, OneAPI, care ar trebui să funcționeze pe diferite CPU, GPU și FPGA.

Întrebarea este doar cum toate aceste instrumente vor fi corelate astfel încât oricine să poată programa un set de capacități de calcul după bunul plac. Acest lucru este important deoarece FPGA-urile au devenit mai complicate, mult mai complicate decât oricare dintre CPU-urile existente. Ele sunt fabricate cu cele mai avansate procese tehnologice și utilizând cele mai moderne tehnologii de ambalare a chipurilor. Și își vor găsi nișa, deoarece nu mai putem pierde timp, bani, energie și inteligență – toate acestea fiind resurse prea costisitoare.

„FPGA oferă avantaje tehnologice”, spune Bolsens. „Și nu este doar o reclamă obișnuită despre adaptabilitate și reconfigurabilitate. În toate aplicațiile importante – învățare automată, analiză de grafuri, trading de înaltă viteză etc. – au capacitatea de a adapta nu doar calea de propagare a datelor, ci și arhitectura memoriei – modul în care datele se mută în cadrul chipului. De asemenea, FPGA-urile au mult mai multă memorie integrată decât alte dispozitive. Trebuie, de asemenea, să luăm în considerare că, dacă sarcina nu încapă într-un singur FPGA, aceasta poate fi scalată pe mai multe chipuri, fără a întâmpina acele dezavantaje care vă așteaptă atunci când scalati sarcinile pe mai multe CPU-uri sau GPU-uri.”

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster