>Wit"p s&`XK$p
Radeon HD 7970发布的时候我们曾对其技术特性做过比较全面的介绍,这里再通过一组资料,简单看看“南方群岛”家族的GCN全新架构在底层有哪些宏观上的特点,包括计算单元、矢量单元、缓存等级、曲面细分等等。
^RAFmM#F G{Enh<V 27 TZ+? <$6'Mzf 首先是一张
来自AMD官方的Tahiti Radeon HD 7900核心架构示意图,各种单元模块及其相互结构一目了然。中间占据核心位置的就是GCN架构的一组组流处理器,分成32个计算单元(CU),左右两侧分布着渲染后端(ROP单元)和一级、二级缓存;上方可以看到指令处理器、两个异步计算引擎(ACE)、两个几何引擎、两个光栅器、全局数据共享(可读写)等等;下方是六个64-bit双通道显存控制器,总计384-bit;最右侧通过Hub与核心相连的是各个扩展功能模块,包括PCI-E 3.0控制器、视频编码引擎(VCE)、UVD解码引擎、CrossFire交火合成器、Eyefinity控制器等等。
j"sO<Q{6% :aqskeT Ahbu >LPk OHnjI>/ 这是日本PCWatch专栏作家后藤弘茂绘制的Tahiti结构详细图解,可以更清晰地看到所有模块的分布情况。
)9 jQ_ (<JDD]J ^QQNJ w]-iM 下边看看
计算单元(CU),这是构建整个GPU的基础模块,一定程度上类似之前的流处理器阵列(SM)。
每个计算单元内部有四组、64个流处理器核心,组成四个矢量单元(Vector Unit),各自搭配64KB矢量寄存器。 "s<lLgi b{>dOI*.} 计算单元内的其它模块还有:分布式可编程调度器、分支和消息单元、标量单元(协处理器)、4KB标量寄存器、64KB本地数据共享、四个纹理过滤单元(总共128个)、十六个纹理拾取载入与存储单元、16KB一级缓存(可读写)。
vGHYB1=~ JsEEAM:w 计算单元是基于新指令集的架构,抛弃了以往的VLIW(甚长指令字),而且
每个计算单元都能同时从多个内核那里执行指令,单位周期单位面积的指令数也有所增加。总之,这种架构相比以往利用率和吞吐量更高,多线程多任务并行执行的能力也大大增强。
"[S
6w .
\0=1P: E(LE*J Z2jb>% 这是计算单元更详细的结构图。
iPO
S `#8R+c=$ PSR`8z n *Y0,d`
-%)
!XB
2B dr#qr 再说矢量单元。
GCN架构代表着从VLIW4 SIMD向Quad SIMD的进化,前者采用一个VLIW指令和四个ALU操作的方式,更适合图形而在通用计算上缺乏弹性,后者则是四个SIMD单元加一个ALU操作,大大增强了计算能力。 HWOH8q{f! "q/M8 VLIW4 SIMD架构还有很多缺点,比如需要通过编译器管理寄存器端口的冲突,需要特定、复杂的编译器调度,汇编创建、分析、调试较为困难,需要仔细优化才能达到峰值性能。事实上,这种架构从理论上看非常完美,但因为实际应用的问题,很难能够真正发挥所有潜力。
8~#Q * xG/qDc Quad SIMD架构则就这些问题做了针对性的解决,比如不再有寄存器端口冲突,编译器调度和优化实现了标准化,汇编创建、分析、调试大大简化,工具链开发与支持更简单,性能方面也更稳定、更好预测。
i4rF~'h@ :]QxT8B JW'acD ta.,4R&K 因为重点转向计算,GCN架构的缓存体系也经过了完全重新设计,规模相当庞大而复杂。简单来说,每四个计算单元共享16KB指令缓存和32KB标量数据缓存,并与二级缓存相连;每个计算单元都有自己的寄存器和本地数据共享,搭配16KB可读写一级缓存,每时钟周期带宽为64字节;二级缓存总容量768KB,可读写,对应每个显存控制器分成六组,每组容量128KB,每时钟周期带宽也是64字节;全局数据共享则用于不同计算单元之间的同步辅助。
gSYX @'Q! H5 hUY'O yE,o~O D~&e.y/gHN 最后说说曲面细分这个争议话题。GCN架构已经进化到所谓的第九代,每核心两个曲面细分单元,主要改进之处有:提高顶点重新利用率、改进片外缓冲、增大参数缓存等等,而效果是
所有系数下的性能均有所进步,相比于Radeon HD 6900系列的第八代技术提升最多四倍。 K({,]<l5 ZhaOH5{9 y<d#sv(s
P<x
(SA*9%
,`@|C
Z-4A
s9Z2EjQV 6J+ZeBk?? 附送
AMD、NVIDIA近些年的核心面积大小对比示意图,Tahiti在晶体管数量猛增的前提下反而Radeon HD 6900 Cayman又小了一些,只比Radeon HD 5800 Cypress稍大一些。
0 %+k>(@R :zRboqe(cc
|?A-?- \"Iy<zG dxWw%_Q