Uunngåeligheten av FPGA-penetrasjon i datasentre

Uunngåeligheten av FPGA-penetrasjon i datasentre
Du trenger ikke være en brikkedesigner for å programmere for FPGA-er, akkurat som du ikke trenger å være en C++-programmerer for å skrive kode i Java. Imidlertid vil det trolig være nyttig i begge tilfeller.

Målet med å kommersialisere både Java- og FPGA-teknologier er å motbevise sistnevnte påstand. Gode ​​nyheter for FPGA-er - ved å bruke de riktige abstraksjonslagene og verktøysettet, i løpet av de siste 35 årene siden oppfinnelsen av den programmerbare logiske enheten, har skapt algoritmer og dataflyter for FPGA-er i stedet for CPU-er, DSP-er, GPU-er eller noen annen form for tilpassede ASIC-er blitt stadig mer vanlig. enklere.

Den utrolige aktualiteten til opprettelsen deres er tydelig i det faktum at akkurat da CPU-er ikke lenger kunne forbli den eneste databehandlingsmodulen til datasentre for å utføre mange oppgaver - av en rekke årsaker - oppnådde FPGA-er sin effektivitet, og ga hastighet, lav latenstid og nettverksmuligheter og minne - heterogene databehandlingsevner til moderne FPGA SoCs, som er nesten fullverdige datasystemer. Imidlertid er FPGA-er også vellykket kombinert med andre enheter i hybridsystemer, og etter vår mening begynner de akkurat å finne sin rettmessige plass i datahierarkiet.

Derfor arrangerte vi The Next FPGA Platform-konferansen i San Jose 22. januar. Naturligvis er Xilinx en av de viktigste FPGA-leverandørene i verden og en pioner på dette området. Ivo Bolsens, senior visepresident og teknologisjef i Xilinx, talte på konferansen og ga oss sine tanker i dag om hvordan Xilinx er med på å skape foranderlige datasystemer for datasentre.

Det tok systemarkitekter og programmerere mye tid å komme opp med et heterogent datasenter, som vil inneholde ulike typer datakraft som løser problemer innen databehandling, lagring og nettverk. Dette synes nødvendig på grunn av det faktum at det blir stadig vanskeligere å følge Moores lov ved å bruke ulike CMOS-enheter. Foreløpig er språket vårt fortsatt CPU-sentrisk, og vi snakker fortsatt om "applikasjonsakselerasjon", noe som betyr å få programmer til å kjøre bedre enn det som kan gjøres på CPUer alene. Over tid vil datasentre bli samlinger av datakraft, datalagring og protokoller som binder alt sammen, og vi vil gå tilbake til termer som «databehandling» og «applikasjoner». Hybrid databehandling vil bli like vanlig som dagens skytjenester som kjører på stasjonære eller virtuelle maskiner, og på et tidspunkt vil vi ganske enkelt bruke ordet «databehandling» for å beskrive hvordan de fungerer. På et tidspunkt – og det er sannsynlig at FPGAer vil bidra til å innlede denne epoken – vil vi kalle det databehandling igjen.

Å ta i bruk FPGA-er i datasentre vil kreve en endring i tankesett. "Når du tenker på måter å øke hastigheten på dagens applikasjoner, må du gå ned til det grunnleggende om hvordan de kjører, hvilke ressurser som brukes, hvor tiden brukes," forklarer Bolsens. – Du må studere det generelle problemet du prøver å løse. Mange applikasjoner som kjører i datasentre i dag skaleres til å forbruke store mengder ressurser. Ta for eksempel maskinlæring, som bruker et stort antall databehandlingsnoder. Men når vi snakker om akselerasjon, må vi ikke bare tenke på å øke hastigheten på databehandlingen, men også på å få fart på infrastrukturen."

For eksempel, i den typen maskinlæringsoperasjoner som Bolsens studerte i praksis, brukes omtrent 50 % av tiden på å overføre data frem og tilbake mellom spredt datakraft, og bare den resterende halvparten av tiden brukes på selve beregningene.

