De onvermijdelijkheid van FPGA-penetratie in datacenters

De onvermijdelijkheid van FPGA-penetratie in datacenters
U hoeft geen chipontwerper te zijn om voor FPGA's te programmeren, net zoals u geen C++-programmeur hoeft te zijn om code in Java te schrijven. In beide gevallen zal het echter waarschijnlijk nuttig zijn.

Het doel van het commercialiseren van zowel Java- als FPGA-technologieën is om de laatste bewering te weerleggen. Goed nieuws voor FPGA's: met behulp van de juiste abstractielagen en toolset is het creëren van algoritmen en datastromen voor FPGA's in plaats van CPU's, DSP's, GPU's of enige andere vorm van aangepaste ASIC's in de afgelopen 35 jaar sinds de uitvinding van het programmeerbare logische apparaat geworden steeds gebruikelijker, gemakkelijker.

De verbazingwekkende tijdigheid van hun creatie blijkt duidelijk uit het feit dat net toen CPU's niet langer de enige computermodule van datacenters konden blijven die veel taken kon uitvoeren - om verschillende redenen - FPGA's hun effectiviteit bereikten door snelheid, lage latentie en netwerkmogelijkheden te bieden. en geheugen - heterogene computermogelijkheden van moderne FPGA SoC's, die bijna volwaardige computersystemen zijn. FPGA's worden echter ook met succes gecombineerd met andere apparaten in hybride systemen, en naar onze mening beginnen ze nog maar net hun rechtmatige plaats in de computerhiërarchie te vinden.

Daarom organiseerden we op 22 januari de conferentie The Next FPGA Platform in San Jose. Eén van de belangrijkste FPGA-leveranciers ter wereld en een pionier op dit gebied is uiteraard Xilinx. Ivo Bolsens, senior vice-president en chief technology officer bij Xilinx, sprak op de conferentie en gaf ons vandaag zijn mening over hoe Xilinx helpt bij het creëren van veranderlijke computersystemen voor datacenters.

Het kostte systeemarchitecten en programmeurs veel tijd om een ​​heterogeen datacenter te bedenken, dat over verschillende soorten computerkracht zal beschikken die problemen op het gebied van computergebruik, opslag en netwerken oplossen. Dit lijkt noodzakelijk omdat het steeds moeilijker wordt om de wet van Moore te volgen met behulp van verschillende CMOS-apparaten. Voorlopig is onze taal nog steeds CPU-gericht, en we praten nog steeds over 'applicatieversnelling', wat betekent dat programma's beter moeten werken dan wat alleen op CPU's kan worden gedaan. In de loop van de tijd zullen datacenters een verzameling rekenkracht, gegevensopslag en protocollen worden die alles met elkaar verbinden, en zullen we terugkeren naar termen als ‘computing’ en ‘applicaties’. Hybride computing zal net zo normaal worden als de huidige clouddiensten die op desktop- of virtuele machines draaien, en op een gegeven moment zullen we eenvoudigweg het woord 'computing' gebruiken om te beschrijven hoe ze werken. Op een gegeven moment – ​​en het is waarschijnlijk dat FPGA's dit tijdperk zullen helpen inluiden – zullen we het weer gegevensverwerking noemen.

Het adopteren van FPGA’s in datacenters vergt een mentaliteitsverandering. “Als je nadenkt over manieren om de hedendaagse applicaties te versnellen, moet je tot de basis doordringen van hoe ze werken, welke bronnen worden gebruikt en waar de tijd wordt besteed”, legt Bolsens uit. – Je moet het algemene probleem dat je probeert op te lossen bestuderen. Veel applicaties die tegenwoordig in datacenters draaien, zijn schaalbaar en verbruiken grote hoeveelheden bronnen. Neem bijvoorbeeld machine learning, waarbij gebruik wordt gemaakt van een groot aantal computerknooppunten. Maar als we het hebben over versnelling, moeten we niet alleen denken aan het versnellen van computergebruik, maar ook aan het versnellen van de infrastructuur.”

Bij het soort machine learning-operaties dat Bolsens in de praktijk heeft bestudeerd, wordt bijvoorbeeld ongeveer 50% van de tijd besteed aan het heen en weer overbrengen van gegevens tussen verspreide rekenkracht, en wordt slechts de resterende helft van de tijd besteed aan de berekeningen zelf.

