● 融合概念提出与先行
融合是指主动将GPU等单元整合在芯片内部并且通过统一的总线控制模式让系统将其识别为一颗处理器。不过鉴于和GPU功能单元的巨大差异、指令集的完全不兼容性融合工作的开展是非常艰难的。但是畅想未来的融合发展和应用将因为处理器融合得到巨大性能提升融合处理器也因此成为业界关注的焦点。
目前的融合处理器市场上有自己的Sandy Bridge架构酷睿系列处理器(整合GPU单元),长期准备之后已经发布了APU(整合GPU单元为主)正在计划中的麦克斯韦处理器(GPU主动整合ARM架构CPU单元)。不过各家的融合之路都是顺畅的融合层次过于浅表,AMD的融合处悝器没有得到应用环境支撑NVIDIA的融合处理器还停留在纸面上。
2005年10月25日在AMD收购后,随即发表代号为Fusion(融合)的研发计划Fusion预计将AMD的CPU与ATI嘚GPU整合在一起,同时也将北桥芯片也一并纳入2008年4月23日,AMD在北京举行了“和谐计算 卓越视界”创新技术大会更强调CPU与GPU的和谐工作,并提絀了APU概念这是首个融合处理器概念的提出,也是业界争论最终的一种方向
毕竟我们在上世纪80年代末看到Intel生产的486处理器开始成功整匼了协处理器,协处理器的概念从此消失而变为CPU内部的FPU(浮点处理器)如果说486时代的融合只是第一次尝试,那么后来业界还是做出了艰難的不断探索
进入2008年4月,芯片产业爆发了大规模的口水战先是Intel在上宣称产业将会消亡,而后NVIDIA
CEO黄仁勋宣称GPU将超越CPU的地位中央处理單元(CPU)与图形处理单元(GPU)之间爆发了激烈的冲突。实际上Intel没有一颗像样的图形单元或者说Intel忽略了光栅化整个过程在显卡独立之后的飛速发展,造成其现在的困境而NVIDIA也没有X86授权和X86处理器开发经验,这是一家长期以图形处理器设计为主线的公司
不过在融合处理器開发方面,资本和技术积累深厚的Intel不知是看到了业界巨变的前兆还是感受到了超级计算机市场来自GPU等高浮点密度计算单元的压力其Larrabee芯片隸属于Tera-Scale项目,是一块融入的诸多先进技术的GPU对于图形工业而言,Larrabee是一款具有革命意义的产品它与常规的意义上的GPU存在理念上的差异,即Larrabee将通用计算性能放在优先位置
不过后期呈现在消费者面前的不是Larrabee成品处理器,而是一颗非常简单易行的融合处理器其融合程度甚至连胶水融合都算不上,两颗Die放在一个基板上第一颗整合了GPU和CPU的处理器出现了——Clarkdale核心Intel酷睿处理器。
● SNB酷睿性能增强
第一个高喊融合概念的是同时强大的媒体关注宣传能力几乎让全世界知道了APU将要上演一场变革。不过第一个做出融合处理器的却是它没有停留在“纸上谈兵”的阶段,在今年年初发布了首款整合GPU图形单元的处理器Clarkdale这是Sandy Bridge架构酷睿系列处理器出现之前的一次有益尝试。
面对業界广泛的非议和自己对GPU单元多年并不深厚的技术积累决定用这种抢先发布的方式生产了一颗MCP(Multi-Chip Package)方式对接的处理器。Clarkdale核心包括和GPU两个蔀分部分使用了新一代32nm工艺制造,是双核心四线程设计;GPU部分就是传统意义上的北桥为45nm工艺制造,内含双通道控制器、PCI-E控制器和
在经历了Clarkdale处理器较为松散的融合开发经历之前,Intel已经开始对于传统GMA系列集成GPU的优化工作从X4500开始,统一渲染单元被称之为“EU”拥有更恏更灵活的SMID执行表现。G45图形核心能够支持DirectX 10以及Shader Model
4.0其3D性能和频率的相关性很强,我们看到集成在内核中的GPU频率达到900MHz性能则已经超越了入门級别和AMD板上集成显存的785G芯片组。
SNB架构处理器核心架构图
在这些准备都进行完毕之后Intel开始了SNB处理器更深层次融合架构尝试。我们可以看到与上代相比SNB的核芯显卡芯片与处理器完全集成在了一起,而控制器也进一步进行了集成
在SNB中,三级缓存依然延续其中L1缓存嘚设计与酷睿微架构相同,而L2缓存则采用超低延迟的设计而L3缓存也依然采用的是共享式设计。英特尔第二代英智能酷睿处理器的、、依嘫可以通过对超线程技术的支持与否而划分定位虽然处理器型号不同不过架构基本类似。
SNB核芯显卡架构解析
上图中可编程着色硬件被称为EU和X4500的命名方式完全相同。EU包含着色器、核心、执行单元等可以从多个线程双发射时取指令。内部ISA映射和绝大多数DX10 API指令一一对应架构很像CISC,结果就是有效扩大了EU的宽度IPC也显著提升。
Intel此前的图形架构中寄存器文件都是即时重新分配的。如果一个线程需要的寄存器较少剩余寄存器分配给其他线程。这样虽能节省核心面积但也会限制性能,很多时候线程可能会面临没有寄存器可用的尴尬芯片组集成时代,每个线程平均64个寄存器Westmere时代的HD Graphics提高到平均80个,SNB则每个线程固定为120个SNB里每个EU的指令吞吐量都比现在的HD
SNB酷睿处理器融合GPU的目的在目前看来是非常简单明了的,近期来看Intel需要一颗更强大的集成GPU单元来让使用者体会到更好的游戏性能;远期来看Intel需要逐步尝試CPU+GPU融合架构而GMA系列GPU毕竟有着较为长时间的光栅化积累。
同时借助Intel强大的半导体技术SNB酷睿处理器融合的GPU单元拥有极高的运行频率,當然在图形单元显存总线方面SNB架构没有明确标示GPU单元是挂在内存控制上还是北桥上,不过以目前效率来看Intel的表现的确是让人满意的
● APU融合兑现目标
在经历了2005年的Fusion概念提出和2008年的APU提出之后,进入了相当长时间的艰苦开发周期而在这一周期内又经常放出很多备受關注的架构图和各类模拟测试数据,所以对于笔者这样的工作来说APU发布的更多概念其实是兑现承诺,告诉世人APU开发计划并没有胎死腹中
作为AMD的全新产品,其在命名上也突破了传统APU全称是“Accelerated Processing Units”,中文名字叫加速处理器是AMD融聚理念的产品。之前频道对于APU整合GPU单元的意义已经做过较为全面的分析所以本为仅是对APU图形单元的构成做一些回顾并且提出自己的看法。
简单看上去APU就是整合了传统单元、控制器、Radeon图形处理器的融合处理器而实际上其融合程度在目前来看还是较为可观的,主要原因是GPU和共享内存控制器这就比单纯把GPU放在PCI-E總线上要减少很多延迟。
APU微架构与总线控制器
Llano APU内部整合了一个双通道控制器单条内存是双通道就是,基本上可以满足主流独显的位寬要求但是用户需要购买双通道内存才可以组建128-bit内存控制器以提升APU带宽。CPU和GPU合用的话可以最大化资源利用这种融合方式让GPU不在使用自巳独立而不可占用的显存控制器。同时北桥允许GPU用高于显存带宽的吞吐量访问系统内存这也是一个重要的架构亮点。
APU的图形单元实際上就是Radeon HD 5000所使用的Redwood独立GPU核心去掉显存控制器后剩下的单元Redwood核心其由6.27亿晶体管构成,拥有400个流处理器、8个光栅处理器和20个贴图单元核心能够完整支持DirectX 11 API和Shader Model 5.0,也就说其不仅在3D表现上能够完美呈现DirectX
对于一个精通硬件架构的爱好者来说APU目前还不能算作是较为深入的融合架构,虽然APU做出了跨越性的思维方式和其他跨越性设计但是GPU显存的控制、GPU与CPU高效通信、GPU与CPU内存统一定址等问题还需要用更深层次的融合架构來解决。
● 逆向融合之麦克斯韦
相对于、AMD这些传统的厂商对于问题的思考明显要更复杂一些,这是一家没有X86授权的无工厂芯片設计厂商也是没有开发出CPU成品的公司。不过NVIDIA最近几年的动向已经说明了一些浅显的发展方向Tegra的开发就是重要例证。
Tegra处理器架构简图
Tegra的前身是2008年2月NVIDIA发布的用于与PDA平台的APX 2500应用处理器NVIDIA在台北举行的 08大会上,正式发布了针对、手机等移动互联设备的处理器——Tegra这也是NVIDIA推絀的第一款CPU。Tegra是一款系统单芯片内建ARM架构的处理器核心、基于GeForce的立体显示核心、影像处理器、音效处理器和图像处理器。
值得注意嘚Tegra由于其低功耗特性并不适合PC图形处理不过Tegra是NVIDIA第一次进行成功的GPU设计。和以往专注于视觉图形处理器不同Tegra是一款通用处理器,基于ARM 11架構ARM公司负责出售框架IP,NVIDIA在买入IP之后自行开发了这款处理器
在进化到V7核心之后,为了取得更好的性能功耗比ARM构架抛弃了冯诺依曼結构,全面转向了哈佛结构哈佛结构的数据和指令总线是分开的,分开的总线使得一些在冯诺依曼结构中必须串行执行的操作比如load/write可鉯并行执行,这虽然提高了系统的执行效率但也使得ARM构架对带宽变得更为敏感,甚至还对内存并联度提出了新的苛刻的要求
所以說对于未来融合处理器的定位偏向图形计算,加之强大的ARM也需要强大的内存带宽支撑这些因素促使NVIDIA选择了逆向融合技术——把CPU单元挂在GPU強大的显存控制器上。
目前一颗搭配三通道 1066内存(共计显存带宽)可以获得25.5GBs的存储子系统带宽,而融合处理器如果使用双通道或者廉价的单通道设计GPU挂在CPU内存控制器上仅能获得15-25GBs带宽。反观目前的民用千元级一款常见的Radeon HD6850显卡即可通过显存控制器获取到128GBs带宽,GTX580级别显鉲更是拥有将近200GBs带宽CPU性能可以得到充分释放。
● 融合硬件障碍难清
融合处理器目前拥有很多架构方面的障碍让我们从最先推絀结构最简单的SNB架构酷睿处理器开始进行对比。首先本次集成在内部的GPU单元虽然性能较好但是其基于上一代统一渲染架构演化而来,所鉯无法实现众多功能
通过和两家核芯的对比我们可以看到,AMD的核芯显卡最大优势在于支持DirectX 11这是Intel的HD Graphics 3000所无法达到的。另外AMD APU还支持OpenCL标准,可以通过异构计算来使处理器和显卡进行融合协同运算从而达到更好的性能,HD Graphics 3000在并行加速方面目前几乎无解决方案
我们已经汾析了显存带宽对于GPU性能的影响,那么对应到具体硬件来分析我们可以获知APU的和GPU部分共享控制器之后就涉及到争抢带宽的问题,实际分配到的带宽要比理论值低尤其是在CPU和GPU负载都很高的情况下。
APU内部通信能力分析
对于这种情况AMD也采取了相应的措施首先APU的GPU单元直接掛在系统内存总线上避免绕道北桥以及PCI-E进行带宽分享,其次虽然通过只能获得最大29.8GB/s带宽但是GPU还是可以有一个快速通道获得大于29.8GB/s的通信带宽
APU提升内存带宽后性能测试
但是国外媒体通过实际测试得到的结果已经充分说明了APU在内存带宽方面的饥渴,拥有400个流处理器的HD6550D和拥有160個流处理器的HD6450性能基本相当而通过提升内存带宽到-1866之后,APU实际性能已经接近同规格的
由此看来在内存带宽严重受限的情况下,为叻通信便捷将GPU挂在CPU二级缓存上或者更深层次的融合是正确选择但是为了彻底解决GPU对带宽的较高要求,或许提出的逆向融合方式才是正解值得一提的是Intel的Larrabee计划和AMD下一代独立显卡也已经出现了将低功耗CPU整合在GPU之内的意向。
● 异构计算应用环境之疑问
针对各家硬件厂商提出的融合硬件架构业内拥有大量可以用于实际工作的融合处理器应用软件和使用环境,这包含大量富含矢量操作的图形图像处理软件和影响力较为广泛的API应用程序接口
首当其冲的是努力倡导的OpenCL开放性编程环境。OpenCL (Open Computing Language开放计算语言) 是一个为异构平台编写程序的框架,此异构平台可由GPU或其他类型的处理器组成。
虽然有着完全开放的标准来保证高效的融合处理器编程但是目前我们依然看到太多問题,笔者有一个观点:任何工作都能胜任的API什么都干不好原因是OpenCL开放的编程环境还需要各家厂商针对自有硬件的编译器,而AMD在放弃Brook+之後暂时没有合适的编译器提出所以纵然有OpenCL提供大环境,但是AMD依然没有获得较为广泛的厂商支持
AMD艰难推广并行加速APP应用程序
目前我們能够看到的一些基于OpenCL的应用程序大多是基于 Stream整套解决方案开发的。ATI Stream技术定义程序可以被分为两种也就是图中的库,以及第三方代码庫可以直接转化成brook+,第三方代码则需要通过stream编译一下编译好的东西可以直接丢给CPU或者GPU算。
其中绿色的是计算抽象层规则这张图片說明ATI GPU可以通过计算抽象层规则直接运行程序,也可以通过OCL来支持应用程序也就是说OCL只是其中一种选择。实际上AMD倒向OCL应该也有打算让自巳以第一的身份接近OCL制定者并影响对方甚至施压的意思。CUDA和Stream都是编译环境而OpenCL跟DirectX都是API。
所以说OpenCL的又一大重要原因就是其开放性导致其對每一代的硬件系统没有制约性和指导性我们研究微软的DirectX应用程序接口发展历程发现AMD和都小心翼翼地针对DirectX接口开发硬件,如果自己的硬件有不合理的设计则会导致效率低下而OpenCL不对硬件提出要求,硬件厂商无法看到对其优化能带来任何性能提升所以也没有支持欲望。