从AFDS 2012看异构计算 无处不在的应用zz

来源:互联网 发布:纳粹党卫军军服淘宝 编辑:程序博客网 时间:2024/05/16 07:07


发表于2012-07-23 14:50| 978次阅读| 来源《电脑报》|0 条评论| 作者徐远志
HSAAMDOpenCLAFDS异构编程
摘要:时隔一年,AMD的Fusion开发者峰会再度在西雅图附近的小镇贝尔维尤召开。与上届AFDS发布第一代笔记本平台A系列APU并宣传异构计算概念不同,本届AFDS召开前,新一代Trinity APU已经发布,而异构计算,也成为了本届AFDS的重点。

时隔一年,AMD的Fusion开发者峰会(AMD Fusion Developer Summit,简称AFDS)再度在西雅图附近的小镇贝尔维尤召开。而《电脑报》作为中国地区三家受邀媒体之一,也派出了记者全程参与。与上届AFDS发 布第一代笔记本平台A系列APU并宣传异构计算概念不同,本届AFDS召开前,新一代Trinity APU已经发布,而异构计算,也成为了本届AFDS的重点。时隔一年后,AMD以融合概念打造的异构计算进展如何?“异构计算”这个略显晦涩的词又到底能 够给我们带来什么?本届AFDS给了我们明确的回答!

PART1:异构计算的前世今生

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

提炼句:“异构计算距我们并不遥远,视频播放/转码的GPU加速、网页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处理器的下一步变革就是要实现异构计 算。

图说:不仅是硬件厂商,大量全球领先的独立软件开发商也都支持异构计算

注解:GPU通用计算的API是什么?

 

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

 

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

PART2:无处不在的异构计算应用

异构计算并不神秘,目前已渗透各个领域,不仅是PC领域,也包括了手持移动设备领域、行业领域,甚至是云计算、分布式计算领域。事实上,异构计算至 少在应用端(前台)并不像它的名字这样生涩,很多应用里面,都有异构计算的身影。小到网页及视频加速,大到DNA计算、蛋白质计算、气象运算,都能和异构 计算搭上关系。

下面,我们将给大家展示3个AFDS 2012上的异构计算应用案例,让大家进一步了解异构计算。而它们中的一些还和我们的日常应用息息相关!

提炼句:“一些看似不复杂的应用,实则需要海量的计算,而异构计算在这些领域就能大显身手。而异构计算还能服务更多的领域,包括云计算领域。”

AMD视频稳定技术

视频是和大家息息相关高频应用。而AMD、英特尔和NVIDIA在视频领域都有GPU加速/解码/转码技术——这一点大家都知道了。但还有些技术可能大家还不了解,比如图像稳定技术。

我们时常遇到抖动的视频,这种抖动可能源于拍摄者的手不稳,也可能是因为长焦拍摄。无论如何,AMD通过异构计算拿出了解决方案:2011年 中,AMD宣布了“Steady Video”技术,可以实时对抖动画面进行稳定化处理。不过由于缺乏播放软件的支持,该技术一直是“只闻其声,不见其形”,真正的应用并不多。而在 AFDS 2012上,这一技术的升级版再度出击——与去年不同的是,如今,你使用APU平台笔记本,抑或是使用带有AMD独显,就能实实在在地感受到这一技术带来 的良好特性。

YouTube视频在线播放目前已经能够一键开启Steady Video技术(绝大部分和主流浏览器都支持),而且,这种技术甚至已经能够在Windows Media Player上实现!

我们在最新的A10-4600M APU笔记本上进行了实测(Win 7系统),以佳能SX30 IS拍摄.mov格式的视频。实测中我们发现,只要视频初期存在抖动,在用Windows Media Player进行播放时,Steady Video功能就会自动开启——这时,在播放界面的右下角会短暂出现Steady Video的图标,说明该功能正在启用。而我们用35倍光学变焦拍摄的视频,其图像稳定的效果非常显著!

Steady Video是一个很典型的异构计算应用,因为它并非完全采用GPU而解放CPU资源,而是将实时的视频图像处理任务进行了智能分工,分别交给CPU和GPU共同完成。

图说:720P视频播放实测截图,开启AMD Steady Video后画面的稳定性大大提升,效果显著

  • 人脸识别

人脸识别是生物识别这个大范畴中的一类,目前广泛地运用在日常的娱乐生活中,相机拍照、摄像头人脸识别登录,甚至是目前很火的摄像头动作感应游戏,都是基于人脸识别系统的。那么,人脸识别怎么会和异构计算扯上关系的呢?

