● Compute Unit,"Compute" Unit
Tahiti构架最大的改进来自ALU集群部分。与传统AMD构架的VLIW结构ALU团簇不同,Tahiti构架的ALU集群撤消了来自超长字节指令的限定,所有ALU全部以SIMD的形式来完成吞吐,不再需要打包和解包的过程。
在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)也在该单元中执行。
除了运算单元外,Tahiti构架的每个CU还绑定了由Branch和Scheduler构成的二级线程控制机制,以及一个完整的Texture Array,Texture Array的作用与传统AMD构架中的TMU基本相同,包含了完整的Texture Fetch Load/Store Unit以及Texture Filter Unit。
CU进行wavefront吞吐示意
由此不难看出,Tahiti构架CU单元的结构在逻辑层面上已经与Fermi构架的SM单元几乎完全一样了。两者均由浮点吞吐部分(Tahiti的Vector ALU团簇,NVIDIA的SP单元集群),整数、特殊函数及原子操作部分(Tahiti的Scalar Unit,Fermi的SFU),二级线程控制机制(双方的Scheduler等)以及完整的Texture Array组成,甚至双方每一个运算单元(Tahiti的Vector ALU,NVIDIA的SP单元)都拥有完全相同的4K寄存器。一个CU/SM就是一个独立的处理单元,能够面对一个标准的指令集群或者说线程块,也就是AMD的wavefront以及NVIDIA的warp。Tahiti的CU能够在一个周期内处理一个64线程的wavefront,这与Fermi一个周期处理一个32线程的warp是相同的,但AMD目前上不存在类似half warp的线程块子划分机制。
Tahiti支持WinZip最新版带来的Open CL加速
更新之后的CU单元在计算能力和效率方面有了长足的进步,不仅令Compute Shader处理能力大幅提升,进而提升了GPU在DirectX 11环境下的图形性能,而且在通用计算领域也获得了更加广阔的前景和更多样化的发展可能。因此称其为“Compute” Unit,完全在情理之中。
推荐经销商