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