Since few days, there is a hot topic in the graphics cards community: the VRAM limitations of the GeForce GTX 970. To make the story short (see links at the end of the article), the GTX 970 comes with 4GB of GDDR5 memory. Some GTX 970 owners have noticed that the VRAM allocation is limited to 3.5GB even if the board has 4GB of VRAM. The games they played couldn’t allocate all the 4GB for game resources.
Of course, major review sites contacted NVIDIA and here is NVIDIA’s answer:
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.
This morning I did a quick VRAM allocation test using GLSL Hacker in order to see this 3.5GB limit. I coded a small test that creates tons of textures to fill the graphics memory. This test is available in the host_api/Misc/GTX970-VRAM/ folder of the code sample pack.
And guess what? I didn’t see that 3.5GB limit. I could allocate 4GB of graphics memory to store all my dummy textures:
On this youtube video I found a Direct3D test that does the same thing: allocating a lot of textures. And this time I saw the limit:
To make you life easier, I uploaded this test as well as some missing DLLs (d3d compiler 47) on Geeks3D server:
According to that little test, it seems that OpenGL applications are not concerned by the VRAM allocation limitation of the GTX 970 (but they are certainly affected by the reduced speed of the 0.5GB memory that run at 1/7th of the speed of the 3.5GB memory pool). Most of the video games are Direct3D applications and that explains why many people have seen that issue.
Now the question: why OpenGL apps can allocate up to 4GB of memory while D3D apps are limited to 3.5GB? (and why the major review sites didn’t catch this issue in their detailed reviews ???)
- gtx 970 vram,ROPs and L2Cache @ NVIDIA forum
- NVIDIA Discloses Full Memory Structure and Limitations of GTX 970 @ pcper.com
- NVIDIA Publishes Statement on GeForce GTX 970 Memory Allocation @ anandtech.com
- Nvidia explains the GeForce GTX 970’s memory ‘problems’
- GTX 970s can only use 3.5GB of 4GB VRAM issue @ overclock.net