既然已经抛弃了VLIW,那么对ALU团簇的改进就成了摆在AMD面前的当务之急了。可是VLIW结构毕竟已经在AMD构架中使用了五代,长达近5年的时间里AMD的所有研究工作全部围绕着它来开展,现在想要推翻谈何容易。在VLIW CORE结构出现之初,AMD曾经有多次机会可以以比较小的代价完成转型,比如RV670以及RV770之后,AMD都曾经有机会利用构架改进这一契机从VLIW中抽身而出。但出于种种原因,AMD放弃了这些机会,这使得AMD在VLIW的路上越陷越深难以自拔。
R600 ALU结构
怎么办?别急,让我们先来看一位非常熟悉的老朋友——Larrabee。
为解决浮点指令以及shader的吞吐问题,Intel在Larrabee中引入的全新的Vector Unit,也就是向量处理单元,Vector Unit在结构上与Intel的AVX指令集非常类似,单周期可以吞吐16条32bit浮点指令,这使得Vector Unit在一般情况下拥有了超过AVX一倍的浮点吞吐能力。透过shader compiler的配合以及Scalar Unit的管理,Vector Unit在吞吐常规shader以及通用计算指令都时表现出了极高的效率。
Larrabee构架
既然重新选择前所未有的方向对于深陷VLIW的AMD来说太过艰难,那不如干脆选择已有的类似模型和经验。于是在Graphics Core Next中,我们看到了AMD为我们奉上的全新Compute Unit单元。
Graphics Core Next CU结构
新CU单元较之原有的VLIW CORE最显著的改进,来自ALU团簇部分的设计。传统RV构架的VLIW CORE采用4个1D ALU+1个全功能4D ALU(Cayman前)或者4个1D ALU(Cayman)捆绑并共享发射端等资源的方式,而伴随着VLIW的废弃,Graphics Core Next全新设计的运算单元也彻底抛弃了硬件单元的打包捆绑方式,直接采用16个Vector ALU划分一组SIMD CORE,每个CU包含4组Vector ALU的形式。每个16 wide vector ALU配备64K专有向量寄存器,并直接与CU内部的16K L1 Data cache以及64K LDS直连。另外,AMD还在vector ALU团簇外围放置了一个专门的Scalar Unit用于整个浮点吞吐单元的管理以及常规整数数据的吞吐,Scalar Unit拥有专有的8K寄存器。
眼熟么?是的,我也觉得挺眼熟的。
三秦IT网的官方微信:更多资讯请关注:三秦IT网官方微博