● 运算就是图形—Compute Unit
Tahiti构架中ALU集群部分的改进,是我们在2012年AN新架构中看到的第一项全新技术应用。与传统AMD构架的VLIW结构ALU团簇不同,Tahiti构架的ALU集群撤消了来自超长字节指令的限定,所有ALU全部以SIMD的形式来完成吞吐,不再需要VLIW过程。
在Tahiti构架中,ALU团簇的名称从VLIW SIMD变成了Compute Unit,名称的改变不仅标志着功能及用途的变迁,更暗示了内部结构的方向性变化。Tahiti拥有32个CU单元,CU内部包含4组SIMD CORE,每组SIMD CORE由16个标准Vector ALU构成,所以Tahiti的一个CU单元拥有64个Vector ALU,32个CU单元合计拥有2048个Vector ALU。
Tahiti构架CU结构细节
除了负责浮点吞吐的SIMD CORE之外,Tahiti构架的每个CU单元还拥有在一个Scalar Unit,Scalar单元中包含Int ALU单元,可以用来处理整数指令以及特殊函数。另外,对线程效率至关重要的原子操作(Atomic)也在该单元中执行。在结构上,CU单元已经同Fermi的SM以及Larrabee的Vector Core趋于接近了。
运算单元之外,Tahiti构架的每个CU还绑定了由Branch和Scheduler构成的二级线程控制机制,以及一个完整的Texture Array,Texture Arroy的作用与传统AMD构架中的TMU基本相同,包含了完整的Texture Fetch Load/Store Unit以及Texture Filter Unit。
CU进行wavefront吞吐示意
一个Vector Unit就是一个独立的处理单元,能够面对一个标准的指令集群或者说线程块,也就是AMD的wavefront以及NVIDIA的warp。Tahiti的CU能够在一个周期内处理一个64线程的wavefront,这与Fermi一个周期处理一个32线程的warp是相同的,但AMD目前上不存在类似half warp的线程块子划分机制。
Tahiti支持WinZip最新版带来的Open CL加速
抛弃单纯强调吞吐的基于VLIW机制的多ALU绑定结构,转而以更加灵活的1D Vector ALU的举动对AMD的意义是巨大的,更新之后的CU单元在计算能力和效率方面有了长足的进步,它令Compute Shader处理能力大幅提升,进而提升了GPU在DirectX 11环境下的图形性能,而且在通用计算领域也获得了更加广阔的前景和更多样化的发展可能。CU的出现,标志着AMD在逻辑结构设计以及GPU架构发展方向上终于从R600开始的漫长“歧途”中回到了正轨。
推荐经销商