Als je Nvidia en AMD hebt gevolgd, weet je waarschijnlijk van de specificaties van hun GPU's die beide bedrijven graag gebruiken. Nvidia benadrukt bijvoorbeeld graag het aantal CUDA-kernen om zijn aanbod te onderscheiden van AMD's kaarten, terwijl AMD hetzelfde doet met zijn rekeneenheden.
Maar wat betekenen deze termen eigenlijk? Is een CUDA-kern hetzelfde als een rekeneenheid? Zo niet, wat is dan het verschil?
Laten we deze vragen beantwoorden en kijken wat een AMD GPU anders maakt dan een Nvidia-kaart.
Algemene architectuur van een GPU
Alle GPU's, of ze nu van AMD, Nvidia of Intel zijn, werken over het algemeen op dezelfde manier. Ze hebben dezelfde hoofdcomponenten en de algehele lay-out van die componenten is vergelijkbaar op een hoger niveau.
Dus vanuit een top-down perspectief zijn alle GPU's hetzelfde.
Als we kijken naar de specifieke, gepatenteerde componenten die elke fabrikant in hun GPU verpakt, beginnen de verschillen naar voren te komen. Nvidia bouwt bijvoorbeeld Tensor-cores in hun GPU's, terwijl AMD GPU's geen Tensor-cores hebben.
Op dezelfde manier gebruikt AMD componenten zoals de Infinity Cache, die Nvidia GPU's niet hebben.
Dus om het verschil tussen Compute Units (CU's) en CUDA-cores te begrijpen, moeten we eerst naar de algehele architectuur van een GPU kijken. Zodra we de architectuur kunnen begrijpen en zien hoe een GPU werkt, kunnen we duidelijk het verschil zien tussen Compute Units en CUDA-cores.
Hoe werkt een GPU?
Het eerste dat u moet begrijpen, is dat een GPU duizenden of zelfs miljoenen instructies tegelijkertijd verwerkt. Daarom heeft een GPU veel kleine, zeer parallelle kernen nodig om die instructies af te handelen.
Deze kleine GPU-kernen verschillen van grote CPU-kernen die één complexe instructie per kern tegelijk verwerken.
Een Nvidia RTX 3090 heeft bijvoorbeeld 10496 CUDA-kernen. Aan de andere kant heeft de topklasse AMD Threadripper 3970X slechts 64 cores.
We kunnen GPU-cores dus niet vergelijken met CPU-cores. Er zijn er nogal wat verschillen tussen een CPU en GPU omdat de ingenieurs ze hebben ontworpen om verschillende taken uit te voeren.
Bovendien zijn, in tegenstelling tot een gemiddelde CPU, alle GPU-kernen gerangschikt in clusters of groepen.
Ten slotte heeft een cluster van kernen op een GPU andere hardwarecomponenten zoals textuurverwerkingskernen, drijvende-komma-eenheden en caches
om miljoenen instructies tegelijkertijd te verwerken. Dit parallellisme definieert de architectuur van een GPU. Van het laden van een instructie tot het verwerken ervan, een GPU doet alles volgens de principes van parallelle verwerking.
- Eerst ontvangt de GPU een instructie om te verwerken uit een wachtrij met instructies. Deze instructies zijn bijna altijd overwegend vectorgerelateerd.
- Om deze instructies op te lossen, geeft een threadplanner ze vervolgens door aan individuele kernclusters voor verwerking.
- Na ontvangst van de instructies wijst een ingebouwde kernclusterplanner de instructies toe aan kernen of verwerkingselementen voor verwerking.
- Ten slotte verwerken verschillende kernclusters verschillende instructies parallel en worden de resultaten op het scherm weergegeven. Dus alle afbeeldingen die je op het scherm ziet, bijvoorbeeld een videogame, zijn slechts een verzameling van miljoenen verwerkte vectoren.
Kortom, een GPU heeft duizenden verwerkingselementen die we 'kernen' noemen, gerangschikt in clusters. Planners wijzen werk toe aan deze clusters om parallellisme te bereiken.
Wat zijn rekeneenheden?
Zoals te zien is in de vorige sectie, heeft elke GPU clusters van kernen met verwerkingselementen. AMD noemt deze kernclusters 'Compute Units'.
www.youtube.com/watch? v=uu-3aOgenWQ&t=202s
Rekeneenheden zijn een verzameling verwerkingsbronnen zoals parallelle rekenkundige en logische eenheden (ALU's), caches, drijvende-komma-eenheden of vectorprocessors, registers en wat geheugen om threads op te slaan informatie.
Om het simpel te houden, adverteert AMD alleen het aantal rekeneenheden van hun GPU's en geeft het geen details over de onderliggende componenten.
Dus, wanneer u het aantal rekeneenheden ziet, beschouw ze dan als een groep verwerkingselementen en alle gerelateerde componenten.
Wat zijn CUDA-kernen?
Waar AMD het graag simpel houdt met het aantal Compute Units, maakt Nvidia het ingewikkeld door termen als CUDA-cores te gebruiken.
CUDA-kernen zijn niet bepaald kernen. Het zijn gewoon drijvende-komma-eenheden die Nvidia voor marketingdoeleinden graag als kernen noemt. En, als u het zich herinnert, kernclusters hebben veel ingebouwde drijvende-komma-eenheden. Deze eenheden voeren vectorberekeningen uit en niets anders.
Dus ze een "kern" noemen, is pure marketing.
Daarom is een CUDA-kern een verwerkingselement dat drijvende-kommabewerkingen uitvoert. Er kunnen veel CUDA-kernen in een enkele kerncluster zijn.
Ten slotte noemt Nvidia kernclusters "Streaming van multiprocessors of sms'en." SM's zijn gelijk aan AMD Compute Units, aangezien Compute Units zelf kernclusters zijn.
Wat is het verschil tussen rekeneenheden en CUDA-kernen?
Het belangrijkste verschil tussen een rekeneenheid en een CUDA-kern is dat de eerste verwijst naar een kerncluster en de laatste verwijst naar een verwerkingselement.
Om dit verschil beter te begrijpen, nemen we het voorbeeld van een versnellingsbak.
Een versnellingsbak is een eenheid die uit meerdere versnellingen bestaat. Je kunt de versnellingsbak zien als een rekeneenheid en de afzonderlijke versnellingen als drijvende-komma-eenheden van CUDA-kernen.
Met andere woorden, waar rekeneenheden een verzameling componenten zijn, vertegenwoordigen CUDA-kernen een specifieke component binnen de verzameling. Compute Units en CUDA-cores zijn dus niet vergelijkbaar.
Dit is ook de reden waarom wanneer AMD het aantal rekeneenheden voor hun GPU's noemt, ze altijd vrij lager zijn in vergelijking met concurrerende Nvidia-kaarten en hun CUDA-kerntelling. Een gunstiger vergelijking zou zijn tussen het aantal Streaming Multiprocessors van de Nvidia-kaart en het aantal Compute Units van de AMD-kaart.
Verwant: AMD 6700XT vs. Nvidia RTX 3070: wat is de beste GPU onder $ 500?
CUDA-kernen en rekeneenheden zijn verschillend en niet vergelijkbaar
Bedrijven hebben de gewoonte om verwarrende terminologie te gebruiken om hun producten in het beste licht te presenteren. Dit brengt niet alleen verwarring bij de klant, maar maakt het ook moeilijk om bij te houden wat er toe doet.
Zorg er dus voor dat u weet waar u op moet letten bij het zoeken naar een GPU. Als u ver weg blijft van marketingjargon, wordt uw beslissing een stuk beter en stressvrij.
Als je een gamer bent, kom je misschien in de verleiding om je grafische kaart te upgraden naar NVIDIA's 30-serie. Maar is het het waard?
Lees volgende
- Technologie uitgelegd
- Grafische kaart
- Nvidia
- AMD-processor
Fawad is een fulltime freelance schrijver. Hij houdt van technologie en eten. Als hij niet aan het eten is of over Windows schrijft, is hij ofwel videogames aan het spelen of schrijft hij voor zijn eigenzinnige blog Techsava.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren