
Nem szükséges chipfejlesztőnek lenni ahhoz, hogy FPGA-ra programozzunk, ahogyan az sem szükséges, hogy C++ programozónak legyünk, hogy Java-n kódoljunk. Azonban mindkét esetben valószínűleg nem árt, ha van némi tapasztalatunk.
A Java és az FPGA technológiák kereskedelmi célja, hogy megcáfolják az utóbbi állítást. Jó hír az FPGA számára, hogy a megfelelő absztrakciós szintek és eszközkészletek alkalmazásával az elmúlt 35 évben, mióta a programozható logikai eszközök feltalálásra kerültek, egyre könnyebb algoritmusokat és adatfolyamokat létrehozni FPGA számára CPU, DSP, GPU vagy bármilyen más speciális ASIC forma helyett.
Létrehozásuk tisztán időzítése abban nyilvánul meg, hogy éppen akkor, amikor a CPU-k már nem tudtak egyedüli számítási modulként működni – számos okból – az FPGA elérte hatékonyságát, gyors teljesítményt, alacsony késleltetést, hálózati lehetőségeket és memóriát kínálva – a modern FPGA SoC változatos számítási lehetőségei gyakorlatilag teljes értékű számítási rendszerek. Azonban az FPGA jól együttműködik más eszközökkel a hibrid rendszerekben, és véleményünk szerint csak most kezdik megtalálni a jogos helyüket a számítástechnikai hierarchiában. adatközpontok Ezért szerveztük meg a The Next FPGA Platform konferenciát San Joséban január 22-én. Természetesen az egyik vezető FPGA beszállító a világon és az ágazat úttörője a Xilinx. Ivo Bolsius, a Xilinx senior alelnöke és műszaki igazgatója a konferencián beszédet mondott, és elmondta nekünk a mai gondolatait arról, hogyan segíti a Xilinx a változtatható számítási rendszerek létrehozását az adatközpontok számára.
Ezért szerveztük meg a The Next FPGA Platform konferenciát San Joséban január 22-én. Természetesen az egyik vezető FPGA beszállító a világon és az ágazat úttörője a Xilinx. Ivo Bolsius, a Xilinx senior alelnöke és műszaki igazgatója a konferencián beszédet mondott, és elmondta nekünk a mai gondolatait arról, hogyan segíti a Xilinx a változtatható számítási rendszerek létrehozását az adatközpontok számára.
A rendszerarchitekteknek és programozóknak elég időbe telt, hogy elérjék a heterogén adatközpont kialakulását, amelyben különböző számítástechnikai erőforrások jelennek meg, amelyek adatfeldolgozási, tárolási és hálózatépítési feladatokat látnak el. Ez szükségesnek tűnik, mivel egyre nehezebb lépést tartani Moore törvényével a különböző CMOS technológiák használatával. Jelenleg még mindig a CPU-ra támaszkodunk, és még mindig arról beszélünk, hogy „alkalmazások gyorsításáról” van szó, ami az alkalmazások teljesítményének javítását jelenti, összevetve azzal, amit csak CPU-n lehet elérni. Idővel az adatközpontok számítási erőforrások, adattárolók és mindent összehangoló protokollok gyűjteményévé alakulnak, és visszatérünk olyan kifejezésekhez, mint a „számítások” és „alkalmazások”. A hibrid számítások olyan normává válnak, mint a mai „felhőalapú” szolgáltatások, amelyek hagyományos vagy virtuális gépekhez, és egy ponton egyszerűen a „számítások” szót fogjuk használni a működésük leírására. Egy időpontban – és valószínűleg az FPGA-k aktívan hozzájárulnak ennek az korának eljöveteléhez – újra csak adatfeldolgozásnak fogjuk nevezni ezt a folyamatot.
Az FPGA-k adatközpontokba való integrálásához meg kell változtatni a gondolkodásmódot. „Ha az aktuális alkalmazások gyorsítási módjait fontolgatjuk, az alapokhoz kell visszatérnünk, hogy megértsük, hogyan hajtják végre őket, milyen erőforrásokat használnak, mire megy el az idő” – magyarázza Bolzens. – „Fontos a problémát átfogóan tanulmányozni, amit megpróbál megoldani. Sok olyan alkalmazás működik az adatközpontokban, amelyek skálázhatók, jelentős mennyiségű erőforrást felhasználva. Vegyük például a gépi tanulást, amely óriási mennyiségű számítási csomópontot használ. De ha a gyorsításról van szó, nem csak a számítások gyorsítására kell gondolni, hanem az infrastruktúra gyorsítására is.”
Például azokon a gépi tanulással kapcsolatos műveleteken, amelyeket Bolzens gyakorlatban tanulmányozott, körülbelül az idő felét a távoli számítási erőforrások közötti adatátvitelre fordítják, és csak a maradék fele megy el a tényleges számításokra.
Itt, úgy vélem, az FPGA tud segíteni, mivel optimalizálhatjuk mind a számítási aspektusokat, mind az alkalmazások adatátviteli aspektusait. Ezt megtehetjük a teljes infrastruktúra szintjén és a chip szintjén is. Ez az FPGA egyik nagy előnye, amely lehetővé teszi a kommunikációs hálózatok létrehozását az alkalmazás konkrét igényeihez. Figyelembe véve az adatok tipikus áramlási mintázatait, különösen mesterséges intelligenciával kapcsolatos feladatokban, nem látom szükségét egy bonyolult kapcsolók alapú architektúrának. Lehetséges egy olyan hálózat felépítése, amely nagy adatsűrűséggel rendelkezik. Ugyanez vonatkozik a neurális hálózatok tanulására is – létrehozhatunk egy rácsos hálózatot, amely a konkrét feladatnak megfelelően állítja be a csomagok méretét. Az FPGA segítségével rendkívül pontosan méretezhetjük és testre szabhatjuk az adatátviteli protokollokat és a séma topológiáját az adott alkalmazáshoz. A gépi tanulás esetében is világos, hogy nincs szükségünk dupla pontosságú lebegőpontos számokra, és ezt is be tudjuk állítani.
A különbség az FPGA és a CPU vagy a speciális ASIC között az, hogy az utóbbiakat a gyártáskor programozzák, és utána már nem tudjuk megváltoztatni, hogy milyen típusú számított adatokat vagy számítási elemeket szeretnénk, illetve a jövőbeli adatfolyam természetét sem. Az FPGA lehetővé teszi, hogy átgondoljuk a dolgokat, ha a munkakörülmények változnak.
A múltban ez az előny drágán megfizetendő volt, mivel az FPGA-ra való programozás nem a gyengéd lelkűeknek való. Meg kell nyitnunk az FPGA fordítókat, hogy jobban integrálódjanak a fejlesztők által használt eszközökkel, amelyek párhuzamos számításokat készítenek CPU-ra C, C++ vagy Python nyelveken, és egy részes munkát a FPGA eljárásokat gyorsító könyvtárakra kell bízni. Ezt végzi a Vitis gépi tanulási stack, amely a MO platformok, például a Caffe és a TensorFlow alapját képezi, és könyvtárakat tartalmaz, amelyek lehetővé teszik a hagyományos MI modellek futtatását, vagy az FPGA képességeinek hozzáadását olyan feladatokhoz, mint a videó újrakódolás, videóobjektumok azonosítása, adatfeldolgozás, pénzügyi kockázatok kezelése és bármely külső könyvtár.
Ez a koncepció nem különbözik lényegesen az Nvidia CUDA projektjétől, amelyet tíz évvel ezelőtt indítottak el, és a párhuzamos számításokat GPU-gyorsítókra hárította, vagy az AMD ROCm eszközkészletétől, vagy az Intel OneAPI projekt ígéreteitől, amely többféle CPU, GPU és FPGA környezetben kellene működjön.
A kérdés csupán az, hogy ezek az eszközök hogyan kapcsolódnak majd egymáshoz, hogy bárki programozhasson egy számítási teljesítményhalmazt a saját igényei szerint. Ez azért fontos, mert az FPGA-k sokkal bonyolultabbak lettek, mint bármelyik meglévő CPU. A legfejlettebb gyártási technológiák és a legmodernebb chipcsomagolási technológiák segítségével készülnek. És megtalálják a helyüket, mivel már nem pazarolhatjuk az időt, pénzt, energiát és intelligenciát - ezek mind túl drága források.
"Az FPGA technológiai előnyöket kínál – mondja Bolsens. – És ez nem csupán a rugalmasság és átkonfigurálhatóság hirdetése. Minden fontos alkalmazásban – gépi tanulás, gráfok elemzése, nagy sebességű kereskedelem, stb. – lehetőségük van nemcsak az adatok terjedési útvonalát, hanem a memória architektúráját is a konkrét feladathoz igazítani – ahogyan az adatok a chipen belül mozognak. Emellett az FPGA-kban jóval több memória található, mint más eszközökben. Figyelembe kell venni azt is, hogy ha a feladat nem fér el egy FPGA-n, több chipre is skálázható, anélkül, hogy azokkal a hátrányokkal kellene szembenézni, amelyek a CPU-k vagy GPU-k többes számú kezelésével járnak."
Forrás: habr.com
