Na de CPU en de GPU worden FPGA’s steeds belangrijker in het moderne computerlandschap. Waar staat de afkorting voor, en hoe komt het dat een concept dat al sinds de jaren 80 bestaat nu plots zo populair wordt?
AMD telt 35 miljard euro neer voor FPGA-specialist Xilinx. De overname verkreeg de nodige goedkeuringen en is bijna rond en biedt AMD een bijzonder sterk wapen tegen Intel en Nvidia. Intel is zelf niet vies van FPGA’s, en introduceerde vorig jaar nog enkele nieuwe Stratix-chips gericht op AI. Tegenover Nvidia bieden FPGA’s dan weer een interessant alternatief voor accelerators.
Allemaal goed en wel, maar waar gaat het nu precies over? In tegenstelling tot GPU’s en CPU’s zijn FPGA’s geen chips waar de gemiddelde gebruiker zichtbaar mee in contact komt. Toch zitten de dingen overal. Intussen gaan ze al bijna 40 jaar mee en hun relevantie was nog nooit zo groot.
In 1984 lanceerde Altera de eerste commerciële Field Programmable Gate Array (FPGA). Dertig jaar later telde Intel net geen 17 miljard dollar neer voor de overname van het bedrijf. Intussen bieden onder andere Microsoft, Amazon en Baidu systemen aan in de cloud die zijn voorzien van FPGA-chips. De markt boomt met dank aan de unieke capaciteiten van de FPGA, maar wat zijn die precies?
Boetseerbare microchip
Een FPGA is in essentie een herprogrammeerbare chip. De FPGA bestaat uit een heleboel logische blokken (AND, NOT, OR en complexer), verbonden met een ware oceaan aan interconnects. Het grote verschil met andere chips is de flexibiliteit. Dankzij de talrijke interconnects kunnen de schakelingen via firmware telkens op een andere manier met elkaar worden verbonden, waardoor de chip geoptimaliseerd wordt voor een ander type workload.
Het grote verschil met andere chips is de flexibiliteit.
Dat staat in schril contrast met klassieke chips. Een CPU wordt ontworpen met specifieke functionaliteit in gedachten. In de fabriek worden logische componenten en interconnects hardwarematig ingebakken, waarna ze niet meer gewijzigd kunnen worden. Natuurlijk kan een firmware-update wel één en ander optimaliseren, maar drastische wijzigingen zijn onmogelijk. Hetzelfde geldt voor een GPU of de SoC in je smartphone.
Een ‘normale’ chip kan je zo vergelijken met een koperen beeld, gegoten via een mal. Het specifieke resultaat kan erg complex zijn, maar kan niet meer worden veranderd. Een FPGA bestaat uit kleine blokken, waarmee datzelfde beeld kan worden gebouwd, maar ingenieurs via firmware ook iets totaal anders kunnen creëren.
FPGA en ASIC
Zo kan eenzelfde FPGA de ene dag dienstdoen als een op maat gemaakte chip voor één toepassing, en de andere dag voor een andere. Om het met een andere afkorting te zeggen: een FPGA is een herprogrammeerbare ASIC. ASIC staat voor Application Specific Integrated Circuit.
Een concreet voorbeeld kan misschien één en ander verduidelijken. Dat machine learning en AI aan een opmars bezig zijn, en de toekomst van computing zullen domineren, hoeven we je niet te vertellen. Aanvankelijk gebruikten onderzoekers CPU’s voor hun ML-algoritmes. Al snel bleek dat de parallelle rekenkracht van de GPU geschikter was om de algoritmes te trainen. Daarom werden CPU’s in eerste instantie versterkt met zogenaamde ‘accelerators’ op basis van GPU-chips. Al snel evolueerde het landschap naar een GPU-centrische aanpak. De manier waarop een GPU hardwarematig in elkaar zit, is eenvoudigweg geschikter voor specifieke algoritmes.
lees ook
AMD koopt FPGA-specialist Xilinx voor 35 miljard dollar
Google gaat dezer dagen nog een stap verder. Het ontwikkelde een eigen processor, de Tensor Processing Unit (TPU), speciaal met Tensor-ML-workflows in het achterhoofd. De TPU is geen cpu of GPU, maar z’n eigen ding. Zo’n chip past onder de verzamelnaam ASIC.
Nvidia van zijn kant zet sterk in op zogenaamde DPU’s, kort voor data processing unit. Die dingen ontfermen zich in het datacenter over workloads gerelateerd aan gegevensbeheer- en transfer, en ontlasten zo net als een TPU of een GPU de CPU. Ook een DPU kan je als ASIC omschrijven.
Een TPU en een DPU zijn echter niet aanpasbaar. Dat geldt voor alle ASICs. Evolueren de algoritmes, dan kan de chip niet mee evolueren om de workflow te optimaliseren. Een FPGA kan dat wel. Dat maakt FPGA’s in datacenters zo populair. Een klant kan ze configureren op maat van een specifieke workflow. Zo lijkt het alsof de cloudcomputer een chip op maat van de klant aan boord heeft. Verandert de workflow, dan volstaat een aanpassing van de code om de FPGA om te toveren tot een nieuwe geoptimaliseerde chip, zonder dat er een hardware-investering nodig is.
Voordelen vandaag
Een geoptimaliseerde chip heeft veel voordelen. Het energieverbruik en de gegenereerde hitte bij zware workloads liggen lager, en de workloads draaien eenvoudigweg sneller. Niet verwonderlijk dus dat Intel, wiens hart nog steeds in het datacenter klopt, Altera destijds overnam. Intel is echter niet de enige grote naam in de FPGA-wereld. Als je nog één andere naam van een FPGA-boer onthoudt, laat het dan Xilinx zijn. Die fabrikant werkt nauw samen met AWS voor de implementatie van FPGA-systemen in cloud-datacenters.
Vandaag staat de technologie ver genoeg om efficiënte FPGA’s te maken.
Dat FPGA’s recent pas echt in de schijnwerpers komen te staan, heeft te maken met een aantal zaken. Enerzijds is er natuurlijk de vraag naar geoptimaliseerde machine learning-systemen. Anderzijds staat de technologie vandaag ver genoeg om efficiënte FPGA’s te maken. Een FPGA in een specifieke configuratie is immers minder efficiënt dan een ASIC in exact dezelfde configuratie. Logisch, aangezien de ASIC maatwerk is en de FPGA aan de hand van bouwstenen en een veelvoud aan interconnects zichzelf in bochten moet wringen om hetzelfde te kunnen. Hedendaagse chiptechnologie maakt de FPGA echter efficiënt genoeg, waardoor de herprogrammeerbaarheid op de lange termijn een eventueel efficiëntieverlies in een specifieke configuratie ruimschoots compenseert.
Buiten het datacenter
Ook buiten het datacenter gaat de FPGA een mooie toekomst tegemoet, onder andere dankzij de alomtegenwoordigheid van IoT-toestellen. IoT-hardware, uitgerust met een FPGA als logische kern in plaats van een op maat gemaakte SoC, kan na verloop van tijd nieuwe functies krijgen zodat ze minder snel veroudert.
Denk voor een hypothetisch voorbeeld aan de introductie van de H.265-video-codec. H.265 laat een veel grotere compressie toe dan H.264 en is in alle opzichten superieur. Eén nadeel: zonder speciale hardwarematige H.265-decoderchip is het een erg zware taak om een H.265-video in realtime te decoderen. Veel lichte hardware zal zich hierop verslikken. Heb je een NAS, tv of mediaserver zonder H.265-ondersteuning, dan moet je investeren in een nieuw exemplaar. Heeft het toestel een FPGA aan boord, dan is het voor de fabrikant in theorie mogelijk om hardwarematige H.265-ondersteuning uit te rollen naar de chip. Na een update herconfigureert die zich dan tot een hardwarematige H.265-decoder.
FPGA is niet altijd de oplossing.
Is de FPGA dan de toekomst van de microchip? Dat nu ook weer niet. FPGA’s zijn alleen interessant in een relatief beperkte oplage. De kracht van een klassieke GPU of CPU blijft voor heel veel workloads essentieel. Ook voor specifiekere toepassingen is de FPGA niet altijd de oplossing. Google wil met zijn TPU bijvoorbeeld een enorme markt aanspreken. Massaproductie en efficiëntie winnen het in dat geval opnieuw van flexibiliteit, waardoor een niet-aanpasbare ASIC-chip toch de juiste keuze is.
Om de relatie tussen FPGA en ASIC nog wat te duiden, is het best interessant om te weten dat FPGA-chips vaak gebruikt worden in de ontwikkeling van ASIC-designs. Ingenieurs die een niet-aanpasbare toegewijde chip voor een specifieke toepassing willen ontwikkelen, kunnen designs uitproberen met een FPGA. Als ze tevreden zijn, kunnen ze dat design dan vastzetten in een ASIC-chip, klaar voor massaproductie.
FPGA’s gebruiken
Dergelijk gebruik van de FPGA bestaat natuurlijk al lang. Het is de introductie in datacenters die nieuw is. De grootste uitdaging op dit moment is het gebruiksgemak. Als onderneming met interesse in AI en machine learning is een server met FPGA-accelerator misschien ideaal op papier, maar het gebruik ervan vereist erg specifieke knowhow. Je hebt immers experts nodig met verstand van microchiphardware, die de FPGA effectief kunnen programmeren naar een configuratie op maat van de workloads die je wil draaien.
Ook dat probleem wordt stilaan opgelost. Het zal je niet verbazen dat ‘FPGA as a Service’ een ding wordt. De kans dat jij zelf aan de slag zal gaan met de chips, is wellicht niet zo groot. Het is waarschijnlijker dat de FPGA achter de schermen het verschil zal maken. Denk daarbij aan kant-en-klare geoptimaliseerde cloudservers op maat van jouw noden. De FPGA geeft de cloudprovider in dit scenario de nodige tools om dergelijke specifieke servers aan te bieden, zonder dat daar investeringen in allerhande specifieke hardwarechips mee gepaard gaan.
Heterogeen computerlandschap
Uiteindelijk past de FPGA net als de GPU, TPU en DPU in een nieuwe visie op het computerlandschap. Dat was heel lang CPU-centrisch. De processor was het kloppende hart van al het rekenwerk. Zolang de CPU zich zonder zweten van zijn taken kan kwijten, is dat handig. Een CPU-centrische aanpak heeft eenvoud en compatibiliteit als voordeel.
Het mag duidelijk zijn dat een processor alleen vandaag niet meer volstaat om al het gevraagde rekenwerk te vervullen. Omdat het niet meer vanzelfsprekend is om de CPU zomaar even in pk’s te verdubbelen, zijn gespecialiseerde processors de oplossing. Voor relatief veelvoorkomende taken kan je op grote schaal accelerators bouwen: de GPU’s, TPU’s en DPU’s van deze wereld. De FPGA is een stuk flexibeler en vult de talrijke gaten op.
lees ook
Waarom de FPGA het datacenter verovert
Dit stuk verscheen oorspronkelijk op 10 december 2018. Het werd geüpdatet met nieuwe informatie voor herpublicatie.