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

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

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

前面提到了,交换矩阵带来了灵活性,让NVIDIA从Maxwell架构开始拥有了独立禁用ROP、L2单元中某一部分的特性。这样就在之前的全开或全关之外带来了第三个选择—禁用一个ROP、MC单元中的某些功能,比如禁用一组L2单元,让一组ROP、MC单元由两个显存控制器和一个L2单元构成。同时需要注意,两个显存控制器单元仍然是捆绑在一起的,禁用其中一个,势必导致禁用整个单元的后果。NVIDIA在GTX 970中禁用了1个L2单元,减少了8个ROP单元和256KB L2缓存。所以GTX 970只剩下56个ROP单元,分布在4个ROP、MC区域内,总共拥有1.75MB L2缓存。缺少了一个L2单元,但NVIDIA还是宣称GTX 970仍然能提供256bit的显存带宽和224GB/s联合显存带宽,也就意味着在GTX 970中,每一个显存控制器都是活跃的,即使有哪个显存控制器对应的L2单元被屏蔽也不影响显存控制器的正常工作。不过在GTX 980中,每一个32位的内存通道都需要通过与其对应的L2单元直连到交换矩阵上,但在GTX 970上,却产生了麻烦—7个交换矩阵接口却有8个32位的内存控制器通道,这该如何是好?为此,NVIDIA干脆对GTX 970的显存交换矩阵硬件结构进行了“分区”—将7个完整的ROP、MC单元单独划分出来,每个单元负责0.5GB的显存,也就是此前所说的3.5GB显存区,这个区域的所有功能都是完整的,与GTX 980没有任何的差别。而对于后一个区域,则是所谓的“阉割区”,拥有0.5GB显存的控制权,缺少一个L2单元,只能通过复用另一个L2连接到矩阵才能被SMM单元所访问。

交换矩阵机制的存在,让矩阵的接口以及L2连接端口具备访问两个通道数据的能力,也正是这种复用特性,让它不必关闭“多余”的显存控制器。但很显然,对于缺少了一个连接到矩阵上的L2单元来说,肯定不可能让1个矩阵接口在同一时间处理来自两个显存通道的数据。一次循环中只能处理1个读取以及1个写入的操作请求,另一个通道中的数据显然就会被闲置并延后处理。这也就是为什么说原理上分析,剩下的0.5GB显存工作在低性能状态,难以和分区0中的3.5GB相提并论的原因。

由此看,NVIDIA所说的GTX 970拥有224GB/s显存带宽,具备完整的256bit显存控制器以及全部的4GB显存空间从技术上来说是说得通的。但问题就在于由于ROP、MC单元被分割为了7+1的结构,因此它在实际工作中是不可能正真达到224GB/s的带宽。在纯读取的情况下,GTX 970在3.5GB显存段可以达到196GB/s的带宽(7000MHz×7个端口×32位),剩下的0.5GB显存段虽也能提供28GB/s的读取带宽(7000MHz×1端口×32位),但是它们却不能在一个时刻同时工作。这就是一个典型的XOR异域运算法则,写入操作过程中也应该同理。

GTX 970削减了三组SM阵列,占GM204核心的3/16,但是ROP和缓存单元只削减了1/8。
GTX 970削减了三组SM阵列,占GM204核心的3/16,但是ROP和缓存单元只削减了1/8。

于是问题就来了,很明显,弱势的0.5GB显存段的存在会影响3.5GB显存的整体性能发挥。举个例子来说,假如我们同时对3.5GB显存段和0.5GB显存段发出读取的指令,对于带宽远低于3.5GB显存段的0.5GB显存段来说,在一个指令循环中它就会严重影响3.5GB显存段的执行效率,如果没有清除阻塞的指令存在,3.5GB显存段就将陷入空闲时间。而且0.5GB显存段的读取时间越久,3.5GB显存段的利用率就越低,效率也就越低,这就变相降低了3.5GB显存段的带宽。为此NVIDIA不得不设定GTX 970显卡在实际工作中会优先调用3.5GB显存空间,只有在此空间使用完之后才会开放剩下的0.5GB空间。这也就是为什么不少软件显示GTX 970的显存可用空间总量只有3.5GB的原因。到此,其实我们已经回答了我们的第三个问题“3、GTX970到底能不能使用全部的4GB显存,如果可以,那为何软件会只显示3.5GB?”

坦白讲,NVIDIA的这种不平衡显存配置也不是第一次出现了,远的有GTX 500系列,稍近一点的GTX 660/660 Ti系列其实也或多或少存在类似问题。以GTX 660Ti为例,NVIDIA为其配置了3个显存控制单元(6个通道)及2GB的显存,这样势必产生有一个内存控制单元用两个通道负责8Gb显存,而其余两个通道每个通道负责4Gb显存的问题。虽然NVIDIA从未正面解释过这类问题,但这与GTX 970的情况在本质上没有太大区别—都是基于不平衡带宽的设置。只是在GTX 970这种高端卡上,我们第一次重视这种问题,而此前对这类问题并未深究而已。

GTX 660上其实也出现过类似的显存不均匀分配问题。
GTX 660上其实也出现过类似的显存不均匀分配问题。

至于NVIDIA为何要采用这种配置来推出GTX 970显卡,或许直接和经济效益相关。如果没有这种部分禁用单元的技术,NVIDIA将只能推出完整核心产品,如GTX 980,稍有瑕疵就会被抛弃,这无疑会大幅降低晶圆生产的良品率,成本难以接受。而这种部分禁用单元的技术,让NVIDIA有了更多的选择,对于那些存在部分瑕疵的芯片也能在尽可能保持高规格的情况下物尽其用,不至于因为一个L2单元的瑕疵而毁掉整个MC模块甚至整块芯片。如果一定要坚持绝对平衡的配置的话,那后的结果很可能GTX 970又是一个规格比现在更低,且只有192bit显存位宽的奇特核心。

分享到:

用户评论

用户名:

密码: