AMD开发者峰会报道:迎接异构计算新时代

AMD开发者峰会报道:迎接异构计算新时代

http://news.csdn.net/a/20110615/299813.html     作者:刘江

6月13—16日,全球著名的芯片设计公司AMD在美国西雅图Bellevue举行了首届开发者大会——AMD Fusion Developer Summit。一家芯片公司,为什么会选在这样的时机在开发者社区上发力?CSDN暨《程序员》杂志总编刘江受邀参加了本次会议,将为你带来系列报道。下文是他对会议的观察。

首届AMD Fusion开发者峰会引起了媒体广泛关注,会场内外能看到众多世界各地媒体的身影。另外,有700多来自全球的技术人员、学者参会。会议的技术讲座超过百场,分为多媒体处理、编程模型、用户界面与媒体体验、安全、高性能计算、专业图形学与可视化计算六大主题。规模和热度都超出我的预期。

Fusion APU:AMD的异构计算核心

会议首日媒体的焦点之一,是面向主流消费类笔记本和台式机的Fusion A系列(代号Llano)APU以及HP等相关笔记本产品的发布。A系列APU超长的电池续航能力、强大的计算能力和多媒体处理能力都给人留下深刻印象。

APU指的是加速处理器(Accelerated Processing Unit),是AMD近年推出的全新计算架构,其中结合了x86的CPU核心和GPU(图形处理单元)核心,能够充分利用擅长于串行处理、主频较高、运算能力更强的CPU,与擅长并行处理、能耗更低、核心数更多的GPU两者的长处,是异构计算技术潮流的代表之一。由于通过增加CPU时钟频率和内核数量而提高计算能力的传统方式遇到了散热和能耗瓶颈,计算机业界近年来已经将进一步提升计算能力的关注点转移到GPU等专用计算单元身上。GPU虽然工作频率较低,但具有更多的内核数和并行计算能力,总体性能-芯片面积比和性能-功耗比都很高,却长期远远没有得到充分利用。此前微软在IE9发布时强调的硬件加速、充分利用PC的能力等等,其实说的也是如何用好GPU。

如果放到更长的历史中来看,以APU为核心的Fusion战略实际上是AMD关键转型的重要组成部分。我们都知道,AMD是由一群仙童半导体的工程师于1969年创建的,在此一年前,仙童公司的创始人Moore(摩尔定律提出者)和Noyce也自立门户,创立了Intel公司。40多年来,两个公司一直将对方视为最主要的竞争对手,而成立较晚的AMD在WinTel时代基本上处于追随者的角色,虽然也经常有让人眼前一亮的创新,但是很难打破Intel主导的局面。

2006年AMD敏锐地发现了异构计算的大趋势,收购著名GPU厂商ATI。在经历了收购早期连连亏损的阵痛之后,近两年来公司的整个战略开始彻底摆脱Intel的阴影,通过高举异构计算和Fusion(融聚未来)的大旗走自己的路。不少评测已经显示,Fusion系列APU相比Intel的Sandy Bridge有明显的优势,而且支持DirectX 11,已经向Intel发起强有力的挑战,可以说AMD的这一战略转型已经开始结出硕果。

异构计算被业界视为继单核、多核之后的第三个时代,将打破摩尔定律,有效解决能耗、可扩展性等问题。当然,异构计算才刚刚开始,编程模型不成熟,代码复杂度较高,通信开销较大,都是阻碍因素。我在会场上遇到一位来自高通的工程师,他表示对异构计算长期看好,但短期内还有很多难题要解决。高通2009年收购了AMD移动部门,在手机和平板芯片领域,与NVidia、TI的竞争非常激烈。

关于APU的更多情况,可以阅读AMD的白皮书《APU 101》(PDF)。

Fusion系统架构:以开放求共赢

大会第一个主题演讲是由AMD Fellow Phil Rogers介绍Fusion战略与FSA(Fusion System Architecure)架构(可以在这里观看视频)。FSA虽然目前主要是基于AMD自己开发的x86处理器和GPU,但接下来将转化为一个由FSAIL虚拟ISA、FSA内存模型和FSA调度等开放标准组成的一个开放架构,ISA本身是CPU和GPU中立的。AMD计划邀请硬件、操作系统、软件工具与中间件和应用开发等方面的合作伙伴共同加入,组成一个评审委员会。

