FPGA andmekeskustesse tungimise vältimatus

FPGA andmekeskustesse tungimise vältimatus
FPGA-de jaoks programmeerimiseks ei pea te olema kiibidisainer, nagu ka Java koodi kirjutamiseks ei pea te olema C++ programmeerija. Kuid mõlemal juhul pole see tõenäoliselt üleliigne.

Mõlema tehnoloogia, Java ja FPGA kommertsialiseerimise eesmärk on kummutada viimane väide. Hea uudis FPGA-de jaoks on see, et õigete abstraktsioonikihtide ja tööriistakomplektiga on viimase 35 aasta jooksul, alates programmeeritava loogikaseadme leiutamisest, muutunud üha tavalisemaks algoritmide ja andmevoogude loomine FPGA-de jaoks CPU-de, DSP-de ja GPU-de asemel. või mis tahes muud kohandatud ASIC-i vormid.

Nende loomise üllatavat õigeaegsust näitab tõsiasi, et just siis, kui protsessor ei saanud enam olla ainuke arvutusmoodul andmekeskustes paljude ülesannete täitmiseks – erinevatel põhjustel – saavutasid FPGA-d oma tõhususe, pakkudes kiirust, madalat latentsust ja võrguühendust. võimalused ja mälu – tänapäevaste FPGA SoC-de, mis on peaaegu terviklikud arvutussüsteemid, heterogeensed arvutusvõimalused. FPGA-sid kombineeritakse aga hübriidsüsteemides edukalt ka teiste seadmetega ning meie hinnangul on need alles leidmas oma õiget kohta arvutustehnika hierarhias.

Seetõttu korraldasime 22. jaanuaril San Joses konverentsi The Next FPGA Platform. Loomulikult on Xilinx üks peamisi FPGA tarnijaid maailmas ja teerajaja selles valdkonnas. Xilinxi vanemasepresident ja CTO Ivo Bolsens pidas konverentsil peaettekande ja jagas meiega täna oma mõtteid selle kohta, kuidas Xilinx aitab luua skaleeritavat andmekeskuse andmetöötlust.

Süsteemiarhitektidel ja programmeerijatel kulus piisavalt aega, et leida heterogeenne andmekeskus, millel on mitmesugused arvutusvõimsused, mis lahendavad arvutus-, salvestus- ja võrguülesandeid. See näib olevat vajalik, kuna Moore'i seadust on erinevate CMOS-ide abil üha raskem järgida. Praegu on meie keel endiselt CPU-ga seotud ja me räägime endiselt "rakenduse kiirendusest", mis tähendab, et programmid töötavad paremini kui need, mida saab teha ainult CPU-ga. Mõne aja pärast muutuvad andmekeskused arvutusvõimsuse, andmesalvestuse ja protokollide kogumiks, mis seovad kõik omavahel, ning me pöördume tagasi selliste mõistete juurde nagu "arvutamine" ja "rakendused". Hübriidarvutus muutub sama normaalseks kui tänapäeva tava- või virtuaalmasinatel töötavad "pilve"teenused ja mingil hetkel hakkame nende toimimise kirjeldamiseks kasutama lihtsalt sõna "arvuti". Mingil hetkel – ja FPGA-d annavad sellele ajastule ilmselt aktiivselt kaasa – hakkame seda taas nimetama andmetöötluseks.

FPGA-de rakendamine andmekeskustes nõuab mõtteviisi muutmist. "Tänapäeva rakenduste kiirendamise viisidele mõtlemine on nende tööpõhimõtte, ressursside kasutamise ja aja võtmise kohta," selgitab Bolsens. Peate uurima üldist probleemi, mida proovite lahendada. Paljud praegu andmekeskustes töötavad rakendused suurenevad ja võtavad palju ressursse. Võtame näiteks masinõppe, mis kasutab tohutul hulgal andmetöötlussõlmi. Aga kiirendusest rääkides ei pea mõtlema ainult andmetöötluse kiirendamisele, vaid ka infrastruktuuri kiirendamisele.

Näiteks masinõppe operatsioonide puhul, mida Bolsens praktikas uuris, kulub umbes 50% ajast andmete edasi-tagasi edastamiseks hajutatud arvutusseadmete vahel ja ainult ülejäänud pool ajast kulub tegelikele arvutustele.

