Das Problem ist einfach hier, dass auf den 3,5 GB Speicherpool nicht zugegriffen wird, wenn auf den 512MB Speicherpool, zugegriffen wird. Die beiden Zugriffe konkurieren auf dem 7 Port, da der 8 Port deaktiviert ist. Der Zugriff auf den kleinen Speicherpool läuft aber über den selben L2 Cache, der dann erneut geflusht werden muss, was zu Timeouts des gesamten 3,5 GB Speicherpools führt, solange auf den 512 MB Pool zugegriffen wird.
Durch das Loadbalancing des Speichers warten dann allerdings alle 7 Ports einen cycle und es gibt einen Performancedrop um glatte 50%, weil nur jeden 2 Anfrage (bei abwechselndem Zugriff des kleinen und grossen Ports) dem großen Speicherpool zugeordnet ist. Genau das hat auch der Nvidia Techniker exakt so beschrieben:
http://www.pcper.com/reviews/Graphi...Full-Memory-Structure-and-Limitations-GTX-970
Durch das Loadbalancing des Speichers warten dann allerdings alle 7 Ports einen cycle und es gibt einen Performancedrop um glatte 50%, weil nur jeden 2 Anfrage (bei abwechselndem Zugriff des kleinen und grossen Ports) dem großen Speicherpool zugeordnet ist. Genau das hat auch der Nvidia Techniker exakt so beschrieben:
http://www.pcper.com/reviews/Graphi...Full-Memory-Structure-and-Limitations-GTX-970
Um das zu lösen haben sie den Treiber angewiesen eben den kleinen Speicherpool nur in höchster Not anzusprechen.If you walked across the memory interface in the exact same way, over the same 4GB capacity, the 7th crossbar port would tend to always get twice as many requests as the other port (because it has two memories attached). In the short term that could be ok due to queuing in the memory path. But in the long term if the 7th port is fully busy, and is getting twice as many requests as the other port, then the other six must be only half busy, to match with the 2:1 ratio. So the overall bandwidth would be roughly half of peak. This would cause dramatic underutilization and would prevent optimal performance and efficiency for the GPU.