Nvidia legt geheugenprobleem GTX 970 uit en noemt communicatie 'screwed-up'

Jonah Alben, de senior vice-president van Nvidia's GPU-engineering-divisie, heeft vandaag gereageerd op de geruchten over een geheugenprobleem bij de GeForce GTX 970. Hij noemde de communicatie in de reviewers-guide voor journalisten 'screwed up', veroorzaakt doordat het marketingteam niet op de hoogte was van de volledige ins en outs van de Maxwell-architectuur.

Om te begrijpen waar het probleem zit, moet je eerst weten dat de GTX 970 drie uitgeschakelde shader-multiprocessors of SM's heeft. Die zie je terug als greyed-out SM's in onderstaand figuur - dat uiteraard flink versimpeld is ten opzichte van de werkelijkheid. De rest van de architectuur bestaat uit vier blokken, elk met twee 32-bit verbindingen, die samen de 256-bit geheugenbus vormen. Elk blok beschikt over zijn eigen L2-cache en geheugencontroller. Eén stuk L2-cache is uitgeschakeld bij de GTX 970 - dit diagram zou bij de GTX 980 volledig zwart zijn. De crossbar zorgt voor communicatie tussen de verschillende SM's, brokken cache en geheugencontrollers.

Klik voor een grotere versie.

Nieuw is de 'feature' om zo'n stuk cache uit te schakelen. Om de laatste 32-bit geheugencontroller aan te kunnen blijven sturen, wordt er gebruikgemaakt van een zogenaamde buddy interface. Daardoor kan Nvidia een 256-bit geheugenbus activeren zonder massaal chips af te moeten keuren, omdat niet alle L2-cache werkt. Er zijn overigens ook GM204-chips waarbij Nvidia een volledig blok uitschakelt en er dus een 192-bit geheugenbus overblijft, zoals de GTX 970M voor notebooks.

Elke stuk L2-cache is echter gelinkt aan een aantal ROP's. Dit betekent dat er effectief minder van die pipelines in gebruik zijn, terwijl Nvidia het volledige aantal ROP's communiceerde bij de lancering. Ook is de L2-cache kleiner dan eerder bekendgemaakt: 1.792 KB in plaats van 2.048 KB.

 GTX 970 (oorspronkelijk)GTX 970 (gecorrigeerd)
GPU GM204 GM204
CUDA-cores 1664 1664
Texture-units 104 104
ROP's 64 56
Geheugenklok 7 GHz GDDR5 7 GHz GDDR5
Geheugenbus 256-bit 256-bit (224-bit in praktijk)
Videogeheugen 4GB 4GB
L2-cache 2 MB 1,75 MB
FP64 1/32 FP32 1/32 FP32

De GeForce GTX 970 gebruikt minder ROP's en L2-cache dan Nvidia eerst aangaf.

Maar waar komt dat geheugenprobleem dan vandaan? Zoals je hebt gezien moeten de laatste twee geheugencontrollers één stuk L2-cache en één verbinding met de crossbar delen. Dat maakt van de laatste halve gigabyte videogeheugen een achilleshiel. Bij de GTX 980 kan er bovendien parallel worden geschreven naar acht geheugenchips: telkens 1 KB per chip en na de achtste weer van voren af aan.

We komen nu dichter bij de oorzaak. Bij de GTX 970 heeft Nvidia het geheugen opgesplitst in één grote partitie van 3,5 GB, die beschikt over zeven geheugencontrollers. Dat is niet ontzettend veel langzamer dan simultaan lezen van of schrijven naar het geheugen van de GTX 980, dat dus bestaat uit acht controllers. De tweede partitie, van een halve gigabyte, maakt gebruik van slechts één geheugencontroller en haalt dus drastisch lagere doorvoersnelheden. Dat is een ontwerpbeslissing: 3,5 GB snel geheugen en 0,5 GB langzamer geheugen.

Normaal gesproken wordt eerst het videogeheugen gebruikt en gaat je systeem als dat vol is over op het veel langzamere systeemgeheugen, wat anno 2015 meestal DDR3 of DDR4 is. In het geval van de GTX 970 zijn er drie 'partities', op volgorde van prioriteit de 3,5 GB snel GDDR5, de 0,5 GB langzamer GDDR5 en vervolgens het werkgeheugen. Daarnaast wordt zogenaamde cold data, die naar verwachting niet (meer) nodig is, bij de GTX 970 al bij het bereiken van 3,5 GB uit het videogeheugen gehaald. Bij de GTX 980 gebeurt dat pas bij het bereiken van de 4GB-limiet.

Velen zullen zich dan afvragen of de GTX 970 niet beter een videokaart met 3,5 GB geheugen genoemd had kunnen worden. Daar is Alben het niet mee eens. Hij noemt de halve gigabyte 'langzaam' videogeheugen een stuk bruikbaarder dan de nog flink tragere PCI-Express-bus, waarover data naar het systeemgeheugen moet gaan.

PartitieBandbreedte
Snelle gedeelte (3,5 GB) 196 GB/s
Langzame gedeelte (512 MB) 28 GB/s
DDR3 via PCI-Express 16 GB/s

Daarom voelt het team dat de GTX 970 ontwikkelde zich niet schuldig. "We zijn trots op wat we hebben gemaakt en denken dat het een goed product is. We dachten dat deze feature het een beter product zou maken en denken dat doel bereikt te hebben. We willen zeker weten dat mensen het begrijpen."

Het is lastig om de GTX 970 in een benchmark te betrappen op serieuze prestatieproblemen. Het aantal games dat 4 GB aan videogeheugen nuttig kan vullen is zeer beperkt en als dat al zo is, dan wordt nooit alle data tegelijkertijd gebruikt en staat de belangrijkste data vrijwel altijd in het snelle gedeelte. Deze kwestie maakt de GeForce GTX 970 niet per se een slechtere keuze en de prestaties zoals je die in onze benchmarks hebt gezien zijn waarheidsgetrouw, maar de manier waarop de specificaties zijn gecommuniceerd had beter gekund. Het vormen van een mening laten we aan jullie over.

Bronnen: PC Perspective, The Tech Report, AnandTech


1 besproken product

Vergelijk   Product Prijs
Nvidia GeForce GTX 970

Nvidia GeForce GTX 970

  • GM204
  • 1664 cores
  • 1050 MHz
  • 4096 MB
  • 256 bit
  • DirectX 12 fl 12_1
  • PCI-Express 3.0 x16
Niet verkrijgbaar
« Vorig bericht Volgend bericht »
0