● 适当转移矛盾才是解决问题的优秀哲学
Scheduling过程转变虽然带来了更高的处理器依赖度,但对于GPU本身来说却有着更多的好处。它成功的在不影响性能的前提下将GPU内部性能与晶体管/功耗负担的矛盾转移到了GPU外部,并利用由此换来的空间实现了更高的性能功耗比。
由于新的Scheduling过程在CPU中基于软件形式完成,因此传统Logic controller中与Pre-Scheduling相关的硬件,比如Fermi中的Multiport Post decode Queue(解码后队列)以及对应的Register(寄存器)等等DCA(Dependency check Architecture,负责依赖性检查的逻辑结构)也就没有了存在的必要,它们所占用的晶体管资源可以被释放出来,Logic controller的规模也因此得以大幅削减。尽管目前的Pre-Scheduling只涉及中等以下关联性的延迟可预期指令的检查,并没有完全取代全部的Scheduling动作,关联度较深的指令依旧需要传统的硬件DCA来快速执行,但这一改进还是促使NVIDIA将SMX中Warp Scheduler的密度削减到了Fermi的1/3。
Fermi架构SM单元内部的Scheduler以及Dispatch Unit比例
除此之外,Pre-Scheduling让指令从解码到执行之间的过程变得更加简洁,从线程进入SMX到抵达ALU进行执行这一过程的延迟也被降低。延迟的缩短缓解了线程派发效率带来的负担,让硬件不再需要配备大量的分派资源来提升任务分派的效率,以便抵充前面延迟所带来的性能损失,因此SMX单元中的Dispatch Unit密度也随之得以降低。在SMX中,NVIDIA配给的Dispatch Unit密度只有Fermi的66%。
DCA的大量削减以及Warp Scheduler和Dispatch Unit密度的下降促成了Logic controller的的最终瘦身,这不仅直接导致了NVIDIA可以放心大胆的扩张SMX单元的规模,将更多ALU资源纳入到GPU体系中去,更成功的将传统DCA硬件运行过程的功耗转移到了CPU当中。有了更多直接运算资源带来的性能,同时功耗矛盾也得到了缓解,GK104超过Fermi以及Tahiti的性能功耗比也就不是什么奇怪的事情了。
Kepler构架Pre-Scheduling过程变化(图片修改自后藤弘茂先生博客)
Kepler的表现非常直观地反映了NVIDIA解决问题的哲学,不论Pre-Scheduling还是GPU Boost,它们都具有将某些内部无法解决的矛盾转移到外部环境中并寻求适当的方式加以解决的特征。拥有这种弹性的思维模式的NVIDIA显然没有进入僵化以及固步自封的状态,这让NVIDIA最终得以克服了大量的困难,为我们奉上了一款性能功耗比以及绝对性能均十分出色的图形架构。
推荐经销商