MCPLive > 杂志文章 > GTX 970显卡“3.5GB显存门”揭秘!

GTX 970显卡“3.5GB显存门”揭秘!

2015-03-09夏松 王锴《微型计算机》2015年2月下

刨根究底:

有关GTX 970的特性,NVIDIA的官方宣传中是否真的有问题,问题究竟在哪?

显存门问题爆发前,NVIDIA自己都还没发现他们的宣传出现了问题。实际上对行业有所了解的玩家应该知道,早从上两代显卡开始,NVIDIA就对显卡参数的标注进行了改革。通过官网发布的,都是面对大众用户的基本资料,涉及到的都是显卡的频率、流处理器数量等主要参数,这个部分其实是没有问题的。但NVIDIA官方还在给媒体和资深玩家送测显卡的过程中,通过评测建议书(Reviewer's Guide)发布了另一个更详细的参数介绍,包含晶体管数量、内核面积、二级缓存数量、ROP单元数量等底层规格。在这上面,NVIDIA确实错误标注了GTX 970的ROP单元和L2缓存的规格,让大家误认为GTX 970跟GTX 980一样,都具备了64个ROP单元和2MB共享缓存,实际上GTX 970只有56个ROP单元,对应的共享缓存也仅1.75MB。由于ROP、缓存这样的参数通常不太被关注,所以该问题一直没有被发现,直到本次3.5GB显存门事件,发现和这些参数有些关系,才被广大玩家知晓。NVIDIA第一时间就承认了这个失误,并进行了修正。到此,我们认为算得上NVIDIA错误,或者“欺骗消费者”的内容就是这些了。严格来说这些内容并没有直接提供给消费者,而是针对第一批评测GTX 970的少部分用户。但就目前来看,这似乎并不是本次显存门事件的重点,NVIDIA也没有给出有关这个错误的后续解决方案。反倒是GTX 970的显存容量成为了大家关注的焦点,因为大家之所以发现参数问题,也是因分析软件只能识别GTX 970的3.5GB显存开始的。OK,那让我们看看GTX 970的3.5GB问题究竟是怎么回事,剩下的0.5GB到底去哪了。

Tips:MCer怎么看?

3.5GB显存门事件的爆发对GTX 970的影响绝对是极大的,为此事件,MC临时增加的一项读者调查在短时间内就获得了相当多读者的关注和反馈。MC随机调查结果显示,受此事影响的读者就占了大约一半的比例。已经入手GTX 970的用户就占到了12%,其中的25%想要退货,剩下的75%还在等待官方的解决办法。本来准备入手GTX 970的读者占到随机调查样本总量的32%,其中超过34%的读者因此事件决定直接放弃GTX 970了。

MC随机调查结果图
MC随机调查结果图

究竟是什么原因导致了GTX 970遇到这些前所未有的问题?

为什么GTX 970明明具备完整的256bit显存控制器,拥有8颗显存颗粒,但不少软件检测中只显示3.5GB显存可用?要回答这个问题,必须从GM204核心的底层设计说起。相比此前的显示核心设计,在GTX970上多了一个我们之前从未听说过的结构—显存纵横交换矩阵(Maxwell memory crossbar)。正是这个结构,为GTX 970争取了更多的显存控制器和灵活的核心数量匹配问题,但也因此导致了显存门事件。

从NVIDIA官方给出的Maxwell显存纵横交换矩阵架构示意图中可以看出显存纵横交换矩阵在GPU的底层架构上是如何分布的,图中清晰地表明了GTX 970中这种矩阵中的各个单元分布形态。在完整的结构下,图示上方共有16组GM204的SMM流处理器阵列连接到中间的交换矩阵上,而在矩阵下方则有4组ROP、MC单元(图中标注MC,表示与显存控制器相关联的ROP),每一组ROP、MC单元都由相对固定的L2单元用以连接矩阵。请注意,每一颗GTX 970显卡的GPU所禁用的L2单元以及SMM阵列单元都不尽相同,可能是1、3、5也可能是2、4、6。不过宏观上来看,它们是一致的,无论怎样,在GTX 970的显存纵横交换矩阵中,总有一些单元是被禁用了的,也就是我们常说的屏蔽。

那么究竟什么是显存纵横交换矩阵?简单点理解就是在显存控制器和真正的计算核心之间架设的一条数据通道。以往显存中的数据要抵达计算核心,是通过显存控制器—缓存—计算核心,现在是显存控制器—缓存—交换矩阵—计算核心。增加这一层有什么好处?实际上它让ROP与显存控制器之间不再是生硬的绑定关系,能够避免在以前的GTX 660等显卡上出现的192bit“畸形”位宽而设计。以往要阉割核心计算单元和ROP后端,就必须连同显存控制器一同阉割。而现在的灵活搭配机制,使得NVIDIA能够禁用部分光栅单元(ROP)和内存控制器(MC)区域,且不影响显存控制器位宽。当然,这种设计并不完美,随意阉割并不意味着缺少部分ROP单元的GTX 970的表现能跟GTX 980完全一样,它有一个特别之处—会导致显存分段分区。

虽然没有硬性绑定,但每组计算单元、ROP和缓存的模块,都划分了与之对应的显存控制器和显存空间,这样整个系统才能如传统设计一样高效率工作。很明显,在阉割掉一部分计算单元、ROP和缓存的模块后,与他们对应的显存控制器和显存空间就落单了。为此,NVIDIA才将GTX 970标配的4GB显存分为了两个部分,具备完好对应关系的就是第一部分,拥有高性能的3.5GB显存分区,NVIDIA将这部分称为显存分区0。而另一部分就是失去对应,必须通过复用通道等办法才能访问的闲置空间,称为分区1,共有0.5GB,也就是GTX 970所支持的4GB显存的余下部分。而这0.5GB的显存分区由于需要通过特殊调用方式才能访问,自然在性能上难以和分区0相提并论。而这,也正是造成此前各大媒体相竞报道GTX 970存在3.5GB显存门的正真原罪。

NVIDIA官方给出的Maxwell显存纵横交换矩阵架构示意图。
NVIDIA官方给出的Maxwell显存纵横交换矩阵架构示意图。

详细点说,在任何情况下,SMM阵列与ROP、MC单元都是通过交换矩阵进行互通连接工作的,此前所说的GTX 970显存分区问题,其实就是有关于ROP、MC单元的问题。SMM阵列本身并不对GTX 970的显存配置有任何的影响,而中间的交换矩阵(Crossbar)也只是关心到底有多少ROP、MC单元在与其通信而已。

分享到:

用户评论

用户名:

密码: