GPGPU
GPGPU (General-Purpose computing on Graphics Processing Units) is het gebruikmaken van een GPU (graphics processing unit), welke hoofdzakelijk belast is met het aansturen van de graphics van computerprogramma’s. GPU's zijn te vinden op videokaarten voor pc's, ze kunnen geïntegreerd zijn in central processing units (CPU) en ze zijn verkrijgbaar als losse module.

In hedendaagse computers worden enerzijds de meeste programma’s uitgevoerd door de CPU. Anderzijds beschikken computers meestal eveneens over grafische kaarten met een processor met meer dan 1000 rekeneenheden, die vandaag de dag programmeerbaar is.

De eerste programmeerbare grafische kaarten maakten gebruik van shaders. Deze programma’s waren in staat pixelmatige manipulaties te doen of geometrische waarden te manipuleren. Om deze shaders te kunnen uitvoeren beschikten deze over een vrij basale processor, die kon variëren in functie van de uit te voeren manipulatie (pixels of geometrische waarden). Naarmate de tijd verstreek heeft een nieuw type processor het daglicht gezien, namelijk de stream-processoren. Deze processoren kunnen gebruikmaken van verschillende rekeneenheden in een parallelle structuur. Deze processoren beschikken over een kernel, die een tabel aan data voorgeschoteld krijgt (stream), die dan verwerkt dient te worden. Opdat deze verwerkt zou kunnen worden en er berekeningen mee kunnen uitgevoerd worden, wordt de stream door een microcontroller opgesplitst in kleinere onderdelen, namelijk threads, die dan over de verschillende stream-processoren worden verdeeld. Deze berekeningen worden dan op een parallelle wijze uitgevoerd zodat een tijdswinst behaald wordt. 

Ten gevolge van deze parallelle architectuur kunnen de prestaties van een triviale GPU soms 2000% procent hoger liggen dan deze van een CPU. De kostprijs van de complexe GPU’s is fors gedaald sinds de stijging van de verkoop van computerspellen. 

Gebruik maken van GPGPU kan alleen als de broncode van het programma beschikbaar is omdat deze opnieuw gecompileerd en deels aangepast moet worden. Een standaardtaal voor het programmeren van GPUs is OpenCL (Open Compute Language), een fabrikant-afhankelijke taal is bijvoorbeeld CUDA van Nvidia. Beiden lijken op de taal C.

GPGPU's worden voornamelijk gebruikt door de wetenschap, voor computerspellen en in commerciële omgevingen waar veel gegevens verwerkt moeten worden.
Q183484
graphics processing unit
Concept
Q150971
graphics
Concept
Q40056
computerprogramma
Concept
Q4308
videokaart
Concept
Q16338
pc
Concept
Q5300
central processing units
Concept
Q80006
programmeerbaar
Concept
Q355198
pixel
Concept
Q9662
kernel
Concept
Q165678
microcontroller
Concept
Q7889
computerspel
Concept
Q128751
broncode
Concept
Q47506
gecompileerd
Concept
Q9143
standaardtaal
Concept
Q681360
OpenCL
MEDIA
Q477690
CUDA
MEDIA
Q182477
Nvidia
ORG
Q15777
C
Concept
Q336
wetenschap
Concept
Q601401
commerciële
Concept
Q971505
GPGPU
Concept
Q971505
GPGPU
Concept
Q971505
GPGPU
Concept
facet of
use
part of
part of
instance of
instance of
developer