“Dit is waar ik denk dat FPGA kan helpen, omdat we ervoor kunnen zorgen dat zowel de computationele als de communicatieaspecten van de applicatie worden geoptimaliseerd. En we kunnen dit doen op het algehele infrastructuurniveau en op chipniveau. Dit is een van de grote voordelen van FPGA's, waardoor u communicatienetwerken kunt creëren voor specifieke toepassingsbehoeften. Gebaseerd op de typische patronen van databeweging in AI-workloads, zie ik geen noodzaak voor een complexe, op schakelaars gebaseerde architectuur. Je kunt een netwerk opbouwen met een grote datastroom. Hetzelfde geldt voor trainingstaken voor neurale netwerken: u kunt een mesh-netwerk bouwen met pakketgroottes die zich aanpassen aan een specifieke taak. Met behulp van een FPGA kunnen protocollen voor gegevensoverdracht en circuittopologieën zeer nauwkeurig worden geschaald en afgestemd op een specifieke toepassing. En in het geval van machine learning is het ook duidelijk dat we geen drijvende-kommagetallen met dubbele precisie nodig hebben, en die kunnen we ook aanpassen.”

Het verschil tussen een FPGA en een CPU of aangepaste ASIC is dat deze laatste in de fabriek zijn geprogrammeerd, en dat je daarna niet meer van gedachten kunt veranderen over de soorten gegevens die worden berekend of de elementen die worden berekend, of over de aard van de gegevens. door het apparaat stromen. Met FPGA's kunt u van gedachten veranderen als de bedrijfsomstandigheden veranderen.

In het verleden bracht dit voordeel kosten met zich mee, toen FPGA-programmering niet voor bangeriken was. De noodzaak is om FPGA-compilers open te stellen voor een betere integratie met de tools die programmeurs gebruiken om CPU-parallelle applicaties in C, C++ of Python te schrijven, en om een ​​deel van het werk uit te besteden aan bibliotheken die de procedures op FPGA's versnellen. Dit is wat de machine learning-stack van Vitis doet, die ML-platforms zoals Caffe en TensorFlow aanstuurt, met bibliotheken voor het uitvoeren van conventionele AI-modellen of het toevoegen van FPGA-mogelijkheden aan taken zoals videotranscodering, video-objectherkenning en data-analyse. , financieel risicobeheer en alle derde -feestbibliotheken.

Dit concept verschilt niet veel van Nvidia's CUDA-project, dat tien jaar geleden werd gelanceerd, dat parallelle computing overbrengt naar GPU-versnellers, of van AMD's ROCm-toolkit, of van de belofte van Intel's OneAPI-project, dat op verschillende CPU's, GPU's en FPGA zou moeten draaien.

De enige vraag is hoe al deze tools met elkaar zullen worden verbonden, zodat iedereen naar eigen goeddunken een reeks rekenkracht kan programmeren. Dit is belangrijk omdat FPGA's complexer zijn geworden, veel complexer dan alle beschikbare CPU's. Ze worden vervaardigd met behulp van de meest geavanceerde productieprocessen en de modernste chipverpakkingstechnologieën. En ze zullen hun plek vinden, omdat we niet langer tijd, geld, energie en intelligentie kunnen verspillen - dit zijn allemaal te dure middelen.

“FPGA’s bieden technologische voordelen”, zegt Bolsens. – En dit is niet alleen de gebruikelijke reclame over aanpassingsvermogen en herconfigureerbaarheid. In alle belangrijke toepassingen - machine learning, grafiekanalyse, snelle handel, enz. - ze hebben het vermogen om niet alleen het gegevensdistributiepad aan te passen aan een specifieke taak, maar ook de geheugenarchitectuur - hoe gegevens binnen de chip bewegen. FPGA's hebben ook veel meer geheugen ingebouwd dan andere apparaten. Je moet er ook rekening mee houden dat als een taak niet in één FPGA past, je deze over meerdere chips kunt schalen zonder de nadelen tegen te komen die je te wachten staan ​​bij het schalen van taken over meerdere CPU’s of GPU’s.”

Bron: www.habr.com

Voeg een reactie