Shaders zijn programma's die op de GPU worden uitgevoerd (zie ook
Wikipedia. Veel mensen gebruiken de naam foutief als aanduiding voor de logica in de GPU die deze shadercode uitvoeren, maar om deze eenheden shaders te noemen is vergelijkbaar met een CPU "programma" of "assemblycode" te noemen. Staat nogal ongeinformeerd, of zelfs dom, dus.
De juiste naam in dit geval is ALU's. Een ALU is een logicaeenheid die gegevens uit registers laadt, instructies uitvoert en gegevens wegschrijft naar registers. De makkelijkste manier om een moderne GPU te omschrijven is als volgt: moderne GPUs als G80, R600 en afgeleiden, beschikken over een aantal
SIMD eenheden met elk een array van ALUs. Bij G80 zijn er 16 SIMDs van 8 ALUs, bij R600 4 SIMDs van 16 ALU blokken. Daarbij bestaat elke ALU blok in R600 weer uit vier simpele ALUs en een "vette" ALU voor complexe operaties.
NVIDIA's marketingdepartement bedacht dat het cool zou klinken om elke ALU een stream processor te noemen, en om niet achter te blijven heeft ATI deze naam ook maar overgenomen, waardoor ze bij 320 stream processors komen, met als gevolg dat er mensen zijn die denken dat er 128 of 320 "cores" op respectievelijk G80 of R600 zitten.
De realiteit is echter een stuk minder indrukwekkend, want de ALU's zijn niet onafhankelijk van elkaar, zoals bij een echte CPU core het geval zou zijn. Elke ALU in een SIMD voert tegelijk dezelfde operatie uit (vandaar het single instruction multiple data), dus een G80 SIMD eenheid kan per clock dezelfde operatie (een instructie uit een shader) uitvoeren op acht verschillende data-eenheden (pixels, vertices).
Uiteraard is de werkelijkheid nog weer een stukje complexer, en er zit nog zoveel interessants aan de rest van de GPU architectuur dat ik zo twee pagina's verder vol kan schrijven met alleen maar basisinformatie, maar dan wordt het een beetje off-topic. Om on-topic te blijven: gebruik alsjeblieft de juiste termen in het vervolg! Geen shaders, als het even kan zelfs geen "stream processors" (hoewel dat al beter is), en bij voorkeur gewoon ALU's.