● NVIDIA遇到的架构设计障碍
上文我们分析了NVIDIA同时兼顾HPC和显卡两条产品线被迫不断调整其GPU以符合两个市场的性能需求。那在本页,就让我们更加深入得分析NVIDIA遇到的架构设计障碍,虽然这种分析对于真正的设计而言很肤浅,但还是希望读者能够感受到这其中透露的问题。
TLP线程并行度的设计方向是近年来NVIDIA公司GPU设计的主要目标。展望未来GPU发展,以下几个问题是必须解决的。首先是分支预测能力,GPU需要拥有更好的分支能力,才能运行更多复杂程序,更好的利用cache来掩盖分支的延迟;然后是更大的缓存和Shared memory(AMD称之为LDS ,Local Data Share),这种共享寄存器负责共享数据和临时挂起线程,容量越大,线程跳转和分支能力就越强;线程粒度同样重要,粒度越细能够调用并行度来进行指令延迟掩盖的机会越大,性能衰减越小。细化粒度对GPU的线程仲裁机制要求很大;同时大容量缓存的可读写性也是必须具备的……
一套架构跨越两个产品线
除此之外实现更高水平的通用计算还有很多棘手的问题,现在它们已经被摆到NVIDIA面前。NVIDIA沿着自己设定的方向,却用自己的产品打开了GPU领域的“潘多拉魔盒”,Fermi架构到底该如何看待,更是带给业界前所未有的思考。
Fermi的分支能力虽然得到增强,但它依然不是分支预测,而是分支论断(predication),这一步的提升在以前是不敢想象的。在Fermi中为这一功能的初步实现提供了一个独立单元,它和仲裁器、Atomic单元的地位一样重要。分支论断只能算是分支预测的雏形或前身,需要的硬件开销的也较小,但这还是给NVIDIA带来了很多难题。
更大的缓存更是遥不可及,无论是Shared memory还是cache,这些缓存空间的提升需要半导体工艺的强大支持,因为这部分缓存和CPU一样使用6T SRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,每1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。
缓存的可读写性带来了很多问题,它包括缓存一致性协议,缓存的命中率等问题,这些问题每年要消耗Intel和AMD等CPU制造公司很多研发力量,而Fermi的诞生,只能把NVIDIA也牵连进来。 就目前Fermi架构GTX470/GTX480产品所表现出的各种特性来看,我认为有以下几把双刃剑悬在NVIDIA头上迟迟不能解决: 1、大容量可读写缓存架构对GPU性能和功耗的影响 Fermi有768KB的统一的L2缓存,可以支持所有的存取和纹理操作。L2缓存和所有的SM都想通。L2提供有效和高速的数据支持。有些算法不能在运行前就确定下来,像一些物理问题,光线跟踪,稀疏矩阵乘法,尤其需要缓存的支持。过滤器和转换器需要所有的SM都去读取相同数据的时候,缓存一样会有很大的帮助。 
Intel利用晶体管睡眠技术分区管理SRAM缓存功耗
缓存的可读写性带来了很多问题,它包括缓存一致性协议,缓存的命中率等问题,这些问题每年要消耗Intel和AMD等CPU制造公司很多研发力量,而费米的诞生,只能把NVIDIA也牵连进来。同时缓存所面临的另外一个问题就是功耗难以控制,SRAM电路不像其他逻辑电路设计,一旦通电就会全速运行功耗也达到最大值。目前Intel和AMD所使用的都是分块管理缓存,针对这一部分电路并没有非常好的功率控制方式。 Cache引入后,驱动就变得更加重要或者说是极端重要。首先,开发一种任何游戏几乎都能受益的全局优化算法对NVIDIA来说太难了,同时如果针对某个游戏优化,那就不可避免的会出现其他游戏不合口味的问题。Cache的引入是良好的开端,但我更希望这个开端由Intel来做。毕竟NVIDIA从未涉及过大容量全局缓存的开发工作,所以做这项工作还是不够稳妥的。 2、纹理单元配置的冒险性 基于全新DirectX 11技术的GTX 480在拥有前面两个介绍的引擎之后,对于诸如Tessellation曲面细分等技术的支持自然优异。但是对于传统GPU显示核心而言,最为基本的TA和TF资源也不能或缺。GF100核心每个SM单元内包含四个纹理单元,GTX 480共拥有4组GPC即16个SM单元,简单计算可知在GTX 480内共有64个Texture Units纹理单元,与GT200架构中的80个纹理单元相比似乎有所减少。 
GF100架构的一个SM内部纹理单元配置
更为重要的是GF100的TA纹理寻址单元数量为64个,而TF纹理过滤单元则达到了256个,在G80架构中TA与TF之比为1:2,而后期改进的G92核心中NVIDIA出于无奈,将TA与TF之比恢复为1:1,若GF100的TA、TF数量的确为64/256,那么这个比例将达到前所未有的1:4。和传统的1:1配置相比,GF100的纹理定址能力明显减弱。拾取单元需要定址之后才能动作的,定址单元不够的情况下,在大多数3D应用中光有拾取是完全靠不住的。 但是NVIDIA坚持认为TA与TF单元的比率,是根据大量的模拟结果,由构架团队决定的,影响最终架构的有模拟结果,以及对未来发展趋势的预测,当然也外带情报,最终Fermi架构GF100芯片的纹理单元配置是取合适比例的结果。 |