当前位置:首页 > 笔记本电脑 > 主流笔记本 > 新闻
重磅打造 从AFDS看异构计算发展
  • 2012-7-4 19:05:28
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:徐远志
  • 作者:徐远志
【电脑报在线】时隔一年,AMD的Fusion开发者峰会(AMD Fusion Developer Summit,简称AFDS)再度在西雅图附近的小镇贝尔维尤召开。而《电脑报》作为中国地区三家受邀媒体之一,也派出了记者全程参与。与上届AFDS发布第一代笔记本平台A系列APU(Accelerated Processing Units,加速处理器)并宣传异构计算概念不同,本届AFDS召开前,新一代


PART1:异构计算的前世今生
  相信绝大部分读者对“异构计算”(Heterogeneous Computing)这个词还不太了解,所以我们必须先告诉大家这是个什么东西,并让大家了解一下目前异构计算的价值,以及它目前的大环境。

  提炼句:“异构计算距我们并不遥远,视频播放/转码的GPU加速、网页和Photoshop的GPU加速,都是异构计算的范畴。异构计算的兴起是因为CPU的频率式发展模式遭遇到了散热和能耗瓶颈,而GPU强大的并行运算能力则能在很多地方显现威力。但目前,编程端还存在一定困难。”


●定义异构计算:不同处理单元协作
  异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。在我们熟悉的PC领域,最常见的两个使用不同类型指令集和体系架构的计算单元就是CPU和GPU(可简单理解为显卡),换句通俗的话说:在PC领域,异构计算就是CPU和GPU这两个不同的计算单元联合起来干活!

  当然,异构计算不仅在PC领域存在,在使用ARM处理器的职能手机、平板等移动设备领域也存在。甚至在服务器产品、工作站产品上也存在。换句话说:多颗不同指令集及体系架构的处理单元协同在一起工作,也算是异构计算。


图说:AMD的APU整合了CPU和GPU,并致力于CPU和GPU的协同工作,AMD是异构计算的有力推动者

●异构计算的发展背景——CPU发展受限
  异构计算近年来得到了业界的普遍关注,主要是因为通过提升CPU时钟频率和内核数量来提高计算能力的传统方式遇到了散热和能耗瓶颈。而GPU的单个处理单元(比如流处理器)虽然性能不及CPU的一个内核,但它具备大量的处理单元,所以并行计算能力是相当强的。只是前期大量软件都是针对CPU进行开发的,GPU强大的并行运算能力并未得到利用。而今CPU发展遇到了瓶颈,如何把GPU的潜能发挥出来,就成为业界关注的热点。


●异构计算的“前台”与“后台”
  想必看到这里,大家会想到一个这些年提得很频繁的词——“显卡通用计算”。是的,显卡通用计算(或称显卡加速),其实就是异构计算的主要“前台表象”。无论是Photoshop的GPU加速,还是视频转码的GPU加速,都是异构计算的范畴。

  不过,异构计算的范畴更大。从某种意义上说,异构计算不仅仅是GPU通用计算,还包含了“任务的智能分配”和“负载平衡”。也就是说,任务并非单纯由CPU或GPU完成,而是将任务智能分配给CPU和GPU,让它们各自完成自己擅长的那部分工作,以实现“效率最高”或“耗能最低”,抑或是达成某种特效,或是降低总体硬件成本。

  另外,异构计算还涉及到后台复杂的工作——这和编程有关。不同计算平台的各个层次上都存在异构现象,除硬件层的指令集、互联方式、内存层次之外,软件层中应用二进制接口、语言特性底层实现等的不同,对于上层应用和服务而言,都是异构的。在编程方面,由于指令集和体系架构的不同,目前来说并不方便,对于习惯了CPU编程的开发者来说,要折腾出一个程序,能够有效地分配、调用并组合CPU和GPU资源绝非易事。事实上,编程端,才是异构计算的难点所在。而业界目前努力的重点,正是要解决异构计算在编程上的复杂性。



图说:我们所熟悉的Photoshop GPU加速就是异构计算的一种

●硬件大佬的异构计算众生态
  AMD在芯片制造商中,算是异构计算这一概念的主要倡导者,并在很久以前就提出了“融合”(Fusion)概念。而在经历了上一代的Llano处理器后,新近发布的Trinity处理器在融合和异构计算方面也具备了更多的优势。解读芯片级技术或许太生涩难懂,但有个很简单的例子:新一代的Trinity不仅实现了CPU和GPU的深度融合,还能够在热设计功耗(TDP)内根据应用负载的需求,动态调整CPU和GPU的频率,从某种意义上说,这也是异构计算的一个重要技术。目前,AMD正致力于搭建起异构计算的开放生态环境,以促使异构计算得以迅速发展。

  英特尔的处理器不也有这个功能吗?是的,尽管英特尔处理器内的集成显卡性能不及AMD的强,且在台面上对异构计算这一概念并不理会,但事实上,它也在积极发展类似的技术,以实现GPU和CPU的合作。其最新的IVB处理器已经支持GPU通用计算的两大API*——OpenCL和DirectCompute。

  NVIDIA一直致力于显卡通用计算的发展,尽管它没有x86架构的处理器产品,其CUDA API只能单纯从GPU加速应用角度去发展,但由于开发得早(从GeForce 8000时代就开发出了CUDA),且精于宣传,所以在很多领域目前还走在了前面。另外,NVIDIA的显卡产品也一直支持OpenCL和DirectCompute。值得一提的是,CUDA原本是针对NVIDIA显卡的私有标准,如今也在朝着开放模式发展。而NVIDIA已经获得ARM授权在开发Tegra系列ARM架构处理器,异构计算或将在新款Tegra中出现。

  ARM是必须提到的厂商,它是微处理器行业的领头羊,设计了大量高能低耗且价格便宜的RISC架构处理器及相关技术,并将这些技术授权给高通、德州仪器、三星、NVIDIA这样的制造商用以制造各自的ARM架构处理器。ARM在去年的AFDS上就明确表态:ARM处理器的下一步变革就是要实现异构计算。



图说:不仅是硬件厂商,大量全球领先的独立软件开发商也都在围绕APU进行异构计算开发


注解:GPU通用计算API是什么?
  API,全称是Application Programming Interface,应用程序编程接口。这一概念解释起来比较复杂。而“通用计算API”我们可以这样来做简单理解:由于CPU与GPU架构完全不同,软件要在GPU上运行,就必须要有一种工具,把程序员的语言翻译成GPU听的懂的语言,而这个工具就叫做GPU通用计算API。

  由苹果主导并逐渐趋于主导地位的开放标准OpenCL,由微软主导的DirectCompute,以及由NVIDIA力推的CUDA,都可理解为GPU通用计算(也可说异构计算)的API。

本文出自2012-07-02出版的《电脑报》第26期 C.笔记本整机
(网站编辑:周俊)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交
读者活动
48小时点击排行
论坛热帖