"Det er her jeg tror FPGA kan hjelpe, fordi vi kan sikre at både beregnings- og kommunikasjonsaspektene ved applikasjonen er optimalisert. Og vi kan gjøre dette på overordnet infrastrukturnivå, og på brikkenivå. Dette er en av de store fordelene med FPGAer, som lar deg lage kommunikasjonsnettverk for spesifikke applikasjonsbehov. Basert på typiske mønstre for databevegelse i AI-arbeidsbelastninger, ser jeg ikke behovet for en kompleks svitsjbasert arkitektur. Du kan bygge et nettverk med stor dataflyt. Det samme gjelder opplæringsoppgaver for nevrale nettverk – du kan bygge et mesh-nettverk med pakkestørrelser som tilpasser seg en spesifikk oppgave. Ved å bruke en FPGA kan dataoverføringsprotokoller og kretstopologier skaleres veldig nøyaktig og skreddersys til en spesifikk applikasjon. Og når det gjelder maskinlæring, er det også klart at vi ikke trenger dobbeltpresisjons flyttall, og vi kan justere det også.»

Forskjellen mellom en FPGA og en CPU eller tilpasset ASIC er at sistnevnte er programmert på fabrikken, og etter det kan du ikke lenger ombestemme deg om typen data som beregnes eller elementene som beregnes, eller om arten av dataflyt gjennom enheten. FPGA-er lar deg ombestemme deg hvis driftsforholdene endres.

Tidligere kom denne fordelen til en kostnad, da FPGA-programmering ikke var for sarte sjeler. Behovet er å åpne opp FPGA-kompilatorer for bedre integrering med verktøyene programmerere bruker for å skrive CPU-parallelle applikasjoner i C, C++ eller Python, og å sette ut noe av arbeidet til biblioteker som fremskynder prosedyrer på FPGA-er. Dette er hva Vitis maskinlæringsstabel gjør, og driver ML-plattformer som Caffe og TensorFlow, med biblioteker for å kjøre konvensjonelle AI-modeller eller legge til FPGA-funksjoner til oppgaver som videotranskoding, videoobjektgjenkjenning og dataanalyse. , finansiell risikostyring og enhver tredjedel. -partibiblioteker.

Dette konseptet er ikke mye forskjellig fra Nvidias CUDA-prosjekt, lansert for et tiår siden, som laster av parallell databehandling til GPU-akseleratorer, eller fra AMDs ROCm-verktøysett, eller fra løftet om Intels OneAPI-prosjekt, som skal kjøre på forskjellige CPUer, GPUer og FPGA.

Det eneste spørsmålet er hvordan alle disse verktøyene skal kobles sammen slik at enhver person kan programmere et sett med datakraft etter eget skjønn. Dette er viktig fordi FPGA-er har blitt mer komplekse, mye mer komplekse enn noen av de tilgjengelige CPUene. De produseres ved hjelp av de mest avanserte produksjonsprosessene og de mest moderne brikkepakketeknologiene. Og de vil finne sin nisje, siden vi ikke lenger kan kaste bort tid, penger, energi og intelligens - alt dette er for dyre ressurser.

"FPGAer tilbyr teknologiske fordeler," sier Bolsens. – Og dette er ikke bare den vanlige reklamen om tilpasningsevne og rekonfigurerbarhet. I alle viktige applikasjoner - maskinlæring, grafanalyse, høyhastighetshandel, etc. - de har evnen til å tilpasse seg en spesifikk oppgave, ikke bare datadistribusjonsbanen, men også minnearkitekturen - hvordan data beveger seg i brikken. FPGA-er har også mye mer minne innebygd enn andre enheter. Det bør også tas i betraktning at hvis en oppgave ikke passer inn i én FPGA, kan du skalere den over flere brikker uten å møte ulempene som venter på deg når du skalerer oppgaver på tvers av flere CPUer eller GPUer.»

Kilde: www.habr.com

Legg til en kommentar