Det oundvikliga intrånget av FPGA i datacenter

Det oundvikliga intrånget av FPGA i datacenter
Du behöver inte vara chiputvecklare för att programmera för FPGA, precis som du inte behöver vara C++-programmerare för att skriva kod i Java. Men i båda fallen kan det troligen vara till nytta.

Målet med kommersialiseringen av båda teknologierna, Java och FPGA, är att motbevisa det senaste påståendet. Goda nyheter för FPGA är att det under de senaste 35 åren, sedan programmerbara logiska enheter uppfanns, har blivit allt lättare att skapa algoritmer och dataflöden för FPGA istället för CPU, DSP, GPU eller någon annan typ av specialiserade ASIC, genom att använda lämpliga nivåer av abstraktion och verktygssatser.

Den fantastiska tidpunkten för deras skapelse framträder i det faktum att precis när CPU inte längre kunde vara den enda beräkningsmodulen datacenter för att utföra många uppgifter – av olika anledningar – har FPGA nått sin effektivitet genom att erbjuda hög prestanda, låg latens, nätverksmöjligheter och minne – heterogena beräkningsmöjligheter hos moderna FPGA SoC, som representerar praktiskt taget kompletta beräkningssystem. Dessutom fungerar FPGA bra tillsammans med andra enheter i hybrida system, och vi anser att de bara börjar finna sin legitima plats i beräkningshierarkin.

Därför organiserade vi konferensen The Next FPGA Platform i San José den 22 januari. Naturligtvis är ett av världens främsta FPGA-företag och pionjärer inom detta område Xilinx. Ivo Boulens, Senior Vice President och CTO för Xilinx, talade på konferensen och delade med oss sina tankar om hur Xilinx hjälper till att skapa anpassningsbara beräkningssystem för datacenter.

Systemarkitekter och programmerare har lagt mycket tid på att skapa ett heterogent datacenter med datorkapaciteter av olika slag, som löser uppgifter relaterade till beräkningar, lagring och nätverksorganisation. Detta verkar nödvändigt eftersom det blir allt svårare att följa Moores lag med olika CMOS-teknologier. Medan vi fortfarande är knutna till CPU:er, och fortfarande pratar om "accelerering av applikationer", menar vi att förbättra prestandan hos program jämfört med vad som kan göras endast med CPU:er. Så småningom kommer datacenter att bli uppsättningar av beräkningskapaciteter, datalagring och protokoll som binder allt tillsammans, och vi kommer tillbaka till termer som "beräkningar" och "applikationer". Hybridberäkningar kommer att bli lika normala som dagens "molntjänster" som bygger på konventionella eller virtuella maskiner, och vid något tillfälle kommer vi att använda ordet "beräkningar" för att beskriva deras funktion. Vid något tillfälle – och det är troligt att FPGA:er kommer att påskynda ankomsten av denna era – kommer vi återigen att kalla det databehandling.

För att implementera FPGA:er i datacenter krävs en förändring av tankesättet. "När man tänker på sätt att påskynda dagens applikationer måste man gräva ner sig i grunderna för hur de exekveras, vilka resurser som används, vad som tar tid," förklarar Bolsens. "Man måste studera det övergripande problemet som man försöker lösa. Många applikationer som körs i datacenter idag är skalbara och tar upp en stor mängd resurser. Låt oss till exempel ta maskininlärning, som använder en enorm mängd beräkningsnoder. Men när man pratar om acceleration, måste man tänka inte bara på att påskynda beräkningarna, utan också på att påskynda infrastrukturen."

Till exempel, i de operationer relaterade till maskininlärning som Bolsens har studerat i praktiken, spenderas cirka 50 % av tiden på att överföra data fram och tillbaka mellan utspridda beräkningskapaciteter, och endast den återstående halvan av tiden används för själva beräkningarna.

"Precis här, verkar det som att FPGA kan hjälpa eftersom vi kan optimera både beräkningsaspekter och dataöverföringsaspekter för applikationen. Och vi kan göra detta både på nivå av den övergripande infrastrukturen och på chip-nivå. Detta är en av de stora fördelarna med FPGA, som gör det möjligt att skapa kommunikationsnätverk anpassade för applikationens specifika behov. Genom att observera typiska datarörelsemönster i uppgifter relaterade till artificiell intelligens ser jag inget behov av en komplicerad arkitektur baserad på switchar. Man kan bygga ett nätverk med hög datagenomströmning. Detsamma gäller för uppgifter relaterade till träning av neurala nätverk - man kan bygga ett cellbaserat nätverk med paketstorlekar som anpassar sig efter den specifika uppgiften. Med FPGA kan man mycket noggrant skala och anpassa dataöverföringsprotokoll och schematopologi för en specifik applikation. Och när det gäller maskininlärning är det också tydligt att vi inte behöver dubbelprecision flyttal, och det kan vi också anpassa."

Skillnaden mellan FPGA och CPU eller specialiserad ASIC är att de senare programmeras vid tillverkningen, och efter det kan du inte ändra beslutet angående typerna av beräknade data eller beräknade element, eller angående naturen av dataflödet genom enheten. FPGA gör det möjligt för dig att tänka om om driftsförhållandena ändras.

Tidigare var denna fördel dyr, när programmering för FPGA inte var för de med svag moral. Det krävs att man öppnar kompilerarna för FPGA så att de bättre integreras med verktygen som programmerare använder för att skapa applikationer med parallella beräkningar för CPU på språk som C, C++ eller Python, och att överlåta en del av arbetet till bibliotek som påskyndar procedurer på FPGA. Detta är vad Vitis-maskininlärningsstacken gör, som ligger till grund för sådana plattformar för MO som Caffe och TensorFlow och som har bibliotek för att köra vanliga AI-modeller eller lägga till FPGA-funktioner till uppgifter som videokodning, objektigenkänning i video, dataanalys, riskhantering och alla tredjepartsbibliotek.

Detta koncept skiljer sig inte mycket från Nvidias CUDA-projekt, som lanserades för tio år sedan och flyttade parallella beräkningar till GPU-acceleratorer, eller från AMD:s ROCm-verktyg eller löftena från Intels projekt OneAPI som ska fungera på olika CPU:er, GPU:er och FPGA:er.

Frågan är hur alla dessa verktyg kommer att kopplas ihop så att vem som helst kan programmera en uppsättning av beräkningsresurser efter eget val. Detta är viktigt eftersom FPGA:er har blivit mer komplexa, mycket mer komplexa än nuvarande CPU:er. De tillverkas med de mest avancerade tillverkningsprocesserna och de senaste chipförpackningsteknikerna. De kommer att finna sin nisch eftersom vi inte längre kan slösa bort tid, pengar, energi och intellekt – alla dessa är för dyra resurser.

“FPGA erbjuder teknologiska fördelar,” säger Bolsens. “Och det är inte bara vanlig reklam om anpassningsbarhet och omkonfigurerbarhet. I alla viktiga applikationer – maskininlärning, grafanalys, högfrekvenshandel, etc. – har de möjlighet att anpassa inte bara datatransportvägen utan även minnesarkitekturen – hur data rör sig inom chippet. Dessutom har FPGA:er betydligt mer minne än andra enheter. Man bör också ta hänsyn till att om en uppgift inte får plats i en FPGA kan den skalas över flera chip utan att stöta på de begränsningar som uppkommer vid skalning av uppgifter över flera CPU:er eller GPU:er.”

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster