Uundgåeligheden af ​​FPGA-penetration i datacentre

Uundgåeligheden af ​​FPGA-penetration i datacentre
Du behøver ikke at være chipdesigner for at programmere til FPGA'er, ligesom du ikke behøver at være C++ programmør for at skrive kode i Java. Men i begge tilfælde vil det sandsynligvis være nyttigt.

Målet med at kommercialisere både Java- og FPGA-teknologier er at modbevise sidstnævnte påstand. Gode ​​nyheder for FPGA'er - ved at bruge de rigtige abstraktionslag og værktøjssæt er det i de sidste 35 år siden opfindelsen af ​​den programmerbare logiske enhed blevet til at skabe algoritmer og datastrømme til FPGA'er i stedet for CPU'er, DSP'er, GPU'er eller enhver anden form for tilpassede ASIC'er. mere og mere almindeligt lettere.

Den fantastiske aktualitet af deres skabelse er tydelig i det faktum, at netop da CPU'er ikke længere kunne forblive det eneste computermodul i datacentre til at udføre mange opgaver - af forskellige årsager - opnåede FPGA'er deres effektivitet, og tilbyder hastighed, lav latenstid, netværkskapacitet og hukommelse - heterogene computeregenskaber i moderne FPGA SoC'er, som er næsten fuldgyldige computersystemer. Imidlertid er FPGA'er også med succes kombineret med andre enheder i hybridsystemer, og efter vores mening er de lige begyndt at finde deres retmæssige plads i computerhierarkiet.

Det er derfor, vi arrangerede The Next FPGA Platform-konference i San Jose den 22. januar. En af de vigtigste FPGA-leverandører i verden og en pioner på dette område er naturligvis Xilinx. Ivo Bolsens, senior vice president og chief technology officer hos Xilinx, talte på konferencen og gav os sine tanker i dag om, hvordan Xilinx er med til at skabe foranderlige computersystemer til datacentre.

Det tog systemarkitekter og programmører meget tid at komme op med et heterogent datacenter, som vil indeholde forskellige typer computerkraft, der løser problemer inden for computing, lagring og netværk. Dette synes nødvendigt på grund af det faktum, at det bliver stadig sværere at følge Moores lov ved hjælp af forskellige CMOS-enheder. Indtil videre er vores sprog stadig CPU-centreret, og vi taler stadig om "applikationsacceleration", hvilket betyder at få programmer til at køre bedre, end hvad der kan gøres på CPU'er alene. Over tid vil datacentre blive til samlinger af computerkraft, datalagring og protokoller, der binder alt sammen, og vi vil vende tilbage til udtryk som "computere" og "applikationer". Hybrid computing vil blive lige så normal som nutidens cloud-tjenester, der kører på desktop eller virtuelle maskiner, og på et tidspunkt vil vi simpelthen bruge ordet "computing" til at beskrive, hvordan de fungerer. På et tidspunkt - og det er sandsynligt, at FPGA'er vil hjælpe med at indvarsle denne æra - vil vi kalde det databehandling igen.

At vedtage FPGA'er i datacentre vil kræve en ændring i tankegangen. "Når man tænker på måder at fremskynde nutidens applikationer på, er man nødt til at komme ned til det grundlæggende i, hvordan de kører, hvilke ressourcer der bruges, hvor tiden bruges," forklarer Bolsens. – Du skal studere det generelle problem, som du forsøger at løse. Mange applikationer, der kører i datacentre i dag, skaleres til at forbruge store mængder ressourcer. Tag for eksempel maskinlæring, som bruger et stort antal computerknudepunkter. Men når vi taler om acceleration, skal vi ikke kun tænke på at fremskynde databehandlingen, men også på at fremskynde infrastrukturen."

For eksempel, i den slags maskinlæringsoperationer, som Bolsens studerede i praksis, bruges cirka 50 % af tiden på at overføre data frem og tilbage mellem spredt computerkraft, og kun den resterende halvdel af tiden bruges på selve beregningerne.

