“管窥GPU”九则
2012-11-09林新华
文/林新华
“管窥GPU”九则
文/林新华
商业篇
1 GPU 的“倚天剑”和“屠龙刀”
2004年,Intel宣布停止单核CPU研发,全面转向多核C P U。“秦失其鹿”,各路协处理器们蠢蠢欲动。最老牌的FPGA,顶着IBM和当时世界第一超级计算机RoadRunner光环的CELL,以及附东京工大Tsubame骥尾的Clear Speed,一时间群雄逐鹿。然而nVIDIA的GPU在2005~2006年之间以GPGPU技术之名异军突起,在2007年推出CUDA之后,终于一战成功,结束了这场长达数年的“协处理器战争”。与现在偏安一隅的FPGA,濒临绝境的CELL和已经销声匿迹的ClearSpeed相比,GPU有两大制胜利器:CUDA这柄技术的“倚天剑”以及价格这把商业的“屠龙刀”。凡是用过FPGA和CELL编程的人,都对GPU上有CUDA艳羡不已。相比之下,真是又快又好用。而通过与出货量巨大的面向消费级市场的Geforce和专业图形的Quadro并线生产核心单元(SM),使得面向HPC市场的Tesla成本极具竞争力。
2 nVIDIA 的“HPC基因”
比尔·盖茨
2005年,时任微软CEO的比尔·盖茨在西雅图召开的Supercomputing2005上做主题报告,吹响了微软进军HPC的号角:在西雅图和上海分别建立HPC研发团队,在全球与10所著名高校合作成立HPC创新研究院(上海交大作为国内惟一的合作单位也参与其中),并积极联络开源软件社区和CAE等商业公司,希望借助中国等Windows基础良好的市场,推动Windows HPC生态环境的良性发展。然而如今,HPC研发团队重组到Azure,部门总经理跳槽亚马逊,市场份额无足轻重,销售业绩不温不火。这不能不让人感叹,吴军在《浪潮之巅》中关于公司基因一说颇为在理,就像擅长企业市场的HP玩不转消费级的Palm,强悍如苹果也才刚刚试水企业市场,做商业的微软果然还是缺少HPC的基因。nVIDIA则运气颇佳,在它进军HPC领域时,正好赶上SGI式微,顺势招揽到一大批技术和商业人才,这些人既能融入到nVIDIA中做图形的基因,又帮助nVIDIA迅速形成了HPC基因。
3 GPU 销量的“玻璃天花板”
2009年“天河1号”横空出世,2010年“天河1A”不负众望,成功登顶TOP500,其中GPU助力良多。光环之下,CPU+GPU的异构计算模式顿成时髦名词。各地超算中心建设时免不得捎带上些GPU,一些科研型用户也尝试购置GPU。GPU的市场份额稳步增加,但渐渐趋于饱和,原因无外大型超算中心数量毕竟有限,而科研型用户的需求又较小,真正占大头的生产型用户在没找到对口GPU软件之前又不会大规模部署GPU。目前GPU在石油行业中颇为成功,就是因为花力气研发了几个关键算法软件,而且成果在实际生产中立竿见影。也有传闻说nVIDIA期待Tesla版本的Kepler销量能超过历代总和。
软件篇
4 王者归来的SIMD编程模式
John Hennessy
在M.J.Flynn眼里,Cray的向量机,Intel的SSE和AVX指令集与nVIDIA的GPU都可以归到单指令、多数据(SIMD)这一模型中。斯坦福大学校长John Hennessy和伯克利计算机系前主任David Patterson在合著的《计算机体系结构:量化研究方法》最新第5版中就遵循这种思路,将这三者放在一章中串讲。现代的GPU使脱胎于古老向量机的SIMD编程模式重新焕发青春,这就如同多核CPU使原先针对SMP机器设计的OpenMP再次流行起来一般。与目前常用的并行工具MPI、OpenMP等多指令多数据(MIMD)模式相比,SIMD模式编程的思维方式更接近串行程序,功耗也更低,因为一条指令能同时处理多个数据。
5 另一个GPU编程选择,OpenCL
2008年,Apple首先提出OpenCL,随后Intel,nVIDIA和AMD各自派人跟进,希望借鉴OpenMP的成功经验,在CUDA之外,制定为各公司广泛接受并支持的通用GPU编程标准。但与PC时代的Windows,智能手机时代的Android一样,出于对抗CUDA的目的,OpenCL希望支持尽可能多的厂商设备,因此在技术上它遇到的“性能可移植性”非常棘手,即为设备A所编写的程序如何在不修改源代码的情况下,在设备B、设备C上继续获得良好的加速性能。让人郁闷的是,虽然OpenCL的设计初衷是“通用”的CPU+GPU异构计算标准,但现实中出于商业利益的考虑,号称支持OpenCL的厂商都只做了“半吊子”的实现。Intel的OpenCL只支持Intel CPU,nVIDIA的OpenCL只支持nVIDIA GPU,AMD的OpenCL倒是能同时支持CPU和G P U,但只是A M D自家的产品。随着2011年底nVIDIA宣布会陆续开放CUDA源代码之后,OpenCL最大的亮点“开放性”也似乎黯淡了不少。
6 “巧妇难为无米之炊”的OpenACC
Ian Buck
CUDA之父Ian Buck博士毕业后加入nVIDIA,从他在斯坦福做的Brook中获得了不少启发,开创性地引入了SM内部线程同步机制,实现了单指令多线程SIMT的编程方式,并在2007年发布1.0版本,之后每个版本都有相当的提高。与FPGA和CELL相较,CUDA当然简单易学,但对于一般应用开发者来说,上手还是比较困难。因此当Cray 前CTO Steve Scott加入nVIDIA成为Tesla部门的CTO之后,他力推基于编译器指令的编程方式,联合了老东家Cray、Portland Group和法国的CAPS,一起推出OpenACC规范,希望做到真正的简单易学好上手。但目前并没有支持OpenACC的免费编译器可用:Cray的编译器可以免费赠送,但只针对购买了Cray机器的用户;Portland和CAPS的编译器都是要收费的。现在让开发者自个掏钱买开发工具的比较少见,在国内就更难了。或许nVIDIA收购其中一家的编译器,然后免费发布给开发者倒不失为一个良策。
硬件篇
7 “用更多更小的母鸡耕田”的Kepler
巨型机之父Seymour Cray曾说,“如果你要耕田,你会用一头强健的公牛,还是一群母鸡?”一观点深刻影响了上个世纪整个HPC领域CPU设计的理念。直至以GPU为代表的众核芯片出现,人们才发现“原来一群母鸡也是可以耕田的,而且耕得还挺快!”作为Fermi下一代的Kepler,会在今年如期而至。Tesla版的Kepler核数将一举突破1000大关,每个SM所含的SP也从32增加至192。性能增加约2倍但核数增加不止了2倍,Kepler无异是准备用“更多更小的母鸡耕田”了。
Seymour Cray
8 姗姗来迟的神秘挑战者——Intel MIC
也许是因为有了Larrabee痛苦的“流产”经历,连一向大气的Intel这次也学习了港人怀孕前三月避而不宣的传统,对将要出世的第二代MIC Knights Corner讳莫如深。50+的奔腾核心配上PCIE2-X16的接口,从技术参数上看似乎与Fermi同一辈分。但年中发布的MIC遇到年底发布的Kepler,届时不知会是一副怎样的光景。MIC宣称的能实现对现有OpenMP和MPI程序无改动编译及显著提速,具体能对多少真实应用起效果,也只能拭目以待了。
9 “马儿好马儿少吃草”的CARMA
目前以CUDA为代表的x86+GPU的异构编程模式,其实还是以GPU计算为主,高性能高能耗的x86 CPU只负责程序的框架部分,比如逻辑判断、I/O等边角料的工作,既然这匹吃很多的“千里马”干不上活,不妨换上“跑得慢但也吃的少”的驽马——ARM。CARMA就是CUDA on ARM原型系统的代号。nVIDIA将在今年年中发布工程样机,勇于吃螃蟹的西班牙巴塞罗那超算中心会在今年大规模部署CARMA。在大型超算能耗问题日益突出的情况下,或许低能耗低性能的ARM+低能耗高性能的GPU的组合在未来能与高能耗高性能的Intel CPU一竞高下。
(作者系上海交通大学高性能计算中心副主任)
本文所阐述的观点,为探讨学术之用。仅代表作者本人意见,无关所在单位立场。
IBM与罗格斯大学开放超级计算机中心
美国罗格斯大学(Rutgers University)与IBM在新泽西州开放一个超级计算机中心,该中心将包括一台价值330万美元的超级计算机。这台超级计算机名为“IBM Blue Gene/P”,大小大约相当于两台电冰箱,它配备了数千个中央处理器,将是美国东部地区性能最强的计算机之一。IBM希望它能够入选下一年的全球超级计算机500强名单。
这台超级计算机的分析能力与IBM在Jeopardy电视游戏展会上展示的Watson不相上下。
私有企业也将能够使用这台超级计算机。据罗格斯大学发言人称,至少有12家来自新泽西州和纽约州的公司有意使用这台超级计算机,包括百时美施贵宝、强生、施乐、西门子和摩根大通等。
超级计算机可以处理大量数据,比如基因序列和消费者购买趋势等。例如,罗格斯大学的研究与经济开发副总裁迈克尔帕扎尼(Michael Pazzani)称,在普通台式机电脑上进行一次基因分析需要一年的时间,但在这台超级计算机上只要1天就够了。
帕扎尼称:“IBM与罗格斯大学签订了一份长期合作协议,这只是双方合作的第一步。我们希望能成为全球十大学术计算中心之一。”他说,由于计算时间大大缩短,不再成为制约研究进度的因素,因此研究人员可以更好地发挥出他们的创造力。
加州风险投资公司Trident Capital的伊万戈洛斯西毛迪思(Evangelos Simoudis)称,新泽西的高性能计算中心在美国大学之中也是比较少见的,它将专注于帮助企业和科学家。他说,只有大型企业内部开发的超级计算机才能在规模上与罗格斯大学的超级计算机相比。
Blue Gene超级计算机将帮助罗格斯大学的研究人员执行分析工作,最初的分析对象是癌细胞、超导材料和预报洪水。
罗格斯大学希望这台超级计算机可以帮助它吸引更多全国科学基金和全国健康研究院的专用拨款。
罗格斯大学顾问专家组将决定哪些公司能够使用这台超级计算机以及收费标准。罗格斯大学还计划通过它培养出数百名科学和计算机科学的学生。
为了在财务和生命科学创新领域保持竞争力,建立足够强大的计算机来分析海量数据已经成为21世纪的一项挑战。同样,随着可用信息量的不断增长,数据科学技术将成为美国最新的需求。
IBM与罗格斯大学早在几年前就开始合作了,IBM与200多家大学建立了合作关系,帮助它们增强计算机分析能力,包括耶鲁大学、西北大学和福德汉姆大学等。