
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
