GPGPU-prestaties van moderne videokaarten

Inhoudsopgave
  1. 1. Inleiding
  2. 2. Programmeeromgevingen
  3. 3. Soorten programma’s
  4. 4. Test
  5. 5. Fotobewerking
  6. 6. Video-encoding
  7. 7. Videobewerking
  8. 8. Hardware.Info TV
  9. 9. 3D-renderen en wachtwoorden kraken
  10. 10. Wetenschappelijke algoritmes
  11. 11. Conclusie

Programmeeromgevingen

Toen GPGPU net in opkomst was, waren het voornamelijk universiteiten die er meer experimenteerden. Dat was in eerste instantie nog best lastig, want op dat moment waren er nog geen programmeeromgevingen om een GPU voor andere taken dan 3D-beelden te gebruiken. De enige manier om dat te doen was om de chip aan te sturen, als ware deze bezig met 3D-beelden, terwijl dat niet het geval is. Het resultaat was zeer complexe, ondoorgrondelijke code, die zeer foutgevoelig bleek. Sinds 2005 is er echter veel veranderd en zijn na wat andere experimenten diverse van die oh zo belangrijke programmeeromgevingen gecreëerd.

De programmeeromgeving die GPGPU zonder meer een flink boost heeft gegeven, is Nvidia’s eigen CUDA-technologie. Nvidia was de eerste die een goede en gebruiksvriendelijke methode ontwikkelde om GPU’s voor andere taken in te zetten en zorgde dankzij CUDA ook voor de juiste programmeertools en standaard algoritmes. Een nadeel van CUDA is dat het een gesloten ecosysteem is: CUDA-software werkt niet op AMD GPU’s. Vandaar dat ontwikkelaars van consumentensoftware altijd huiverig zijn geweest het toe te passen. In de professionele en wetenschappelijke wereld, waar men minder terughoudend is zich op één architectuur vast te leggen en goede ondersteuning en prestaties veel belangrijker zijn, was en is CUDA wél een groot succes. Het heeft Nvidia ook geen windeieren gelegd: bij veel universiteiten, onderzoekcentra en bedrijven staan inmiddels vele supercomputers opgebouwd uit tientallen of soms honderden professionele Nvidia-kaarten (de Tesla-reeks), veelal draaiend op met CUDA ontwikkelde software.


Nvidia publiceerde vorig jaar deze infographic. De getallen geven aan de GPGPU in de professionele wereld duidelijk op de kaart staat.

Zonder meer de populairste GPGPU programmeeromgeving op dit moment is OpenCL, oorspronkelijk ontwikkeld door Apple, maar inmiddels in handen van de Khronos Group, een groot consortium met belangrijke namen als AMD, Nvidia, Intel en IBM. OpenCL is een open standaard: het werkt op alle soorten GPU’s (AMD, Nvidia én Intel), kan code ook op conventionele CPU’s uitvoeren en is beschikbaar voor alle belangrijke besturingssystemen, waaronder Windows, Linux en Mac OS. Zeker voor GPGPU-software die door vele (professionele) gebruikers wordt toegepast, is OpenCL inmiddels dé standaard.

Ten slotte is er nog DirectCompute, onderdeel van DirectX 10 en DirectX 11. Ook dit is een GPGPU-programmeeromgeving die geschikt is voor alle soorten videokaarten, maar als onderdeel van DirectX uiteraard enkel voor het Windows platform beschikbaar is. Omdat DirectCompute goed samenwerkt met de andere onderdelen van DirectX wordt het veel toegepast voor GPGPU-algoritmes binnen 3D-games. Voor taken die niets met games van doen hebben is DirectCompute in feite ook geschikt, maar wordt het minder vaak toegepast.


OpenCL is de meest gebruikte, open standaard voor GPGPU

Advertentie
0