ICT Trends en Ontwikkelingen
E-book ‘Loop niet tegen de muur' Download

GPU – van gaming naar machine learning

De grafische processor: ooit ontwikkeld om snellere en fraaiere graphics op een computerbeeldscherm te tonen. Nu wordt hij ingezet als wapen in de race om snellere dataverwerking voor artificial intelligence en machine learning. Wat heeft die grafische processor nu te maken met supercomputers?

Dat de gaming-industrie ooit verantwoordelijk zou worden voor de grootste stap voorwaarts in dataverwerking is misschien wel de meest verrassende ontwikkeling sinds de uitvinding van de computer. In de jaren 90 wist menig 3D-game de huiskamer te veroveren. Wolfenstein, Doom en Unreal deden een forse aanslag op de verwerkingskracht van de pc’s van consumenten. De vraag naar meer en betere rekenkracht nam steeds meer toe.

Graphics processing unit

Het was al snel duidelijk dat deze rekenkracht niet kon worden opgelost met snellere hoofdprocessors, vanwege de manier waarop deze werken. Een CPU moet een heleboel, heel verschillende, taken kunnen uitvoeren; tekstverwerken, spreadsheets uitrekenen, webpagina’s renderen, randapparatuur aansturen. Het aansturen van het beeldscherm was gewoon één van de vele taken voor de CPU.

Nvidia was een van de eerste bedrijven die dit oploste door te komen met een speciale processor voor grafische verwerking, de graphics processing unit (GPU). De GPU heeft speciale functies aan boord die 3D-weergave kunnen versnellen (shaders en renderers).De videokaart bestond uiteraard al, maar die kwam niet verder dan 2D-processing met wat 3D-functies eraan vastgeplakt op een nogal houtje-touwtje manier.

Tot zover het grafische deel. Maar wat maakt deze processors nou zo geschikt voor machine learning? Daarvoor moeten we de stap maken naar ‘general purpose computing on graphics processing units’ (GPGPU). De naam zegt het al: het inzetten van GPU’s voor algemene computerverwerkingstaken. GPU’s met programmeerbare functies zijn te gebruiken bij complexe berekeningen met matrixen en 2-, 3- en 4-dimensionele vectoren. En dat maakt de weg vrij voor heel veel experimenten met dataverwerking.

De Ferrari en de vrachtauto

Laten we de GPU eens vergelijken met de CPU. De CPU is ‘latency optimized’ wat wil zeggen dat de wachttijden tussen de verwerkingscycli zo kort mogelijk worden gemaakt. Een GPU is ‘bandwidth optimized’, waarbij er zoveel mogelijk data in één keer wordt verwerkt. Vergelijk dit met het bezorgen van pakketten. We nemen een Ferrari (de CPU) en een vrachtauto (de GPU) die de taak krijgen om zoveel mogelijk pakketten, zo snel mogelijk te transporteren van A naar B (geheugenoperaties). De Ferrari is supersnel, maar zal heel vaak heen en weer moeten om alle pakketten op te halen en te bezorgen. De vrachtauto kan in één keer veel meer meenemen.

Ter vergelijk; de GPU heeft een veel grotere bandbreedte (750GB/s) dan de CPU (50GB/s).

Maar dit maakt de GPU nog niet sneller dan de CPU. Want de latency/wachttijd speelt bij de GPU wel een rol. De vrachtauto is een stuk langzamer, de Ferrari is in de tussentijd al ontelbare keren heen en weer gereden. Hoe is dat op te lossen?

We nemen in plaats vanéén vrachtauto een hele vloot vrachtauto’s. Nu ziet het er ineens heel anders uit. Want het duurt misschien even voordat de eerste vrachtauto arriveert en , alles is uitgeladen, maar intussen is de volgende vrachtauto allang gearriveerd en hoef je helemaal niet meer te wachten. Ook niet op de vrachtwagens daarna.

Zo werkt het ook het beste met grote brokken informatie die bestaan uit vele kleine, maar vergelijkbare brokjes. En dat is nu precies waarvan sprake is bij machine learning, deep learning en high performance computing. Je ziet ook meteen waarom een grote vloot Ferrari’s (het toevoegen van extra ‘threads’) helemaal geen voordeel biedt in dit scenario. De verwerkingssnelheid is helemaal het probleem niet, het aanleveren van data wel.

Nvidia en IBM

Een van de leveranciers die vooroploopt bij het ontwikkelen van GPU’s voor artificial intelligence is – niet heel verrassend – Nvidia. Al een jaar of tien timmert het bedrijf aan de weg met de Tesla-serie, GPU’s gericht op general purpose computing en meer specifiek voor high performance computing. De Volta (GV100) is de nieuwste in de reeks. De serie is nauw verbonden met de specifieke application programming interface CUDA. Daarmee kan programmatuur worden geschreven die gebruik maakt van de parallel processing eigenschappen voor niet-grafische toepassingen.

Het is natuurlijk niet zo dat machine learning het alleen met GPU’s afkan. Een centrale verwerkingseenheid blijft nodig. Sterker nog, het is cruciaal dat CPU en GPU’s – jazeker, meerdere – elkaar optimaal begrijpen om de computer zo efficiënt mogelijk zijn werk te laten doen.

Nvidia werkt hiervoor samen met IBM om systemen te bouwen waarin IBM Power 9-processoren zo goed mogelijk moeten kunnen samenwerken met Nvidia Tesla V100 GPU’s. Daarbij worden meerdere V100-processoren door middel van een technologie van Nvidia genaamd NVLink verbonden met elkaar en met de CPU. Interessant daarbij is dat de Power 9-processor NVLink standaard als protocol ondersteunt, in plaats van alleen het populaire PCIe 4.0-protocol.

Dat dit prima werkt, bewijst het feit dat ’s werelds snelste supercomputer van dit moment, Summit, een IBM AC922-systeem is met 4608 compute servers aan boord. Elk met twee 22-core Power 9 processoren en zes Nvidia V100 GPU’s. Het resultaat is 200 petaflops. Boem.

Download het e-book “Tegen de muur! – Voorkom dat je server power niet toereikend is voor AI-toepassing”

E-book ‘Loop niet tegen de muur'

Hét buzzword in de IT van 2018 is niet blockchain, maar artificial intelligence. Ben je in jouw organisatie ook al bezig met het plannen, inrichten of misschien al implementeren? Dan is deze e-book onmisbaar voor jou.

Reacties (0)

Gelieve in te loggen

Je moet inloggen om een reactie te kunnen plaatsen.