GPU挑战CPU地位!详解CUDA+OpenCL威力
可能很多朋友还心存疑惑:目前CPU的性能已经很强大了,为什么还要花很大的代价让GPU进行辅助运算呢?这个问题可以从两个角度来回答:一般我们认为CPU在浮点运算/并行计算方面的性能远不如GPU强大,所以将GPU的实力释放出来可以将电脑获得新的飞跃;如果从更深层面考虑的话,目前CPU的发展已经遇到了瓶颈,无论核心架构的效率还是核心数量都很难获得大幅提升,而GPU则是新的突破点,它的潜力几乎是无限的!
● CPU核心效率提升举步维艰
就拿目前Intel最强的Core i7处理器来说,架构方面相比上代Core 2 Quad发生了天翻地覆的变化:胶水四核变成了原生四核、引入三级缓存、高速QPI总线、三通道DDR3内存控制器、超线程技术、诸多内核及指令集优化等等……,所有这些技术共同作用的结果就是——同频率下i7 965的综合性能仅比上代QX9770提升了10-20%,这说明了什么呢?说明Intel的处理器架构已经非常优秀了,以至于在此基础上很难再有Pentium D到Core 2 Duo那种飞跃式提升。
Core i7的性能表现没有带来惊喜
AMD方面的情况也大致如此,Phenom II相比Phenom的提升主要来自于45nm工艺带来的高频率,核心架构优化的贡献仅有不到5%。目前两大处理器巨头单核心效能都已接近极限,只能依靠新工艺带来的大缓存、高频率,而获得微弱的性能提升。
● CPU核心数量不能盲目增加
既然单核效率已经很难取得突破,于是处理器巨头近年来都将发展方向转为多核心产品,双核四核六核八核相继诞生。但美国Sandia国家实验室日前的一项模拟测试却让人大跌眼镜:由于存储机制和内存带宽的限制,16核、32核甚至64核处理器对于超级计算机来说,不仅不能带来性能提升,甚至可能导致效率的大幅度下降。
根据他们的模拟,8核心之后再往处理器内塞入更多的核心,并不能带来性能提升,在数据处理应用中反而会出现性能下滑。“16核的表现就和双核差不多”。他们近一年来和业内处理器厂商、超级计算机厂商以及超级计算机用户进行了大量讨论。得出的结论是,如果不对计算机架构作出修改,未来当出现16核32核处理器时,为超级计算机编程的程序员或许只好屏蔽部分核心,或是将这些处理器用于非重点运算应用。
● Intel的"80核CPU"其实是颗GPU
当然业界领袖Intel也意识到了多核CPU发展之路遇到了瓶颈,因此在准备传统六核/八核处理器的同时,也在紧锣密鼓的研制另一种群核处理器——GPU以及类似于GPU架构的混合处理器。
就拿Intel代号为“Larrabee”的GPU来说,它是对IA-32(x86)新指令集的一种扩展,其内部是由N颗Pentium处理器核心加上一个16路的向量处理器组合而成的。Larrabee最初的目标是独立显示处理领域,与CPU组合使用。可是Larrabee与GPU相比又有所不同,所谓的Larrabee是能够支持某种程度scalar运算的支持单体OS的CPU。
80核心处理器结构示意图
此外,Intel还公布了另一款研发中的80核心处理器实物和架构,事实上这是一颗彻头彻尾的并行计算处理器,每颗核心都包括了两个浮点运算单元,怎么看都像是一颗GPU的架构。从这个意义来看,Larrabee与80核CPU是Intel将来CPU产品的一面镜子。现有的Core 2和Core i7处理器将来会如何向PC&服务器通用处理器进化呢?从这些变种处理器身上我们也可以看到2010年以后Intel的发展方向。
或许我们可以这样认为,未来CPU与GPU之间的界限会非常模糊,多核CPU的架构设计会向现有GPU的模式靠拢,而GPU也不会满足于仅处理一些无聊的3D渲染任务,在特定API及开发平台的支持下,GPU将会取代CPU处理繁重的并行计算任务。