"Ma arvan, et siin saab FPGA aidata, kuna saame tagada, et nii rakenduse arvutuslikud kui ka sideaspektid on optimeeritud. Ja me saame seda teha üldisel infrastruktuuri tasemel ja kiibi tasemel. See on FPGA-de üks suuri eeliseid, mis võimaldab teil luua sidevõrke konkreetsete rakenduste vajaduste jaoks. Jälgides tehisintellekti tööga seotud ülesannetes tüüpilisi andmete liikumise mustreid, ei näe ma vajadust keeruka lülititel põhineva arhitektuuri järele. Saate luua suure andmevooga võrgu. Sama kehtib ka närvivõrkude treenimise ülesannete kohta – saab ehitada võrgusilma, mille paketisuurused kohanduvad konkreetse ülesandega. FPGA-de abil saate väga täpselt skaleerida ja peenhäälestada konkreetse rakenduse sideprotokolle ja vooluahela topoloogiat. Ja masinõppe puhul on ka selge, et me ei vaja topelttäpsusega ujukoma numbreid ja saame ka seda kohandada.

FPGA ja CPU või kohandatud ASIC erinevus seisneb selles, et viimased on tehases programmeeritud ja pärast seda ei saa te ümber mõelda arvutatud andmete või arvutatud elementide tüüpide või toimuva andmevoo olemuse osas. seadme kaudu. FPGA-d võimaldavad teil oma meelt muuta, kui töötingimused muutuvad.

Varem tuli selle eelise eest maksta, kui FPGA programmeerimine ei olnud nõrganärvilistele. FPGA kompilaatorid tuleb avada, et need integreeruksid paremini tööriistadega, mida programmeerijad kasutavad C-, C++ või Pythoni protsessoritele paralleelsete andmetöötlusrakenduste loomiseks, ning pühendada osa tööst teekidele, mis kiirendavad FPGA-de protseduure. Just see on Vitise masinõppepinn ML-i raamistike, nagu Caffe ja TensorFlow, keskmes, koos raamatukogudega tavaliste AI-mudelite käitamiseks või FPGA-võimaluste lisamiseks sellistele ülesannetele nagu video ümberkodeerimine, videoobjektide tuvastamine ja andmete analüüs. , finantsriskide haldamine ja kõik muud kolmandate osapoolte raamatukogud.

See kontseptsioon ei erine palju Nvidia CUDA projektist, mis sai alguse kümme aastat tagasi ja nihutas paralleelarvutuse GPU kiirenditele või AMD ROCm tööriistakomplektile või Inteli OneAPI projekt lubab töötada erinevatel protsessoritel, GPU-del ja FPGA-l.

Ainus küsimus on selles, kuidas kõik need tööriistad omavahel ühendatakse, et iga inimene saaks programmeerida arvutusvõimsusi oma äranägemise järgi. See on oluline, kuna FPGA-d on muutunud keerukamaks, palju keerulisemaks kui ükski saadaolev protsessor. Need on toodetud kõige arenenumate tootmisprotsessidega ja kasutades kõige kaasaegsemaid kiibipakendamise tehnoloogiaid. Ja nad leiavad oma niši, sest me ei saa enam raisata aega, raha, energiat ja mõistust – kõik need on liiga kallid ressursid.

"FPGA pakub tehnoloogilisi eeliseid, " ütleb Bolsens. "Ja see pole lihtsalt tavaline kohanemis- ja ümberkonfigureeritavuse reklaam. Kõikides olulistes rakendustes – masinõpe, graafikute analüüs, kiire kauplemine jne. - neil on võime kohaneda konkreetse ülesandega mitte ainult andmete levitamise tee, vaid ka mälu arhitektuur - kuidas andmed kiibis liiguvad. Samuti on FPGA-del palju rohkem mälu sisse ehitatud kui teistel seadmetel. Samuti peaksite arvestama, et kui ülesanne ei mahu ühte FPGA-sse, saate selle skaleerida mitmele kiibile, ilma et peaksite silmitsi seisma puudustega, mis teid ootavad ülesannete skaleerimisel mitmele protsessorile või GPU-le.

Allikas: www.habr.com

Lisa kommentaar