We've been tracking an issue with GeForce GTX 970 memory use for a little while now, most notably via this thread in our forums. Some GeForce GTX 970 owners have noticed unusual behavior from these cards compared to the GTX 980. Specifically, the GTX 970 sometimes appears to allocate less than its full 4GB of memory in cases where the GTX 980 does. Also, when asked to go beyond 3.5GB using a directed test, GTX 970 memory bandwidth appears to drop. We even discussed the issue on the Alt+Tab Show last night.
Nvidia has been looking into the issue and has now issued the following statement:
The GeForce GTX 970 is equipped with 4GB of dedicated graphics memory. However the 970 has a different configuration of SMs than the 980, and fewer crossbar resources to the memory system. To optimally manage memory traffic in this configuration, we segment graphics memory into a 3.5GB section and a 0.5GB section. The GPU has higher priority access to the 3.5GB section. When a game needs less than 3.5GB of video memory per draw command then it will only access the first partition, and 3rd party applications that measure memory usage will report 3.5GB of memory in use on GTX 970, but may report more for GTX 980 if there is more memory used by other commands. When a game requires more than 3.5GB of memory then we use both segments.
We understand there have been some questions about how the GTX 970 will perform when it accesses the 0.5GB memory segment. The best way to test that is to look at game performance. Compare a GTX 980 to a 970 on a game that uses less than 3.5GB. Then turn up the settings so the game needs more than 3.5GB and compare 980 and 970 performance again.
Here’s an example of some performance data:
Shadows of Mordor
<3.5GB setting = 2688x1512 Very High
>3.5GB setting = 3456x1944
<3.5GB setting = 3840x2160 2xMSAA
>3.5GB setting = 3840x2160 135% res
Call of Duty: Advanced Warfare
<3.5GB setting = 3840x2160 FSMAA T2x, Supersampling off
>3.5GB setting = 3840x2160 FSMAA T2x, Supersampling on
On GTX 980, Shadows of Mordor drops about 24% on GTX 980 and 25% on GTX 970, a 1% difference. On Battlefield 4, the drop is 47% on GTX 980 and 50% on GTX 970, a 3% difference. On CoD: AW, the drop is 41% on GTX 980 and 44% on GTX 970, a 3% difference. As you can see, there is very little change in the performance of the GTX 970 relative to GTX 980 on these games when it is using the 0.5GB segment.
Interesting. We explored a similar datapath issue related to the GTX 970's disabled SMs in this blog post. In that case, we looked at why the GTX 970 can't make full use of its 64 ROP partitions at once when drawing pixels. Sounds to me like this issue is pretty closely related.
Beyond satisfying our curiosity, though, I'm not sure what else to make of this information. Like the ROP issue, this limitation is already baked into the GTX 970's measured performance. Perhaps folks will find some instances where the GTX 970's memory allocation limits affect performance more dramatically than in Nvidia's examples above. If so, maybe we should worry about this limitation. If not, well, then it's all kind of academic.
Update: Nvidia Senior VP of Hardware Engineering Jonah Alben shared more information with us on how the GTX 970's unusual memory config works and how it affects performance. The chip is working as intended, he said, but Nvidia "screwed up" communicating the GPU's specifications to reviewers.