探究AMD发展APU产品缘由
AMD已经正式发布了旗下的LlanoAPU产品,业界对它寄予了很高的期望,APU是一个有别于数十年CPU的全新产品,它的推出有着很深的历史渊源,那么究竟为什么AMD要发展APU产品,APU究竟能给我们带来和CPU什么不一样的地方?今天我们就此进行下面的分析。当然本人的分析不一定完全正确,仅是笔者的个人见解,欢迎网友们提出批评意见。
AMD发展APU有着诸多的原因
首先,APU中文名称加速处理器,它融合了此前的CPU核心和GPU图形核心,并且通过业界标准的OpenCL和DirectCompute接口进行异构计算,应用程序将可以适时调用APU内部的CPU和GPU单元协同计算,带来更快速、更丰富的计算体验。很明显,AMD希望通过APU来弥补CPU的缺陷,以和竞争对手直接对抗。AMD的这个意图有着很深刻的原因,其中CPU指令集一直被竞争对手所掌握是其中一个重要因素。
下半年AMDAPU产品线对抗IntelCPU
惨痛教训迫使AMD重新思考
说到指令集对处理器的影响,就从近年两家处理器厂商的举动开始吧。
我们知道处理器的指令集可以认为是处理器性能的催化剂,通过它可以大大加速处理器的某些计算性能和效率。一直以来,Intel以处理器市占领导着指令集延伸技术发展,与各大软件厂商合作令软件执行效率得以提升,而AMD只能被Intel牵着走,产品在指令集支持上永远落后对手,就以45奈米Penryn支持47条全新SSE4指令集为例,AMD虽表示支持SSE4A,但实质只含有IntelSSE4数条指件,有名无实。
为了打破在指令集延伸技术一直落后的窘境,AMD在07年8月份,抢在Intel之前宣布推出SSE5指令集延伸技术,并计划配备在K10之后的下一代“Bulldozer”核心架构中,预计2009年推出实际产品。据了解,SSE5初期规划加入超过100指令,其中最值得注意的包括︰三操作数指令(3-OperandInstructions)及熔合乘法累积(FusedMultiplyAccumulate)。
AMD此前表示,SSE5指令集的使命之一是增强高性能计算应用,并充分发挥多核心、多媒体的并行优势。SSE5将把以往只存在于高性能特殊架构里的功能引入到x86平台中,以此最大化每条指令的输出能力,并增强代码库。
2007年8月,AMD抢先宣布了SSE5指令集(之前从SSE到SSE4均为Intel制定),但Intel随即表示,不会支持SSE5。转而在2008年3月,Intel宣布了SandyBridge微架构,其中将引入全新的AVX指令集。4月份,Intel公布了AVX指令集规范,随后开始不断进行更新。
Intel此举很大程度影响了未来软件厂商的支持取向,AMD在业内的影响力远不及Intel,如果AMD单方面力挺SSE5,势必在未来的性能对抗中落败;迫于竞争压力,AMD不得不选择支持Intel提出的AVX(高级矢量扩展)指令集,同时采用AVX架构重新改写AMD的SSE5指令集,重定义为XOP(eXtendedOperations指令扩展),CVT16(半精度浮点转换)以及FMA4(4操作数乘加)。
Bulldozer历经艰难终将登场
做出这个决定是需要付出惨重代价的,这意味着处理器架构要做大幅调整,到了08年11月,AMD的最新路线图就显示,Bulldozer已经推迟到了2011年推出。AMD在推土机处理器上,可以说重重摔了一个大跟头,这也就促使了AMD要绕过CPU,通过自身优势项目来弥补自身缺陷,很显然这个任务就落到了GPU身上。
APUV.S.CPU:开放挑战独断
另外,AMD发展APU有着很大应用需求发展背景,因为我们日常电脑使用中,会接触到越来越多的3D计算、并行数据信息,比如我们未来的网页将会向3D化发展,我们的视频信息需要进行高速并行处理,这种计算正是GPU的优势所在。这种需求也就成为APU发展的基础。
CPU自身结构是工作频率高,核心数少,如果进行大规模并行计算的话,显然比GPU要占下风,尽管可以通过优化处理器指令集来加速这种计算性能,但是,未来用户发展需求在不断变化,而指令集牢牢被Intel一家所占据,显然不可能根据应用发展通过完全开放的编程实现优化。
而目前GPU技术已经发展到DirectX11,已经有OpenCL和DirectCompute这些公开的业界接口标准,如果未来软件都支持了OpenCL和DirectCompute以后,它带来的加速效果可能要比处理器指令集来的更好,孤零零闭门造车的指令集重要性可能就不会像前几年那么高了。