3 vragen over Videokaartspecificaties die u altijd al had willen beantwoorden
In de afgelopen week had ik een stuk geschreven over obscure GPU-specificaties. Hoewel het enkele van de meest verwarrende delen van de specificaties in videokaarten blootlegde, hebben een aantal lezers zich met het artikel beziggehouden en gezegd dat het gedetailleerder had kunnen zijn. Het zou alleen passend zijn om meer vragen te beantwoorden over de componenten van de grafische kaart die niet noodzakelijk door dat artikel in dit stuk werden beantwoord. Zonder verder oponthoud, hier zijn enkele antwoorden op de meest prangende vragen over specificaties voor videokaarten die niet volledig worden uitgelegd in termen die iedereen op internet kan begrijpen.
Wat is CUDA en wat is een CUDA-kern?
Computed Unified Device Architecture (CUDA) is een functie in de meeste nieuwere Nvidia-videokaarten waarmee de computer een deel van de GPU (of zelfs de volledige GPU) als een "assistent" voor de processor kan gebruiken. GPU's bevatten veel meer spieren dan computers, maar hun architectuur is in het verleden meer geoptimaliseerd voor het berekenen van tekenafstanden en polygonen (wat de reden is dat ze in de eerste plaats op grafische kaarten worden geslagen). CUDA transformeert de GPU in een wiskunde-geek die snel cijfers kan maken, met behulp van de krankzinnige spierkracht van een GPU voor andere zaken dan alleen het weergeven en weergeven van afbeeldingen op het scherm.
In het artikel waarnaar in het begin werd gelinkt, legde ik uit dat SETI @ Home voordeel haalt uit CUDA door grafische kaarten te gebruiken om berekeningen uit te voeren. Dit is slechts een voorbeeld van hoe CUDA kan worden gebruikt om geweldige dingen te doen. CUDA kan ook worden gebruikt om video te transcoderen (converteer het van het ene formaat naar het andere) met behulp van een speciale codec die communiceert met de hardware. Nvidia's encoder staat bekend als NVENC en het is een krachtige manier om video veel sneller te coderen met behulp van de videomachine van de grafische kaart in plaats van het uitputten van je CPU. Als u een ontwikkelaar bent en u geïnteresseerd bent om NVENC in uw programma op te nemen, kunt u de bronnen van Nvidia hier bekijken.
OK, dus nu weten we wat CUDA is. Hoe zit het met CUDA-kernen?
Een CUDA-kern is een segment van de GPU dat kan worden gebruikt voor de doeleinden van CUDA. Het is het deel van de GPU dat door sommige controleprogramma's de "Video Engine" wordt genoemd. Elke kern is een klein stukje van de hele GPU-architectuur die kan worden gebruikt voor zowel traditionele 3D-rendering als CUDA-specifieke functies. In de meeste grafische kaarten is de volledige GPU beschikbaar voor CUDA-werk. Dit betekent dat het aantal CUDA-kernen in de GPU bepaalt hoeveel kernen de hele GPU heeft.
Waarom hebben GPU's zoveel kernen?
Hoewel de huidige CPU's meestal vier tot acht kernen hebben, zijn er grafische kaarten met meer dan 5000 cores! Waarom is dat, en waarom kunnen CPU's niet zo'n waanzinnig veel kernen hebben?
De GPU en CPU zijn beide gemaakt voor verschillende doeleinden. Hoewel een CPU op machinecode reageert om met verschillende stukken hardware op uw computer te communiceren, is de GPU slechts voor één specifiek doel gemaakt: het is de bedoeling dat polygonen de prachtige scènes weergeven die we in 3D-versnelde omgevingen zien en vervolgens vertalen al deze dingen in een afbeelding 60 keer of meer per seconde. Dat is een grote order voor een CPU, maar omdat de GPU gecompartimenteerde polygoonprocessors heeft, kan deze de werkbelasting over al zijn kernen splitsen om binnen enkele milliseconden een grafische omgeving te creëren.
Dat is waar de kernen binnenkomen. Een GPU heeft al die kernen nodig om gigantische taken in kleine stukjes te splitsen, waarbij elke kern zijn eigen deel van de scène afzonderlijk verwerkt. Toepassingen die CPU's gebruiken (zoals uw browser) profiteren niet van zo'n enorm aantal kernen, tenzij elke kern de spierkracht heeft van een volledige verwerkingseenheid. Uw browser is afhankelijk van snelle toegang tot informatie in tegenstelling tot de compartimentering van taken. Wanneer u een webpagina laadt of een PDF-bestand leest, heeft u maar één verwerkingsstroom nodig om dat allemaal te laden.
Maakt meer RAM een videokaart beter?
RAM is een beetje een vreemd grijs gebied met videokaarten. Hoewel het leuk is om zoveel mogelijk RAM te hebben, moet je ook al dat RAM-geheugen kunnen gebruiken . Een videokaart met 1024 MB RAM en een 192-bit-brede bus gaat veel beter presteren dan een videokaart met 2048 MB RAM en dezelfde bus.
Zoals ik in het vorige stuk heb uitgelegd, zal de 2048 MB videokaart iets ervaren dat 'bandbreedte-bottlenecking' wordt genoemd, omdat de bus (de weg waarop gegevens worden afgelegd) niet breed genoeg is om een voldoende hoeveelheid gegevens in een korte hoeveelheid tijd.
Kortom, nee, meer RAM is niet noodzakelijkerwijs beter als de videokaart geen brede bus heeft. Hier is mijn gids voor de juiste busbreedte: uw videokaart moet maximaal acht keer de hoeveelheid RAM in megabytes hebben als het aantal bits in de bus. Een kaart van 1024 MB moet bijvoorbeeld ten minste een 128-bit-bus hebben (1024/8 = 128). Voor een kaart van 2048 MB raad ik dus minimaal 256 bits aan.
Als je nog steeds meer vragen hebt, moet je ze in de reacties hieronder vragen!