Radeon HD 7970发布的时候我们曾对其技术特性做过比较全面的介绍,这里再通过一组资料,简单看看“南方群岛”家族的GCN全新架构在底层有哪些宏观上的特点,包括计算单元、矢量单元、缓存等级、曲面细分等等。
首先是一张来自AMD官方的Tahiti Radeon HD 7900核心架构示意图,各种单元模块及其相互结构一目了然。中间占据核心位置的就是GCN架构的一组组流处理器,分成32个计算单元(CU),左右两侧分布着渲染后端(ROP单元)和一级、二级缓存;上方可以看到指令处理器、两个异步计算引擎(ACE)、两个几何引擎、两个光栅器、全局数据共享(可读写)等等;下方是六个64-bit双通道显存控制器,总计384-bit;最右侧通过Hub与核心相连的是各个扩展功能模块,包括PCI-E 3.0控制器、视频编码引擎(VCE)、UVD解码引擎、CrossFire交火合成器、Eyefinity控制器等等。
这是日本PCWatch专栏作家后藤弘茂绘制的Tahiti结构详细图解,可以更清晰地看到所有模块的分布情况。
下边看看计算单元(CU),这是构建整个GPU的基础模块,一定程度上类似之前的流处理器阵列(SM)。每个计算单元内部有四组、64个流处理器核心,组成四个矢量单元(Vector Unit),各自搭配64KB矢量寄存器。
计算单元内的其它模块还有:分布式可编程调度器、分支和消息单元、标量单元(协处理器)、4KB标量寄存器、64KB本地数据共享、四个纹理过滤单元(总共128个)、十六个纹理拾取载入与存储单元、16KB一级缓存(可读写)。
计算单元是基于新指令集的架构,抛弃了以往的VLIW(甚长指令字),而且每个计算单元都能同时从多个内核那里执行指令,单位周期单位面积的指令数也有所增加。总之,这种架构相比以往利用率和吞吐量更高,多线程多任务并行执行的能力也大大增强。
这是计算单元更详细的结构图。
再说矢量单元。GCN架构代表着从VLIW4 SIMD向Quad SIMD的进化,前者采用一个VLIW指令和四个ALU操作的方式,更适合图形而在通用计算上缺乏弹性,后者则是四个SIMD单元加一个ALU操作,大大增强了计算能力。
VLIW4 SIMD架构还有很多缺点,比如需要通过编译器管理寄存器端口的冲突,需要特定、复杂的编译器调度,汇编创建、分析、调试较为困难,需要仔细优化才能达到峰值性能。事实上,这种架构从理论上看非常完美,但因为实际应用的问题,很难能够真正发挥所有潜力。
Quad SIMD架构则就这些问题做了针对性的解决,比如不再有寄存器端口冲突,编译器调度和优化实现了标准化,汇编创建、分析、调试大大简化,工具链开发与支持更简单,性能方面也更稳定、更好预测。
因为重点转向计算,GCN架构的缓存体系也经过了完全重新设计,规模相当庞大而复杂。简单来说,每四个计算单元共享16KB指令缓存和32KB标量数据缓存,并与二级缓存相连;每个计算单元都有自己的寄存器和本地数据共享,搭配16KB可读写一级缓存,每时钟周期带宽为64字节;二级缓存总容量768KB,可读写,对应每个显存控制器分成六组,每组容量128KB,每时钟周期带宽也是64字节;全局数据共享则用于不同计算单元之间的同步辅助。
最后说说曲面细分这个争议话题。GCN架构已经进化到所谓的第九代,每核心两个曲面细分单元,主要改进之处有:提高顶点重新利用率、改进片外缓冲、增大参数缓存等等,而效果是所有系数下的性能均有所进步,相比于Radeon HD 6900系列的第八代技术提升最多四倍。
附送AMD、NVIDIA近些年的核心面积大小对比示意图,Tahiti在晶体管数量猛增的前提下反而Radeon HD 6900 Cayman又小了一些,只比Radeon HD 5800 Cypress稍大一些。