GPGPU test: video encoding op de grafische kaart

22 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. API’s
  3. 3. Video
  4. 4. Test
  5. 5. Conclusie
  6. 22 reacties

Inleiding

Het is alweer een aantal jaar geleden dat ATI de term voor het eerst liet vallen: GPGPU, ofwel General Purpose GPU, een verzamelterm voor technologieën die het mogelijk maken om je videokaart te gebruiken voor andere zaken dan waar deze oorspronkelijk voor bedoeld is. Het oorspronkelijke idee kwam van een paar slimme studenten aan Amerikaanse universiteiten. Zij bedachten dat, wanneer je de grafische rekenkracht voor een ander doel zou inzetten, dit in potentie tot zeer interessante resultaten kon leiden. Na enkele hobbymatige experimenten – waaronder het maken van een op ATI-chips werkende Folding@Home variant – zagen de GPU-fabrikanten ineens in dat dit nog wel eens een zeer interessante ontwikkeling zou kunnen worden.


ATI en nVidia geven vooralsnog beiden hun eigen invulling aan GPGPU via Stream en Cuda.

Parallel

Het idee achter GPGPU is dat een 3D-chip in de basis compleet anders is opgebouwd dan een CPU. Een normale processor is er immers op gemaakt om overweg te kunnen met een grote verscheidenheid aan algoritmes. In feite zou je mogen zeggen dat een CPU "alles kan, maar nergens echt in uitblinkt". Een GPU is juist primair ontwikkeld voor een beperkt aantal type berekeningen, namelijk alle soorten dataverwerking die komt kijken bij het produceren van 3D-beelden. Een GPU "kan slechts een beetje, maar is daar juist wel erg goed in".

Het belangrijkste kenmerk van 3D-berekeningen is dat er een hoge mate van parallellisme is; in normale mensentaal betekent dit, dat een GPU heel vaak dezelfde berekening moet uitvoeren op verschillende stukken data. Daar is de chip ook op gemaakt: een moderne GPU heeft tientallen of zelfs honderden shader-units – in feite een scoort mini-cores – die stuk voor stuk niet al te krachtig zijn, maar als groep heel snel grote hoeveelheden data op een gelijke manier kunnen verwerken. Een CPU is juist meer serieel ingesteld en zodoende geoptimaliseerd om achter elkaar compleet verschillende typen bewerkingen uit te voeren.

Nu is het berekenen van 3D-beelden niet de enige soort dataverwerking die je relatief gemakkelijk kunt opdelen in honderden verschillende deelprojecten met elk een gelijksoortige bewerking, er zijn veel meer taken te bedenken. Denk aan zaken als physics-berekeningen, cryptografie, beeldherkenning of videocompressie. Wat begon met een paar studenten die bij wijze van proef dergelijke algoritmes naar de GPU overzetten, is inmiddels een belangrijke focus voor zowel ATI als nVidia.

0
*