Door Marc Rademaker

Redacteur

Het huwelijk van gpu en cpu

02-08-2012 • 08:00

74

Singlepage-opmaak

Cpu versus gpu

De taken die we op onze pc's, laptops en tablets uitvoeren, veranderen. Een nieuwe en steeds populairdere tak van sport is patroonherkenning: het analyseren van de aanrakingen op een touchscreen, gezichtsherkenning - dat bij Windows 8 gebruikt kan worden om in te loggen - en voice control zoals bij Apples Siri en Google Now zullen in de komende jaren steeds meer toegepast worden. Zulke taken zijn erg data-intensief en de hoge throughput van parallelle verwerking kan daarbij van grote waarde zijn.Gezichtsherkenning - raad leeftijd / geslacht en meer

Bij de introductie van dualcore-cpu's werd echter al snel duidelijk dat veel programmatuur geen baat bij een tweede rekenkern had. Omdat de kloksnelheid bij de eerste multicores lager lag dan bij de ver doorontwikkelde singlecores, was de snelheidswinst bij veel programma's ver te zoeken. Nu programmeurs weten dat het gros van de pc's over meer dan een kern beschikt, worden multicore-cpu's steeds beter benut. Bijna alle benchmarks die we bij Tweakers.net draaien zijn bijvoorbeeld multithreaded en ook games zijn steeds vaker ingericht op het gebruik van meerdere kernen.

Een maat voor de prestaties van een processor is de task latency: de hoeveelheid tijd die nodig is om een taak van begin tot eind af te ronden. Een tweede maat is de hoeveelheid werk die een processor in een bepaalde hoeveelheid tijd kan uitvoeren: de task throughput. Cpu's zijn ontworpen op een zo laag mogelijke task latency; bij gpu's ligt de nadruk op task throughput. De cpu en de gpu zijn grofweg in staat om elke taak uit te voeren, maar het gaat om het rendement: cpu's zijn veel beter in seriële taken, terwijl een gpu is gespecialiseerd in parallelle workloads - soms zijn problemen zo onthutsend simpel te parallelliseren dat er wel wordt gesproken van embarrassingly parallel workloads. Op hun eigen terrein zijn de processors soms wel een factor honderd sneller.

Zo is er het programma Amber, waarmee aan molecuulmodellen worden gerekend. Met behulp van Nvidia's Cuda-api kunnen Nvidia's videokaarten ingezet worden om de simulaties veel sneller uit te voeren dan met een cpu, zo tonen benchmarks op de site van Amber aan.

CPU vs GPU benchmarkBij de simulatie van een molecuul van 304 atomen is een GTX 580 bijna drie keer zo snel als twee Intel E5462-quadcores. Wanneer er 2492 atomen in het spel zijn, is de GTX 580 ruim twintig keer zo snel. Naarmate het aantal atomen toeneemt naar 25.000 of zelfs 100.000 neemt het verschil iets af, maar de GTX 580 is nog steeds acht tot tien keer zo snel.

Onlangs werd in het Verenigd Koninkrijk een supercomputer met 372 M2090-kaarten en 168 hexacore Xeon-cpu's in gebruik genomen, die 114Tflops aan rekenkracht levert en daarmee nummer 159 in de top 500 van supercomputers bezet. Een supercomputer met gpu's is daarmee een stuk goedkoper dan eentje met alleen cpu's.

Daar staat echter tegenover dat programmeren voor gpu's een stuk moeilijker is. Nvidia werkt echter al jaren aan general purpose gpu-applicaties en met name in de onderzoekswereld en het bedrijfsleven heeft dat al behoorlijk wat vruchten afgeworpen. Het marktaandeel van supercomputers met gpu's is de afgelopen drie jaar dan ook flink toegenomen. In juni 2010 beschikten 2 van de 500 supercomputers over gpu's, in juni 2011 waren het er 14 en tegenwoordig zijn het er ruim 50.Aantal supercomputers met gpu's / 2012

Ook Intel is zich van de kracht van parallellisme bewust. Dit bedrijf presenteerde onlangs de Xeon Phi Co-processor, een 'videokaart' met ruim 50 kernen. Dat staat nog in schril contrast met de 1500 tot 2000 kernen waar de gpu's van Nvidia en AMD over beschikken, maar Intels rekeneenheden kunnen overweg met x86-code. Daardoor hoeven bestaande applicaties niet herschreven te worden met OpenCL of Cuda, maar kunnen ze bijna zonder aanpassingen op de Xeon Phi-processors worden uitgevoerd.

Intel kondigde ook meteen de eerste supercomputer op basis van de Xeon Phi aan. Naast 1225 Xeon E5-cpu's bevat dit systeem 613 van deze co-processors, waarmee een snelheid van 118Tflops wordt gehaald. Dat is iets meer de supercomputer in het Verenigd Koninkrijk, maar daar zijn wel het dubbele aantal 'gpu's' en zeven keer zoveel cpu's voor nodig. Opvallend is trouwens dat Intel beweert dat de Xeon Phi 1Tflops aan double-precisionberekeningen levert, maar dat cijfer wordt in een benchmark van Linpack bij lange na niet gehaald. Nog opvallender is dat Nvidia voor de M2090's een maximum van 'slechts' 0,665Tflops aan double-precision berekeningen claimt.