Det oundvikliga med FPGA-penetration i datacenter

Det oundvikliga med FPGA-penetration i datacenter
Du behöver inte vara en chipdesigner för att programmera för FPGA, precis som du inte behöver vara en C++-programmerare för att skriva kod i Java. Men i båda fallen kommer det förmodligen att vara användbart.

Målet med att kommersialisera både Java- och FPGA-teknik är att motbevisa det senare påståendet. Goda nyheter för FPGA:er – med hjälp av rätt abstraktionslager och verktygsuppsättning, under de senaste 35 åren sedan uppfinningen av den programmerbara logiska enheten, har skapat algoritmer och dataflöden för FPGA:er istället för CPU:er, DSP:er, GPU:er eller någon annan form av anpassade ASIC:er. allt vanligare. lättare.

Den fantastiska aktualiteten i deras skapelse är uppenbar i det faktum att just när processorer inte längre kunde förbli den enda datormodulen i datacenter för att utföra många uppgifter - av olika anledningar - uppnådde FPGA:er sin effektivitet, erbjuder hastighet, låg latens, nätverkskapacitet och minne - heterogena beräkningsmöjligheter hos moderna FPGA SoCs, som är nästan fullfjädrade datorsystem. Men FPGA:er kombineras också framgångsrikt med andra enheter i hybridsystem, och enligt vår mening har de precis börjat hitta sin rättmätiga plats i datorhierarkin.

Det var därför vi anordnade The Next FPGA Platform-konferens i San Jose den 22 januari. Naturligtvis är Xilinx en av de största FPGA-leverantörerna i världen och en pionjär inom detta område. Ivo Bolsens, senior vice president och chief technology officer på Xilinx, talade på konferensen och gav oss sina tankar idag om hur Xilinx hjälper till att skapa föränderliga datorsystem för datacenter.

Det tog mycket tid för systemarkitekter och programmerare att komma fram till ett heterogent datacenter, som kommer att innehålla olika typer av datorkraft som löser problem inom datoranvändning, lagring och nätverk. Detta verkar nödvändigt på grund av det faktum att det blir allt svårare att följa Moores lag med hjälp av olika CMOS-enheter. För närvarande är vårt språk fortfarande CPU-centrerat, och vi pratar fortfarande om "applikationsacceleration", vilket innebär att program körs bättre än vad som kan göras på enbart CPU:er. Med tiden kommer datacenter att bli samlingar av datorkraft, datalagring och protokoll som binder ihop allt, och vi kommer att återgå till termer som "datorer" och "applikationer." Hybridberäkningar kommer att bli lika normala som dagens molntjänster som körs på stationära eller virtuella maskiner, och någon gång kommer vi helt enkelt att använda ordet "beräkning" för att beskriva hur de fungerar. Vid någon tidpunkt – och det är troligt att FPGA:er kommer att hjälpa till att inleda denna era – kommer vi att kalla det för databehandling igen.

Att anta FPGA:er i datacenter kommer att kräva en förändring i tankesättet. "När du funderar på sätt att snabba upp dagens applikationer måste du gå ner till grunderna för hur de fungerar, vilka resurser som används, var tid spenderas", förklarar Bolsens. – Du måste studera det allmänna problem som du försöker lösa. Många applikationer som körs i datacenter idag skalas för att förbruka stora mängder resurser. Ta maskininlärning, till exempel, som använder ett stort antal datornoder. Men när vi pratar om acceleration måste vi inte bara tänka på att påskynda datoranvändningen, utan också på att påskynda infrastrukturen."

Till exempel, i den typ av maskininlärningsoperationer som Bolsens studerade i praktiken, ägnas ungefär 50 % av tiden åt att överföra data fram och tillbaka mellan spridd datorkraft, och endast den återstående hälften av tiden ägnas åt själva beräkningarna.

"Det är här jag tror att FPGA kan hjälpa, eftersom vi kan säkerställa att både beräknings- och kommunikationsaspekterna av applikationen är optimerade. Och vi kan göra detta på den övergripande infrastrukturnivån och på chipnivån. Detta är en av de stora fördelarna med FPGA, som gör att du kan skapa kommunikationsnätverk för specifika applikationsbehov. Baserat på typiska mönster för datarörelse i AI-arbetsbelastningar ser jag inte behovet av en komplex switch-baserad arkitektur. Du kan bygga ett nätverk med ett stort dataflöde. Detsamma gäller för utbildningsuppgifter för neurala nätverk – du kan bygga ett mesh-nätverk med paketstorlekar som anpassar sig till en specifik uppgift. Med hjälp av en FPGA kan dataöverföringsprotokoll och kretstopologier skalas mycket exakt och skräddarsys för en specifik applikation. Och när det gäller maskininlärning är det också tydligt att vi inte behöver dubbelprecisions flyttal, och vi kan justera det också."

Skillnaden mellan en FPGA och en CPU eller anpassad ASIC är att de senare är programmerade på fabriken, och efter det kan du inte längre ändra dig om vilka typer av data som beräknas eller element som beräknas, eller om vilken typ av data som är strömma genom enheten. FPGA:er låter dig ändra dig om driftsförhållandena ändras.

Tidigare kom denna fördel till en kostnad, när FPGA-programmering inte var för svaga hjärtan. Behovet är att öppna upp FPGA-kompilatorer för att bättre integreras med de verktyg som programmerare använder för att skriva CPU-parallella applikationer i C, C++ eller Python, och att lägga ut en del av arbetet på bibliotek som påskyndar procedurerna på FPGA:er. Detta är vad Vitis maskininlärningsstacken gör, driver ML-plattformar som Caffe och TensorFlow, med bibliotek för att köra konventionella AI-modeller eller lägga till FPGA-funktioner till uppgifter som videokodning, videoobjektigenkänning och dataanalys. , finansiell riskhantering och någon tredje -partibibliotek.

Det här konceptet skiljer sig inte mycket från Nvidias CUDA-projekt, som lanserades för ett decennium sedan, som laddar bort parallell beräkning till GPU-acceleratorer, eller från AMD:s ROCm-verktygssats, eller från löftet om Intels OneAPI-projekt, som ska köras på olika processorer, GPU:er och FPGA.

Frågan är bara hur alla dessa verktyg kommer att kopplas samman så att varje person kan programmera en uppsättning datorkrafter efter eget gottfinnande. Detta är viktigt eftersom FPGA:er har blivit mer komplexa, mycket mer komplexa än någon av de tillgängliga CPU:erna. De tillverkas med hjälp av de mest avancerade tillverkningsprocesserna och de mest moderna chipförpackningsteknikerna. Och de kommer att hitta sin nisch, eftersom vi inte längre kan slösa tid, pengar, energi och intelligens - allt detta är för dyra resurser.

"FPGA erbjuder tekniska fördelar", säger Bolsens. – Och det här är inte bara den vanliga reklam om anpassningsförmåga och omkonfigurerbarhet. I alla viktiga applikationer - maskininlärning, grafanalys, höghastighetshandel, etc. - de har förmågan att anpassa sig till en specifik uppgift, inte bara datadistributionsvägen utan även minnesarkitekturen - hur data rör sig inom chipet. FPGA:er har också mycket mer minne inbyggt i dem än andra enheter. Det bör också beaktas att om en uppgift inte passar in i en FPGA kan du skala den över flera chips utan att stöta på de nackdelar som väntar dig när du skalar uppgifter över flera processorer eller GPU:er.”

Källa: will.com

Lägg en kommentar