有了这样的铺垫,下午的另一个主题演讲嘉宾是来自ARM的Fellow Jem Davies也就不那么奇怪了。众所周知,在芯片市场,AMD和Intel是x86阵营的,ARM以及众多同盟军则代表另一个阵营。由于移动互联网和云计算的兴起,无论移动设备端还是服务器端都对芯片的能耗提出了更高要求。ARM也因此而不断攻城略地,对x86阵营产生了巨大威胁。

而Fusion系统架构的提出,感觉一方面是针对NVidia CUDA的,意在争夺OpenCL硬件平台的主导权。另一方面,当然也为下一步与ARM合作,再次进军手机等移动设备,埋下伏笔。ARM的演讲中明确表示,双方对技术趋势的看法有广泛的共识。而ARM在开放生态环境方面的成功经验,相信对AMD也有很大的借鉴意义。

Phil Rogers所介绍的FSA路线图如下所示。

开发人员应该怎样面对硬件变革?

ARM架构的兴起,GPU等昔日专用的处理器日益成为重要的计算平台,可以说底层硬件变革之剧烈,为近二十年所未见。这些对开发人员的意义何在呢?

15日大会的第一个主题演讲者是国内程序员非常熟悉的Herb Sutter。他是C++标准化委员会的主席,写过《C++编程规范》、《Exceptional C++》等名著。现任微软本机语言主任架构师。2005年,正是他写的一篇“免费午餐已经结束”(《程序员》杂志的译文)使许多程序员开始关注并行编程。

Sutter此次演讲响应了Phil Rogers昨天对单核、多核、异构三代计算模式的分法。他还强调说,体系架构方面目前谈论最多的多核、GPGPU和云计算IaaS/HaaS等等新词,其实都是指一个大趋势:异构并行计算。也就是说,在终端设备和服务器/数据中心云端,硬件架构发展的趋势是一致的。

开发人员为了获得更多先发和竞争优势,应该开始考虑并行计算技术,尤其是有图形密集或者计算密集型逻辑的应用,采用GPU硬件加速有现成的效果。第二天Corel公司CTO的演讲中给出了一些具体的例子。但他也强调,凡事都有特例,不要将并行计算当成锤子到处砸,应该有系统的优化策略,用决策树等手段来进行设计。

ARM Fellow Jem Davis则在第二天圆桌讨论中强调程序员应该有能耗意识,了解不同背景下,各种语句、指令会耗费多少能量。当然,开发工具需要对此提供支持。

在具体技术上,本次大会OpenCL(由Apple最早开发,现由Khronos组织管理的开放异构计算框架)、微软的DirectCompute都是热点。而Herb Sutter在主题演讲中发布并宣布将开放的C++ AMP(accelerated massive parallelism)框架也引起了热烈反响。这是微软在VS2010中引入PPL(Parallel Patterns Library)多核特性之后的走向异构计算的重要一步。微软负责开发工具部门的高级副总裁Somasegar随后在自己的博客中表示,计划将AMP加入Visual C++编译器和Visual Studio新版本中。

AMD在本次大会也发布了许多面向开发人员的工具和软件,都可以在AMD Developer Central网站下载使用。包括:

1. 先进的OpenCL和OpenGL调试器、 程序分析器和内存分析器gDEBugger(以Visual Studio插件形式提供),由来自AMD新组建的以色列研究中心的专家打造,该研究中心是在AMD于2010年10月收购新创公司Graphic Remedy的基础上组建的。

2. 先进的分析工具并行路径分析器(PPA),用于开发能够同时优化GPU和CPU负载的应用。PPA使数据传输和核心执行可视化,能够识别整个系统范围的关键路径,定位数据依赖性。

3. 加速器全局存储器(GMAC) API,帮助开发人员利用OpenCL的巨大计算能力来创建应用,但却不必专门在GPU和CPU的不同地址空间去管理多个数据缓冲区。

4. 任务管理器API,提供在某一异构多核环境中管理计算任务的框架。OpenCL核心可以被自动安排来在一个可用的、适合相关任务的设备上执行指令,从而提供动态负载平衡、优化可用计算资源的使用,免除专门处理时间表的负担。

在会后的闲谈中,我问Herb Sutter普通程序员如何为这一轮硬件变革做好准备,他的建议是,从微软C++ PPL的学习和使用开始。

搜索了一下,MSDN里有讲述PPL的完整电子书,分为C++和.NET两个版本:

Parallel Programming with Microsoft Visual C++

Parallel Programming with Microsoft .NET

当然,学习OpenCL也是开始转向异构计算的很好途径。除了OpenCL标准(英文PDF)本身外,AMD中国还出版了一本中文电子书(PDF),可以参考。