人脸识别系统后台有面部模型,而其识别工作方式可能是这样的(不同软件会有区别):先把画面分成若干区域,大家可理解为一个区域对应一个识别框。然 后,针对识别框进行识别和判定。每个识别框不是完全独立的,而是有大量重复区域。也就是说,整个画面会被分成海量的区域(识别框)。工作量如此大的“重复 简单劳动”,让CPU来运算就很头疼了——因为它得一个一个地(特指单核CPU)比对、判定,就像跑马拉松;而GPU的核非常多,可同时对多个识别框进行 比对和判定,效率大大提升。

或许有人会说:CPU速度快,可以弥补数量的不足。但人脸识别绝非图示那么简单。举例来说,如果识别框的大小设定不对(如下图),就无法正常识别到 人脸。那么在完成一次全画面识别后,需让识别框变大点再从头开始——这样看来,就是恐怖的工作量了。一张1920×1080分辨率的静态图片若经多次识别 框大小调整并最终找到人脸,识别(框)总量大概为4百万个!如果是动态视频(等同于人脸跟踪),每秒的运算量还要翻几十倍!很显然,这类工作是GPU的专 长。同时,GPU还会引入新的算法,会将画面先分为若干独立区域,利用面部模型先排除掉完全无人脸特征的区域,然后对剩下的区域进行并行计算(识别),效 率可大幅提升。

图说:人脸识别绝对想象中那么简单,人脸的大小和运动状态,都极大影响着运算量——GPU在人脸识别中价值重大

延伸阅读:生物识别应用与异构计算

前面提到了,人脸识别是生物识别(Biometric)的一种。生物识别包含了人脸识别、人体识别、声音识别、指纹识别、视网膜识别。而这几种识 别,大家已不陌生。摄像头人脸识别系统登录、指纹打卡,是我们经常接触到的。而影视作品中则经常出现视网膜安全认证这一“高阶应用”。

不过,生物识别能带给我们的远不止这些。一旦将它结合上别的技术,就能带来相当炫酷的应用:

想必大家记得不少科幻作品中(例如《钢铁侠》),主角通过眼镜或头盔,不仅能正常观察周遭环境,还能看到很多数据——敌方速度、数量,抑或是自身的 武器数量、自身武器的损伤情况、动力数据等。这就是基于视网膜和瞳孔扫描的应用——信息的显示必须紧跟着瞳孔的方向,才能让使用者能正常浏览。事实上,这 已不完全是科幻,目前部分军用战机驾驶员已开始使用类似技术的产品。另外,虚拟购物和生物识别其实也有关系,购买者可以实际看到自己试穿或试戴的效果,对 人体的识别和跟踪,使这一应用成为了可能。很多摄像头感应游戏,也是基于人体识别。

而上面提到的所有应用,其实同人脸识别一样,也都能和异构计算挂上钩!

图说:生物识别技术可以延展出的应用相当丰富,而这些也和异构计算能够挂上钩^__^

  • 星云计算

星云计算,这个词对于咱普通人可能觉得有些陌生,只知道通过各种太空望远镜和卫星拍摄的星云图、星系图好漂亮!不过宇宙中有数不清的星星,一个星系可能就有上万亿颗星星(银河系有400亿颗),而目前探知的星系就有1250亿个……

如果天文学家要演示和模拟星球的运行和分布,将一个星系图线性放大到星球图,会是多大的工作量呢!?很显然,内核不多的CPU干这个活儿是难以想象 的。拥有上千流处理器的GPU干起来效率就高多了。通过GPU的加速,可以实现多至数百万个运算星体的的处理工作,图像缩放时可达60帧/秒,观看者完全 感觉不到停顿。

当然,如果纯粹是GPU运算,CPU就闲着了,所以,如果能够动态结合CPU极高的频率和GPU的并行运算能力,效率就能得到最大的提升。在这个应用中,节能不是第一要素,而是在固定的投入下发挥出最大工作效率,这也是异构计算的目的之一。

图说:从星系显示线性放大到星球显示,如此大的工作量,异构计算是最佳的选择

PART3:不得不提的HSA基金会

从前面的文章中我们了解到了异构计算的价值,以及部分典型应用。不过,正如前面提到的,在绝大部分都是针对CPU编程的大环境中,异构计算在编程端 其实有难度的,即便是针对OpenCL这一目前公认的标准,编程往往也会耗费更多的时间。而在手持移动设备兴起、多操作系统崛起的浪潮中,如果编程缺乏通 用性,不能跨平台,那么异构计算的普及也将受到很大阻碍。所以,AMD必须努力构建关于异构计算的生态环境,而这里也就必须提到异构系统架构基金会(简称 HSA基金会)。

