- 2013-12-23 19:19:46
- 类型:原创
- 来源:电脑报
- 报纸编辑:程朋
- 作者:
谈到AMD,大家首先想到它是英特尔的死对头。的确,作为X86桌面处理器的“二哥”,AMD长期被英特尔打压得“不成人样”,多亏收购ATI后借助GPU的优势才得以苦苦支撑下去,特别是随着CPU+GPU异构系统的日渐流行,让AMD似乎看到了希望。不过,随着英特尔Xeon Phi协处理器的出现,AMD的安稳日子似乎又要结束了。或许是迫于英特尔在异构领域的威胁,AMD终于明白了“打架也得拉帮结派”的道理,这不,前不久AMD就宣布与开源社区和技术伙伴们联手推动其下一代APU产品……
异构系统在HPC中渐成趋势
提到超级计算机,可能许多朋友并不是很了解。它不同于我们以往所见到的普通家用或商务PC,从定义上来讲,超级计算机通常是指由数百、数千甚至更多的处理器(机)组成的、能计算普通PC和服务器不能完成的大型复杂课题的计算机。由于采用通用CPU打造超级计算机规模大、功耗大,不仅制造起来费用高,而且使用起来也不一定好用。所以,从2005年以来,技术人员一直在研究如何将通用CPU和GPU加速器结合起来提高超级计算机的计算性能。目前异构计算系统已经在超算领域起着至关重要的作用。如异构系统现在已经被认为是冲击全球HPC TOP500的利器,甚至在最近几年的榜单中,基本上第一名的HPC都采用了异构系统,而美国的很多高性能超算中心和德国的一些超算中心都采用了GPU加速并行计算。在现在的超级计算机中,CPU只贡献了10%左右的计算性能,甚至还要更低,GPU却贡献了大部分计算任务,很多的计算性能都是由GPU来完成的。可以说,异构计算已经成为了全球超算中心的重要发展方向。
虽然异构计算系统的魅力不少,但也有不少的缺点。在传统的异构计算系统中,GPU还是作为CPU的协作处理器存在,通过PCIe线传输数据,这似乎是一个严重的瓶颈,GPU有两个问题。
第一是硬件瓶颈问题,就是GPU与CPU之间的通信和数据搬迁造成成性能功耗比较低的问题。CPU代码通过系统调用向GPU发送任务,此类系统调用一般由GPU驱动程序管理,而驱动程序本身又受到其他调度程序管理。这么多的环节造成了很大的调用开销,以至于只有在需要处理的数据规模足够大、任务的并行计算量足够多时,这样的调用开销才是划算的。而其他的调用形式,比如由GPU向 CPU发送任务,或者GPU向自己发送任务,在今天还不被支持。
第二是硬件特定编码的特性问题。当前CPU和GPU是分立设计的处理器,不能高效率地协同工作,编写同时运行于CPU和GPU的程序也相当麻烦。由于CPU和GPU拥有独立的地址空间,应用程序不得不控制数据在CPU和 GPU之间的流动。目前的CPU+GPU异构系统,针对GPU加速卡的应用程序都要用重新编写,这对开发人员来说是一个巨大的挑战。在图形图像处理中,大部分的操作是流水线化的,这对于流处理器来说没有任何问题,但是一旦有了分支、线程并行、数据交换等情况,流处理器就显得“无所适从”。
受架构制约,GPU只有在大量规则数据并行环境中才能发挥其优势,而程序中的分支跳转以及线程间的数据共享都是GPU的软肋。特别是受硬件特定编码的制约,开发人员需要对针对GPU的应用程序进行大量优化,以挖掘出GPU的并行性能,这个优化过程需要开发人员对GPU结构和被优化的程序有深刻地理解,这和在通用处理器编程中打开几个优化选项的难度不可同日而语。
正是看到了CPU+GPU异构系统所存在的不足,英特尔推出了Xeon Phi协处理器,在异构系统市场大有后发制人的气势。英特尔至强处理器+Xeon Phi协处理器作为异构系统发展的另一个全新方向,由于架构仍沿用X86指令集的编程体系,本质上还是一个通用的Xeon内核,这使得原来的编程模式可以通用。因此研发人员在开发针对Xeon Phi平台的软件时,是在一个较为熟悉的领域继续开展研发工作——能够通过使用标准的C、C++和Frotran源代码进行编程,以简化开发和优化过程,这一优势是传统异构架构(使用CPU与GPU加速器的组合)所无法实现的。如在6月17日,采用Xeon E5与Xeon Phi的“天河二号”就将采用AMD Opteron 6274+NVIDIA Tesla K20的“泰坦”(Titan)拉下了全球HPC TOP500榜的冠军宝座。
“天河二号”采用了英特尔Xeon Phi协处理器
面对来自英特尔的威胁,为了充分释放并行处理器的计算能力,以CPU+GPU异架构为代表的AMD到了必须创新的时候了:必须重塑计算系统,把同一个平台上分立的处理单元紧密整合成为单颗处理器,同时不要大幅改变软件开发者的原有编程方式,而AMD正在与开源社区和技术伙伴们联手推动的下一代APU产品就是为了解决这些问题。
AMD欲革新传统异构系统AMD下一代APU实际上是把CPU和GPU结合起来做了一个架构——被称为Heterogeneous System Architecture(HSA),这是一个新的异构架构,这个架构最大的特点是解决了两个问题。
AMD推出的采用新异构架构HAS的APU
HAS的首要任务就是让CPU与GPU合作更亲密无间,通过无缝地分配相应的任务至最适合的处理单元,使CPU、GPU和其他处理器和谐地工作在单一芯片上。上一代APU虽然已经将CPU和GPU无缝地融合在一起,但并没有实现“分配相应的任务至最适合的处理单元”,这就是HSA架构的精髓,也是AMD未来APU想要努力实现的目标。通过HSA,程序可以在统一的地址空间中建立数据结构,在最合适的处理器上创建任务,能够无缝地将任务移动到最适合的处理单元,不会造成数据传输速度的损失,从而为节点中的GPU处理更复杂的任务留下更多的可用内存资源。
HSA解决的第二个问题是以最小化的代价实现了应用程序的移植。从过去的经验来看,要求软件供应商修改代码以适应新硬件系统的做法一般只能获得有限度的成功。对于厂商专有解决方案就更是如此了,异构系统要成为主流技术,必须降低使用者的门槛。AMD之前成立HSA基金会(目前LG、三星、高通都已经加入HSA基金会)的目标是协助系统设计者把CPU和GPU这种不兼容的计算单元很好地整合在一起,消除计算单元之间数据共享和任务调用的开销。
通过HSA中间语言(HSAIL, HSA Intermediate Language),不同的硬件向上留出统一的软件接口,HSAIL足够灵活并且接近硬件层面,各个硬件厂商可以高效地把它映射到自己的硬件设计上。HSAIL也解放了程序员,使得程序员不必为不同的硬件平台修改自己的代码,同一套代码可以顺利运行在不同CPU/GPU配置的系统上。同时AMD在HSA上还为GPU开发出一套非常容易让编程人员能够使用的工具,使用这个工具不用太多地考虑GPU里专有的编程语言。
目前AMD正在与其技术合作伙伴和开源社区展开协作,目的就是为开发人员提供更合适的工具,让他们能够利用具有革命意义的、基于异构系统架构(HSA)的APU服务器应用程序。目前APU服务器开发工具包为CodeXL 1.3,是用于Windows和Linux的套件,具有远程调试和分析能力。另外AMD还推出苏门答腊岛项目计划——由甲骨文和AMD联合管理的开源项目,让开发人员能够用Java编程,发挥GPU计算的优势。AMD在GCC/HSA方面还与SUSE合作,使广泛流行的开源Linux编译器GCC能够支持HSA。与此同时,OpenCL数据库8月以clMath为名贡献给开源社区,使开发人员能够针对AMD APU和独立GPU进行通用科学与工程加速计算。
HSA新异构系统快来了
首款基于HSA的APU内部结构图
首款基于HSA的APU是2014年推出的“柏林”处理器——这是一款低功耗、超高密度、混合架构、高性价比的APU。其目标市场是Web应用程序、媒体或游戏服务等企业级应用,也可以用于虚拟桌面以及一些高性能计算应用,如地震分析和模拟,这将会对2014年的服务器市场带来较大的冲击。当AMD的基于HSA的APU产品出来后,未来基于这款新APU的服务器一定会为高性能计算领域带来非常重大的影响。因为在大数据时代,对一些非结构化数据的处理,有时不能完全靠CPU的处理能力,要靠GPU和CPU的协同处理才能更好地有效的完成。而且你还会看到对GPU的编程模型会彻底改变,因为HSA在CPU和GPU的通信架构上做了彻底的改变,使得CPU和GPU之间的数据传输可以不通过内存拷贝,这也就达到了省电和低功耗的目的。
HAS技术将改变IT计算
服务器最关注的是效能、可扩展和适应性,以适应不断变化的工作负载。而在与开源伙伴的通力合作下,AMD新一代APU未来有可能够充分利用服务器的软件应用,改进当前异构系统的缺点,为密集型服务器解决方案的高度并行和多媒体工作负载带来很好的优化。当然,AMD的这种技术也会用在未来的PC机领域,同时也会用到低功耗的产品领域。同时不要忘了,说异构,已经不单单是指GPU和CPU,AMD APU的SoC内同时集成了如视频编码、解码、音频处理、内容安全等专用的处理模块,同时提供特定的编程接口,这也是异构系统的另一个发展趋势。 
报纸客服电话:4006677866 报纸客服信箱:pcw-advice@vip.sina.com 友情链接与合作:987349267(QQ) 广告与活动:675009(QQ) 网站联系信箱:cpcw@cpcw*.c*m
Copyright © 2006-2011 电脑报官方网站 版权所有 渝ICP备10009040号