”Det er her, jeg tror, ​​at FPGA kan hjælpe, fordi vi kan sikre, at både de beregningsmæssige og kommunikationsmæssige aspekter af applikationen er optimeret. Og det kan vi gøre på det overordnede infrastrukturniveau og på chipniveau. Dette er en af ​​de store fordele ved FPGA'er, som giver dig mulighed for at skabe kommunikationsnetværk til specifikke applikationsbehov. Baseret på typiske mønstre for databevægelse i AI-arbejdsbelastninger, ser jeg ikke behovet for en kompleks switch-baseret arkitektur. Du kan bygge et netværk med et stort dataflow. Det samme gælder for træningsopgaver i neurale netværk – du kan bygge et mesh-netværk med pakkestørrelser, der tilpasser sig en specifik opgave. Ved at bruge en FPGA kan dataoverførselsprotokoller og kredsløbstopologier skaleres meget præcist og skræddersyes til en specifik applikation. Og i tilfælde af maskinlæring er det også klart, at vi ikke har brug for dobbeltpræcision flydende decimaltal, og det kan vi også justere."

Forskellen mellem en FPGA og en CPU eller brugerdefineret ASIC er, at sidstnævnte er programmeret på fabrikken, og derefter kan du ikke længere ændre mening om de typer data, der beregnes eller elementer, der beregnes, eller om arten af ​​dataene strømme gennem enheden. FPGA'er giver dig mulighed for at ombestemme dig, hvis driftsforholdene ændrer sig.

Tidligere kostede denne fordel en omkostning, hvor FPGA-programmering ikke var for sarte sjæle. Behovet er at åbne op for FPGA-kompilere for bedre at kunne integreres med de værktøjer, programmører bruger til at skrive CPU-parallelle applikationer i C, C++ eller Python, og at outsource noget af arbejdet til biblioteker, der fremskynder procedurer på FPGA'er. Dette er, hvad Vitis maskinlæringsstakken gør, der driver ML-platforme som Caffe og TensorFlow med biblioteker til at køre konventionelle AI-modeller eller tilføje FPGA-funktioner til opgaver som videotranskodning, videoobjektgenkendelse og dataanalyse. , finansiel risikostyring og enhver tredje -partibiblioteker.

Dette koncept adskiller sig ikke meget fra Nvidias CUDA-projekt, der blev lanceret for et årti siden, som aflaster parallel computing til GPU-acceleratorer, eller fra AMDs ROCm-værktøjssæt, eller fra løftet om Intels OneAPI-projekt, som skulle køre på forskellige CPU'er, GPU'er og FPGA.

Det eneste spørgsmål er, hvordan alle disse værktøjer vil blive forbundet sammen, så enhver person kan programmere et sæt computerkræfter efter eget skøn. Dette er vigtigt, fordi FPGA'er er blevet mere komplekse, meget mere komplekse end nogen af ​​de tilgængelige CPU'er. De er fremstillet ved hjælp af de mest avancerede fremstillingsprocesser og de mest moderne chippakningsteknologier. Og de vil finde deres niche, da vi ikke længere kan spilde tid, penge, energi og intelligens - alt dette er for dyre ressourcer.

"FPGA'er tilbyder teknologiske fordele," siger Bolsens. – Og det er ikke kun den sædvanlige reklame om tilpasningsevne og rekonfigurerbarhed. I alle vigtige applikationer - maskinlæring, grafanalyse, højhastighedshandel osv. - de har evnen til at tilpasse sig til en specifik opgave, ikke kun datadistributionsstien, men også hukommelsesarkitekturen - hvordan data bevæger sig inden i chippen. FPGA'er har også meget mere hukommelse indbygget i dem end andre enheder. Det skal også tages i betragtning, at hvis en opgave ikke passer ind i én FPGA, kan du skalere den på tværs af flere chips uden at støde på de ulemper, der venter dig, når du skalerer opgaver på tværs af flere CPU'er eller GPU'er."

Kilde: www.habr.com

Tilføj en kommentar