提炼句:“异构系统架构基金会的最终目标,是搭建起一个开放的平台,进而实现异构编程的便捷性和跨平台化。”

  • HSA基金会成立

在AFDS 2012上有一件行业大事,那就是AMD、ARM、Imagination Technologies、联发科(MTK)和德州仪器(TI)联合宣布成立“异构系统架构基金会”(以下简称HSA基金会)。

HSA基金会是一个非盈利性组织,其宗旨是定义和推广开放的、基于标准的异构计算发展之道,通过提供通用硬件规格和广泛的生态系统支持,使软件开发 人员更大程度发挥最新的异构处理器的优势,从而更轻松地完成各种创新应用的开发。其创始成员将共同努力,促成单一架构规范的建立,并简化编程模式,从而帮 助软件开发人员更大程度地利用CPU和GPU的功能,继而充分发挥异构处理器中并行计算引擎的性能和能效。

  • 创始成员的声音

HSA总裁兼AMD 院士Phil Rogers:

AMD设计出了针对高性能和高能效解决方案的通用硬件平台。异构系统架构正在一系列新应用上发挥优势,包括PC、智能手机、平板电脑,以及超级计算 机和云服务。基金会欢迎所有半导体公司、平台和操作系统供应商、硬件生产商、独立软件供应商、学术机构和开源开发者加入。我们计划为异构计算提供可靠的开 发方案,并提供开发工具、软件开发者工具包(SDKs)、程序库、文档资料和培训,推动创新内容和应用的出现。

ARM院士、技术和媒体处理器部门副总裁Jem Davies:

图形界面在对用户体验至关重要的同时却存在着能效问题。采用开放标准后,开发者可同时提供卓越图形体验和高能效。ARM在异构系统方面具有丰富经验,能为特定任务开发特定计算处理器,并提供独特的、行业领先的视角。

Imagination Technologies营销副总裁Tony King-Smith:

异构处理架构是实现可扩展的、灵活和高性能的未来片上系统(SoC)设计的基础。利用诸如OpenCL、DirectCompute等行业标准 API,将CPU与性能日益强大的GPU相结合,是这条道路上至关重要的第一步。基金会将为保证最便携和最优化的异构应用提供一套宝贵的跨平台和跨操作系 统的手段。

联发科公司技术办公室高级总监Chien-Ping Lu:

联发科对于异构计算在实现创新性移动应用方面的潜力感到非常高兴。一个开放的标准是将科技带向主流智能手机市场的关键。作为专注于主流智能手机芯片组和平台的供应商,我们很高兴能够同AMD等行业领导者一起,推动异构系统架构成为异构计算的开放标准。

德州仪器Linux 开发中心总监Matthew Locke:

我们期待着与其他行业领导者共同推动异构计算成为嵌入式、移动、个人计算和云计算等领域的标准化平台。

  • 对话AMD

HSA基金会希望让异构编程成为主流,且最终实现跨平台

AMD副总裁Manju Hegde

电脑报:目前基于GPU的编程并不容易,还存在开发周期长且有时反而会增加能耗的问题,还没有达成特别理想的状态。而解决这个问题应该就是HSA基金会努力的方向吧?

Manju Hegde:是的。目前基于GPU编程是存在一些问题。由于GPU和CPU是两套Memory系统,其间设计(涉及)到很多问题,而如果编程人员对GPU 编程部(不)熟悉,的确就会出现你说的这些问题。我们正在致力于改变这一切。异构架构处理器本身就解决了显存和内存的统一问题,实际上只有一套 Memory,这样很多问题就能得到解决。如果编程状态良好,异构系统会大大提升效率抑或是降低功耗。另外我们也积极扩展生态系统,近日AMD率先发布了 与OpenCL 1.2规范具有一致性且全面支持C++的AMD APP SDK2.7,它扩展了OpenCL应用生态系统,这是我们继续引领OpenCL标准发展的强力证明。它可帮助开发人员更轻松利用异构计算的优势,并进一 步发挥AMD APU(CPU和GPU)强大的计算能力来简化应用程序编程。

另外,HSA基金会要努力的方向,不仅仅是开放和共享技术,并对编程人员进行培训,使异构编程能够成为主流。我们也希望在未来,同一套代码,在 x86平台上和ARM平台上,通过不同的编译器,都可以进行运行,也就是跨平台——你也注意到了,目前HSA基金会里除了AMD,其他创始成员都是ARM 系厂商。

