重归正途迎未来AMD全新GPU构架深度解析.doc
《重归正途迎未来AMD全新GPU构架深度解析.doc》由会员分享,可在线阅读,更多相关《重归正途迎未来AMD全新GPU构架深度解析.doc(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、,重归正途迎未来 AMD全新GPU构架深度解析CBSi中国ZOL 作者:中关村在线 顾杰 责任编辑:林光楠 【原创】 2011年06月23日 05:00震惊世界的Graphics Core Next 震惊世界的Graphics Core Next2011年6月15日,AMD在AMD Fusion开发者峰会上向与会的700多名开发者和PC业界高管们透露了其全新GPU架构的诸多细节,由于缺乏代号,因此该构架暂时被称作Graphics Core Next。AMD下一步的目标是发展“针对图形、计算双重优化的统一可扩展GPU”,“一套面向吞吐量的大规模多线程计算单元架构”,包括多任务多引擎架构、计算单元
2、架构、多级读写缓存架构。AMD Graphics Core Next尽管新构架的路线图、发布规划、规格参数、功能特性等一概欠奉,但Graphics Core Next的出现依旧瞬间吸引了全世界所有的目光,因为你还记得AMD上一次推出具有颠覆性的全新构架,是什么时候的事情吗?R600的前世今生 R600的前世今生如果我没记错的话,上一次AMD发布与前代产品完全不同的新构架,已经是近5年前的事了。2007年5月,AMD收购ATI之后推出的第一款DirectX 10 GPUR600正式发布了。R600由一套几何处理单元,独立的线程仲裁器UTDP,与仲裁机构相连的SPU和TMU单元,以及完整的后端所组
3、成。整个构架以ringbus换装总线进行连接。与竞争对手G80相比,R600的结构可以说是完全不同的两种设计思路。他的运算部分采用4个非全功能1D ALU和1个全功能4D ALU以VLIW的形式打包组成一个VLIW core。5个ALU共享2套发射端口资源,全部64个VLIW core共享8K的GDS,也就是NVIDIA方面的shared memory。R600构架R600构架的目的或者说初衷之一,就是通过ATI长久以来对图形编程业界的影响力,将自己认为更加合适的追求吞吐和ILP性能的保守的编程模式推广下去。压迫程序员并迫使其遵从由ATI制定的被认为是适宜的编程方法以及API转换路线。当时的实
4、践证明,这一尝试是失败的。RV770构架在经历了R600系列的失败之后,AMD通过RV670的tick过程修正为R600构架去除了大量的低效率的晶体管,如过于臃肿的MC部分以及缓慢的ringbus总线。这些举措都为RV770节约了大量的晶体管资源。利用这些晶体管资源,RV770成功的将运算资源提升至R600的250%,但其构架本身并没有明显的变化。RV870构架而接下来的RV870中,AMD仅为其配备了合乎DirectX 11要求的寄存器资源,改进了UTDP对多线程的支持,在前端的几何单元中插入了一组TS单元,同时将运算单元中的GDS提升到了64K。除此之外,我们仅能见到进一步放大的VLIW
5、core规模和其他配套的纹理资源及后端资源。各资源的整体比例较之RV770并未发生本质性的改变,VLIW core的操作管理方式及周边资源密度也未见任何实质性的变化。Cayman构架到Cayman构架为止,R600这个构架已经被AMD反复修改了不知道多少遍,虽然Cayman构架对R600进行了历史上最大的一次改动,4D VLIW以及双几何引擎的加入让Cayman构架获得了R600系列优于RV870的DX11性能,但其最核心的通过VLIW提升吞吐能力并由简单暴力的单元扩张换取性能的做法,并未发生本质变化,这种做法在漫长的历史时期里都发挥着重要的作用。现在看来,Graphics Core Next
6、的出现,标志着R600这个颇为长寿的构架体系,终于到了垂垂暮年,行将替换了。产品:Radeon HD 6970 AMD 显示芯片 全新构架新在哪里 全新构架新在哪里AMD本次发布的全新构架究竟新在哪里呢?下面不妨让我们丢开那些构架图,直接归纳总结一下此次新构架的特点。Graphics Core Next添加的Scalar单元简介1、取消VLIW吞吐,代之以常规SIMD方式。2、添加完整的多级Unifield Cache体系,cache体系面向全部指令和数据开放,同时取消独立的Tex Cache。3、强化原子操作。4、构架基于并行Compute Unit结构,强化CU间以及基于线程块级的乱序执行
7、能力。5、改进ALU团簇结构,新构架将采用4组16 wide vector ALU捆绑的形式。6、ALU团簇外添加全新的Scalar Unit。7、加入统一定址8、添加对ECC内存的支持。Graphics Core Next向量单元简介本次AMD未来构架的改进可谓天翻地覆,与最近的Cayman构架相比,新构架不仅抛弃了R600以来一直维持的VLIW体系,更在core以及uncore两端同时做出了大量前所未有的改进。对于这个构架,它的最核心关键词只有两个学习,借鉴。下面,就让我们从里到外的仔细审视这一全新构架,并讨论一下它的意义吧。产品:Radeon HD 6970 AMD 显示芯片 不再拘泥于
8、关联性 不再拘泥于关联性本次Graphics Core Next最引人瞩目的改进,就是AMD放弃了自R600以来一直坚持的VLIW打包吞吐模式。这个改动可以说彻底撼动了AMD GPU构架发展的基础。放弃VLIW不仅意味着GPU领域超长指令与普通指令分庭抗礼时代的终结,普通SIMD吞吐模式统一江湖,更标志着AMD正式“重归”GPU高性能计算应用领域。Cayman的VLIW构架长期以来,VLIW超长指令一直都是AMD提升体系吞吐能力的重要手段。通过将无关联性的若干指令以超长指令的形式进行打包,AMD可以以很简单的外部资源环境来供给多个ALU团簇,更少的发射端资源等所带来的晶体管优势是巨大的,这使得
9、传统的RV构架每一次更新几乎都以暴力释放运算资源为基本特征。VLIW吞吐VLIW虽然可以拥有极高的吞吐量,但其天生的对指令无关性的要求却成了其最大的软肋。无论图形领域还是通用计算设计的数学领域,条件分支的应用都能带来更好的性能以及更加方便灵活的编程方式。如果构架采用了VLIW模式,编程端就要大费周章的为代码找齐无关性,而且实际上绝对的无关性是不存在的,因此最终还是会有一定的条件分支流入构架中,VLIW构架执行这些条件分支类得程序的效率是非常低下的。假定一个VLIW包中的指令B需要指令A的运算结果作为起始条件,这种VLIW包对于所有的传统RV构架几乎都是噩梦。有介于VLIW天生的缺陷,AMD放弃
10、它也可以说是意料中事。不同吞吐方式的对比在Graphics Core Next中,AMD重新使用了传统的原教旨SIMD吞吐模式,构架以CU为单位进行CTA级得吞吐,当CTA进入CU之后,CU内部的线程仲裁机制会进一步将CTA拆解成wavefront,vector ALU将不再要求指令遵循严格的无关联超长字节属性,wavefront拆解出来的指令将可以直接以原始形态进入vector ALU内部执行。条件分支改进Graphics Core Next对吞吐模式的改进以及对VLIW的撅弃,不仅大大的提高了ALU的执行效率,尤其是条件分支的执行效率,更简化了对编程及编译器端得要求,这不论是对通用计算还是
11、图形领域来说都是个好消息。产品:Radeon HD 6970 AMD 显示芯片 蓝色的“芯”蓝色的“芯”既然已经抛弃了VLIW,那么对ALU团簇的改进就成了摆在AMD面前的当务之急了。可是VLIW结构毕竟已经在AMD构架中使用了五代,长达近5年的时间里AMD的所有研究工作全部围绕着它来开展,现在想要推翻谈何容易。在VLIW CORE结构出现之初,AMD曾经有多次机会可以以比较小的代价完成转型,比如RV670以及RV770之后,AMD都曾经有机会利用构架改进这一契机从VLIW中抽身而出。但出于种种原因,AMD放弃了这些机会,这使得AMD在VLIW的路上越陷越深难以自拔。 R600 ALU结构怎么
12、办?别急,让我们先来看一位非常熟悉的老朋友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来
13、说太过艰难,那不如干脆选择已有的类似模型和经验。于是在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划分一组SI
14、MD 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寄存器。眼熟么?是的,我也觉得挺眼熟的。产品:Radeon HD 6970 AMD 显示芯片 uncore的纠结 uncore的纠结core部分的大改动只是AMD一系列构架改进的一部分,Graphics Core Next的unc
15、ore设计同样出现了天翻地覆的变化,而且创造了AMD GPU历史上若干个第一次。第一次使用了完整的多级cache体系,第一次彻底取消了Tex cache,第一次加入GPU统一定址,第一次加入了ECC内存的支持等等。Graphics Core Next存储结构改进除此之外,Graphics Core Next还突出了原子操作的作用,强化CU间以及基于线程块级的乱序执行能力。Graphics Core Next线程改进也许你一时间还无法理解这些改进的意义,在详细的对他们进行探讨之前,我们不妨先来看一下AMD竞争对手的发展轨迹GT200中首次引入原子操作,GF100进一步强化了原子操作及快速上下文切
16、换性能。GF100中首次引入多级cache体系,并将在kepuler构架中进一步予以强化。GF100中首次引入并行GPC结构,并以此为基础,搭配分支论断实现了基于CTA以及GPC级别的并行kernel管理,同时引入了统一定址以及ECC内存的支持GF110构架纠结么?没错,其实同core一样,Graphics Core Next中对uncore部分的改进,其思路和经验绝大部分依旧来自于竞争对手发展多年的构架,只不过这次的来源并非Intel,而是AMD在桌面图形的老对手NVIDIA。产品:Radeon HD 6970 AMD 显示芯片 不一样的cache 不一样的cache作为uncore部分改动
17、的起点,我们首先要面对的是全新加入的cache体系。在传统的RV体系中,缓存的改进力度一直都比较小。R600时代引入的GDS直到今天仍然是AMD GPU构架中最重要的临时缓冲资源,尽管RV770开始AMD引入了LDS作为GDS的补充,但对于LDS的开发长期以来一直进展缓慢,甚至很多程序员至今还在抱怨自己都无法“看到”LDS的存在,更不要说应用了。Graphics Core Next CU细节shared作为一种延迟完全透明的只读缓冲体系,相比于可操作且延迟黑箱化的cache有着众多的局限性。除了对编程有很高要求之外,其对游戏以及大部分图形过程的助益都非常的小。有实验证明,大幅改进并扩容的GT2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正途 未来 AMD 全新 GPU 构架 深度 解析
限制150内