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 ze 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-processor. 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 tijdwinst 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.[bron?] De kostprijs van de complexe GPU’s is fors gedaald sinds de stijging van de verkoop van computerspellen. Vanaf 2020 was er weer sprake van een hogere kostprijs voor GPU's, als gevolg van schaarste aan videokaarten (door onder andere een algeheel chiptekort).
Gebruikmaken 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 GPU's 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.
Zie ook
- CUDA
- OpenCL
- Nvidia
- GPU-cluster
Externe links
- (en) GPGPU.org - officiële website
- (en) NVIDIA
- (en) What is GPU Computing?