Video grafische kaarten (GPU's) zijn gespecialiseerde elektronische circuits die zijn ontworpen om het geheugen snel te manipuleren en te wijzigen om het maken van afbeeldingen in een framebuffer, bedoeld voor uitvoer naar een weergaveapparaat, te versnellen. Ze ontlasten de intensieve grafische verwerking van de centrale verwerkingseenheid (CPU), waardoor vloeiendere beelden met een hogere resolutie mogelijk zijn. Hier is een overzicht van hoe ze werken:
1. Gegevens ontvangen van de CPU:
* De CPU verzendt instructies en gegevens (bijvoorbeeld modellen, texturen, verlichtingsinformatie) naar de GPU via een snelle interface zoals PCIe. Deze gegevens beschrijven de 3D-scène die moet worden weergegeven.
2. Gegevensverwerking (Parallelle verwerking):
* Dit is waar de kracht van de GPU ligt. In plaats van gegevens sequentieel te verwerken zoals een CPU, gebruiken GPU's massaal parallelle verwerking. Ze bevatten duizenden kleinere, eenvoudigere verwerkingseenheden (cores) die tegelijkertijd op verschillende delen van de scène werken. Hierdoor kunnen ze de complexe berekeningen die gepaard gaan met het renderen van afbeeldingen veel sneller uitvoeren dan een CPU.
* Vertex-shaders: Deze processors verwerken de individuele hoekpunten (punten) van 3D-modellen. Ze transformeren de hoekpunten op basis van de positie van de camera, de belichting en andere factoren.
* Geometrie-shaders (optioneel): Deze shaders voeren complexere bewerkingen uit op de geometrie, waardoor mogelijk extra geometrie wordt gegenereerd of bestaande geometrie wordt gewijzigd.
* Pixel Shaders (Fragment Shaders): Deze processors bepalen de kleur en andere eigenschappen van elke pixel op het scherm. Ze houden rekening met verlichting, texturen en andere effecten om de uiteindelijke pixelkleur te berekenen.
* Rasterisatie: Deze fase zet de verwerkte 3D-driehoeken om in 2D-pixels die op het scherm kunnen worden weergegeven. Hierbij wordt bepaald welke pixels door elke driehoek worden bedekt.
3. Textuurtoewijzing en bemonstering:
* Texturen (afbeeldingen) worden toegepast op 3D-modellen om details en realisme toe te voegen. De GPU haalt deze texturen op en past deze toe op de oppervlakken van de modellen tijdens het weergaveproces. Dit omvat het bemonsteren van de textuurgegevens op verschillende punten om de juiste kleur voor elke pixel te bepalen.
4. Framebuffer:
* De weergegeven pixels worden opgeslagen in de framebuffer (VRAM – Video RAM). Dit is een speciaal snel geheugen op de GPU.
5. Uitvoer naar weergave:
* Zodra het frame voltooid is, stuurt de GPU de beeldgegevens van de framebuffer naar de monitor via een uitvoerinterface (HDMI, DisplayPort, enz.). De monitor geeft vervolgens het beeld weer.
Belangrijkste componenten van een GPU:
* GPU-kern: Bevat de verwerkingseenheden (kernen) die de renderingberekeningen uitvoeren.
* VRAM (Video-RAM): Snel geheugen waarin texturen, frames en andere gegevens worden opgeslagen die nodig zijn voor weergave. Groter VRAM zorgt voor hogere resoluties en meer gedetailleerde texturen.
* Geheugenbus: Verbindt de GPU-kern met het VRAM en bepaalt de snelheid waarmee gegevens kunnen worden overgedragen.
* CUDA-kernen (Nvidia) / streamprocessors (AMD): Dit zijn de individuele verwerkingseenheden binnen de GPU-kern. Meer kernen betekenen over het algemeen een snellere weergave.
* Koelsysteem: Zorgt ervoor dat de GPU niet oververhit raakt vanwege de intensieve berekeningen die hij uitvoert.
Samenvattend fungeert een grafische videokaart als een gespecialiseerde coprocessor, die het zware werk van de beeldweergave wegneemt van de CPU, waardoor vloeiende, hifi-graphics voor games, videobewerking en andere grafisch veeleisende toepassingen mogelijk worden gemaakt. De parallelle verwerkingsarchitectuur is wat hem onderscheidt van een CPU en hem in staat stelt uit te blinken in taken waarbij sprake is van enorm parallellisme van gegevens. |