KAVERI产品将真正基于异构架构

AMD高级副总裁兼首席技术官Mark Papermaster

电脑报:异构计算的普及会涉及开发者教育、培训等,另外必须有相应的产品做支撑,能描述一下这两方面的工作吗?

Mark Papermaster:我们的两个战略正好可以回答这个问题。第一是创建生态系统,鼓励软件开发,这是指合作方面,这也正是HAS基金会的工作。这个合 作将为软件开发者创建一个共同的目标,通过提供开发工具、编译程序、教材等手段来实现。事实上我们还有相关的大学教育计划。也就是说,HSA基金会的努力 不仅是针对公司层面的,也针对小型和个体开发者,大家都会从中受益。第二是AMD自己的产品路线,我们的APU产品路线将受益于HAS平台加速,明年的 KAVERI产品将是真正使用HSA的产品,它的应用将利用HSA平台进行开发,这将使软件开发者更容易地采用更多示例编程结构进行编程。

第四季度推出平板产品处理器

 

电脑报:我们注意到在本届AFDS的主题演讲中经常出现手持移动设备,这是否意味着AMD不久后就会进入手持移动设备领域?

Mark Papermaster:我们会继续关注我们目前的市场领域,但我们也将为客户增加更多的价值,比如服务器和手持终端。我们在今年第四季度会发布 Hondo,这是AMD的第一代针对平板类产品的超低功耗APU产品。而2013年,我们会发布Temash,这是AMD的第二代超低功耗APU产品平 台,面对的也是10英寸左右的平板类产品。

明年将会推出整合ARM TrustZone安全芯片的APU产品

AMD副总裁兼院士Leendert van Doorn

电脑报:ARM是HSA基金会的合作创始成员之一,而日前AMD还宣布了与ARM在安全领域展开战略合作,能够详细描述一下合作的内容和形式吗?对普通消费者有什么好处呢?

Leendert van Doorn:这一合作主要是在安全领域展开的。ARM的TrustZone硬件安全技术将进入AMD的产品中。明年,你会看到整合了一颗ARM处理器的 APU产品出现——这颗ARM处理器就是TrustZone硬件安全方面的处理器,是一颗ARM Cortex-A5处理器。AMD将以SoC系统单芯片的方式将这颗处理器整合进APU中,封装在一起——而这,也是一种异构架构的形式。

普通的消费者将能享受到硬件级的安全,这比软件层面的安全措施可靠得多,在数据安全和支付安全方面,消费者都会受益。比如,消费者在电脑上进行在线 支付时,总担心密码会不会被一些恶意软件偷走,而有了硬件级的安全,我们甚至可以在系统启动前就屏蔽掉所有的病毒和恶意软件,也可以在密码输入时关闭掉所 有的周边程序,让密码的输入过程不会别其他任何程序“感知”,以此来确保支付的安全性。(文/徐远志)

记者手记:

异构计算不仅是“反击”

本报记者徐远志摄于西雅图本报记者徐远志摄于西雅图

异构计算目前还面临一些问题,但这些问题并不能阻碍它的发展,HSA基金会的成立,也正是包括AMD在内的业界厂商面对问题、解决问题的重大努力。 或许在数年后,异构计算这个词将不会被提及,因为那是,它已经芯片技术的和编程技术的主流,而非“异构”。我们也期待那一天的到来。

AMD近年来开始推广异构计算概念,而不少媒体将其定性为“对英特尔的反击”,认为AMD之所以如此大力支持异构计算,是希望借此打破英特尔在CPU上的垄断地位,利用自身GPU的强势,以及CPU与GPU的整合优势另辟蹊径,从而使自己站在更有利的位置上抗击竞争对手。

不过在我看来,异构计算并不仅仅是“反击”。从某种意义上说,它是处理器发展的一个方向,一个正确的方向。充分调动CPU和GPU,甚至是更多处理单元的威力,智能分配任务,协同工作,以实现最优性能或最低功耗,抑或是达成某种功能和应用,是处理器发展的正确方向。

这个方向不仅是针对PC端,甚至不仅是针对x86架构,服务器、手持移动设备,x86、ARM,异构计算都是正确的方向。事实上,英特尔、 NVIDIA等厂商也正在朝着这个方向努力——不管它们是不是表面上对异构计算“不感冒”。NVIDIA的CUDA正在走向开放,英特尔也将在2013或 2014年发布整合Larrabee GPU的“Multi Core”(众核)概念产品。名称不同、技术不同,但大方向是相同的。(责编/包研)

0 0