● 悲喜剧的舞台:单元复用率
继续强化Dual ACE,完全放弃VLIW体系以及引入unified cache,甚至全线开始了向NVIDIA的Fermi构架的靠拢,这些举措让Tahiti构架成了近5年来最具颠覆性的AMD图形构架。Tahiti构架上进行的诸多改进,无论从意义上还是从程度上均超越了自R600以来5代图形构架改进的总和,我们甚至可以用“出色”以及“精彩”来形容我们第一次看到它时的感受。那究竟是什么促成了这种改进的到来呢?
答案很直接——这一切的改进,都是为了提升GPU的单元复用率。
不同的吞吐类型影响着单元的复用率(图片引自后藤弘茂blog)
所谓单元复用率,指的是在单位周期内运算单元可以重复进行第二次动作的平均几率,单元复用率越高,单位周期内单元的平均等待周期也就越短,单元能够进行第二次动作的概率也就越高。
构架的单元复用率由很多要素决定,构架各部件的规模比例、体系并行度、线程管理能力、运算单元的吞吐方式、寄存器总量及延迟、shared的总量和分布方式,甚至是否拥有unified cache等等都会从根本上影响到构架的单元复用率。常规来说,单元的总规模越大,其效率受单元复用率的影响也就越明显。因此很自然的,GPU内部最需要注意单元复用率的部分,就是规模占比最大的ALU集群部分。构架的并行度以及线程管理能力越强,单元获得任务的效率也就越高;吞吐限制越小,单元能够无差别获取指令的机会也就越大;缓冲资源的量以及操作灵活度越丰富,单元越能够从近存近取以及快存快取中获得好处,耗费在中间过程的等待周期也就越短;因此充分强化这三个要素,ALU集群的单元复用率也就会越高。
资源搭配相对合理的Fermi芯片
单元复用率决定着整个GPU构架的执行效率,构架的单元复用率越高,代表它消耗在等待上的平均时间周期越短,单位时间内动作单元的密度也越大,等待的时间短,动作的机会多,单位周期内能够被执行的线程和指令自然也就越多。作为ALU集群部分,更高的单元复用率意味着更快速的Shader处理能力,意味着单位时间内更多的运算能力被有效的利用起来,自然也就意味着更好的图形性能。
Tahiti构架为我们准备了许多惊喜
Tahiti所有的改进,几乎都围绕着单元复用率展开,而AMD长达近5年的孤独长跑、一直拿不出手的通用计算性能还有已经逐渐暴露出来的Compute Shader性能问题,基本上也都与单元复用率有关。究竟是什么让AMD在单元复用率层面上遇到了这样或者那样的问题?AMD在这5年里又经历了怎样曲折艰难的探索和突围之路呢?
这一切的开端,要从非常著名的R600说起。
推荐经销商