在技术前沿领域,也就是计算机在业界背后与世隔绝的专业领域里,有这样一群工程师,他们孜孜求索,致力于幽深精妙的芯片设计,以求大幅度提升计算机的运算速度—这是IT市场历来的技术标杆。他们远离计算机行业的主流。有位首席信息官(CIO)认为,他们的工作是“与未来的对话”。而微软公司(Microsoft,下称微软)的某位高级研究员却把他们称为“一群狂人”。
在国际商业机器公司(IBM)、Cray公司、太阳计算机系统公司(Sun),以及美国、日本一些大学和实验室里,就有这样一些技术狂人。这些计算机科学家们正在试验用于特殊用途的计算机芯片,这些芯片专用于处理数学运算,从而极大地提高应用程序的速度,却不会加重计算机微处理器的输入/输出(I/O)负担,也不会明显增加发热量或成本。近几年来,传统型微处理器的运算速度增长已明显趋缓,而这些新的芯片技术也由此应运而生。
迄今为止,几家最大的计算机芯片制造商,如英特尔公司(Intel)、AMD公司、Sun和IBM等,都是通过在同一块硅芯片模(Silicon Die)上设计两个或更多的CPU来解决不断上升的发热和速率调整问题。但这种多核的解决方案仍然存在着计算能力的极限,而一些技术人员正在尝试其他的方式。比如使用一些特殊芯片,如现场可编程门阵列芯片(FPGA)、与应用相关的集成电路、图形处理器甚至计算机里为视频游戏设计的专用于处理棘手的大量科学和商业用途的芯片等。
????? 东京工业大学(Tokyo Institute of Technology)不久前揭开了运算速度排名世界第七的超级计算机的神秘面纱,这台由NEC公司设计的庞然大物包含665台Sun服务器,并由10,480个AMD的皓龙(Opteron)芯片来驱动。在性能基准测试中,该系统运算能力达38.2Tflops(一个Tflop代表每秒一万亿次浮点计算)。
东京工业大学还打算增加360块带有ClearSpeed技术公司硬件加速芯片的加速板,该公司的可定制式专用集成电路芯片(ASIC)能提高应用程序的处理能力。这一措施预计能为这台超级计算机增加5~10个Tflops的运算能力。
这套系统的设计关键是平衡了通用型的皓龙芯片和特殊用途的ClearSpeed 芯片的能力,研究如何充分利用低成本的x86技术,让更多人能够享受超算技术。负责东京工业大学计算基建的松冈聪(Satoshi Matsuoka)表示,“这样做的目标是两者的优点都能为我们所用。”因为这台超级计算机上运行着许多应用程序,包括蛋白质分子分析、龙卷风和台风研究、模拟头脑中的血液流动和地球磁场效应的研究,“所以我们也不能把特殊用途芯片的比例提得太高。”松冈补充说。但为了能建造出超过Pflops(1Pflop代表每秒1,000万亿次的浮点运算次数)数量级的未来计算机,就必然要用到加速芯片。“这是未来的潮流趋势。”松冈断言。
速度需求
眼下,在视频游戏系统、高端娱乐型个人计算机、传输控制协议/网间协议(TCP/IP)应用程序和安全套接层加速器(SSL Accelerator),硬件加速技术都随处可见。在1997年击败国际象棋冠军盖瑞·卡斯帕罗夫(Garry Kasparov)的IBM超级计算机“深蓝”里也有加速器的身影。而FPGA芯片因为在制成后能接受新的指令,所以作为原型设计的测试芯片一直广受欢迎。
不过,现在的新情况是,人们迫切需要把加速器运用到越来越多的应用中去。芯片公司需要的不只是简单地把加速器作为特殊用途处理器来分担工作负荷,他们希望的是把加速器与CPU集成到同一块硅基上。这是牺牲芯片对各种应用程序的通用运行能力来换取令人瞩目的运算速度。
加速器并不适用于所有的任务:因为它们难以编程,而应用程序往往需要根据硬件环境进行调整。“在适合加速器的场合里,它的运行速度惊人;但在不恰当的场合,它慢得像头老牛。”松冈评价说。潜在的适用环境包括数字视频处理、计算机动画、财务分析、石油产业里的地震图像处理和生物科技领域等。
目前来说,一方面可以期待加速器在现实世界有更多的部署应用;另一方面,如果技术人员能攻克编程和其他难题,也许就能像上世纪80年代的矢量芯片(Vector Chip),和上世纪90年代基于精简指令集(RISC)的机器,以及最近十年芯片组模式的过渡和提升一样,硬件加速器将使计算机的运算能力再跃上一个新台阶。“这是一大片未开发的西部处女地。”IBM深度计算部副总裁戴夫·图瑞克(Dave Turek)确信,“而幸运之星现在正慢慢向成功靠近。”
但为什么突破是当下这个时机呢?因为过去几十年来,芯片制造商依赖于提高时钟速度—每秒钟处理器执行指令的数量—作为提升运算能力的动力。时钟频率每18个月会增长一倍,芯片速度也会随之增长,一年内就使机器无需增加更多芯片,应用程序的处理能力获得50%~60%的提高。而越来越小的晶体管、越来越长的管线队列处理能力和日益复杂的微体系结构(Microarchitectures)的引入,都使诞生新产品的需求显得越来越紧迫。
而现在广泛使用的单线程软件模式使芯片的性能增长每年不超过20%。“现在主宰市场的单线程模式其实已日薄西山了。”为波音公司(Boeing)和美国联邦政府提供服务的超级计算机公司Cray的首席技术官(CTO)史蒂夫·斯科特(Steve Scott)这样断言。
潜在问题
更快的晶体管会产生更多的热量,这使降温的成本变得惊人地昂贵,有时甚至限制了性能的增长。而导线越细,产生的电阻越高,使得在一个时钟周期内要通过芯片表面完成传导变得越来越困难。基于这些原因,芯片业界转向了多核芯片,基本上,它是为芯片新增了一个CPU,这样就无需再提升时钟速度。尽管它引发了英特尔和 AMD之间一场新的竞争,但实际上,这只是一种勉强的性能提升。
毕竟多核芯片存在着潜在的缺陷,多个处理器之间会争夺对内存的访问。比如现在是一块芯片上有两个内核、四个内核甚至更多,可能十年之后就变成上百个了—它们得消耗越来越长的内存数据等待时间。这将会产生瓶颈和性能损耗。更重要的是,多核方式使个人电脑和服务器变成了并行式计算机,在编程上会变得异常困难。而许多程序并没有为多核芯片做相应的优化。
随着英特尔和AMD计划在一个芯片上推出越来越多的内核,这些问题也会变得越来越严重。“多核芯片不是万能神药。”图瑞克认为。由于个人电脑上的编程也逐渐向并行计算机靠拢,微软因此在高性能计算机上投了巨资。如果芯片业可以只靠计算加速器提升系统性能,而不会增加额外热量、并行计算或者电源需求,用户就能够摆脱这些问题的困扰了。
然而特殊芯片的方式并不适用于所有场合。虽然谷歌公司(Google)著名工程师鲁兹·巴罗佐(Luiz Barroso)认为,特殊用途型芯片可以“显著地”为科学型应用程序提速,但大众市场芯片已经用多内核芯片技术解决了并行数据处理的问题,这样能节省大量的编程开发时间。“总体来说,多核是个更好的解决方式。”巴罗佐评论说,“对像我们这样需要快速创新的公司尤为重要。”谷歌一直在关注特殊用途处理器和FPGA芯片的进展。的确,与网络搜索的应用相比较,特殊芯片在有可预见模式的应用和有大量实数运算的环境会更合适一些。
东京工业大学那台可承担一系列运算应用的超级计算机,便是使用硬件加速系统的最著名的案例。最近,IBM也会把硬件加速技术应用到新的商业服务器产品线中去。该类服务器采用全新的单元处理器,这种使用特殊硅材料进行浮点运算的单元处理器还会被用在索尼公司(Sony)即将发布的PlayStation3游戏平台上。
Sun研发部的执行副总裁格瑞·巴巴多布诺斯(Greg Papadopoulos)透露,Sun正与加州大学伯克利分校的一个研究小组合作,使用成千上万个FPGA芯片,来模拟互联网行为的模式原型以设计出更有弹性的系统。日本理化学研究所(Riken Institute)一套MD-Grape 3系统,使用英特尔至强(Xeon)芯片和特殊加速器,到明年,它在分子动力学某些特定程序上的运算能力将达到1Pflop。
在芯片公司中,AMD发布的相关性超传输(Coherent Hypertransport)技术的许可计划是到目前为止对硬件加速技术最强有力的支持,它能为皓龙系统的多个芯片之间的数据传输提供接口。这个名为Torrenza的许可计划将使其他厂商可以设计出与皓龙芯片共享内存的加速器。英特尔的一位发言人称,在英特尔的技术蓝图中,并没有支持核心芯片与协处理器间互通能力的打算,而将继续走多核的路线。英特尔的主板在上个世纪80年代和90年代早期,已经为协处理器预留了插槽,但是在发布奔腾芯片时,英特尔已经在CPU技术领域占据领先地位,因此,它就放弃了协处理器这种方式。
Cray计划在未来的系统中采用Torrenza方式,把将要淘汰的XD1系统的优点与XT3超级计算机结合起来,并运用到它不久前与美国橡树岭(Oak Ridge)国家实验室签订价值高达20亿美元的合同,承建于2008年交付使用时运算能力达到1Pflop的超级计算机的合同中去。Cray正在设计一个代号为Scorpio的协处理器,它将用于美国国防先进技术研究计划署(DARPA)资助的系统中,预计这个高达25亿美元资助额的项目不久就会颁布了。
运算天才
硬件加速对通用计算来说,仍是前沿研究而非实用的IT技术。橡树岭国家试验室的CIO斯科特·司徒汉(Scott Studham)也评论说,“这仍是一项新兴的技术。”但在不远的将来,随着高性能计算和商业数据处理的聚合度越来越高,这种方式也将使商业市场受益。现在的商业计算包含大量的数据处理,如市场人员需要部署非常消耗计算机资源的数据挖掘算法,银行希望追踪全球财经市场动态,而实业和零售业公司则希望跟踪从无线射频识别(RFID)设备涌入的大量数据流。“这是热门话题,”销售超级计算机集群的Linux Networx公司CTO乔舒亚·哈尔(Joshua Harr)表示。
在许多方面,对加速器的兴趣反映了芯片设计的潮流。特殊用途芯片里10%的电路都贡献给了数学浮点运算,而对比之下,通用型芯片如AMD的皓龙和英特尔的Xeon只用到1%~2%的硅基区域。它们的绝大部分电路都用于系统的各种控制元素、预测将进行哪个分支的运算和基于上述预测执行指令。这些需求的结果就是一块各方面很均衡的芯片。“无论你交给它什么任务,它都执行得不错,”松冈评论说。
比起通用型芯片来,加速芯片可在更低的时钟速率上运行以节省功耗和热量。比如ClearSpeed公司的芯片可运行在250MHz。而英特尔最快的奔腾芯片运行在3.73GHz,是前者频率的15倍。
使用特殊用途的芯片,应用程序的运行速度可以为原来的若干倍,以更低的功耗和无需额外增加网络节点就获得更高的性能。它们在用同一条指令处理多个数据点的矢量计算和把信号分解成频率分量的“快速傅立叶变换”计算,以及其他许多领域里的科学与工程计算里都显示了卓越的运算能力。
目前为止,加速器最大的缺点是编程困难。“它们的威力无与伦比,但却难以控制。”为科学应用程序设计软件加速器的互动超级计算机公司(Interactive Supercomputing)的首席科学家,也是麻省理工学院(MIT)应用数学教授的艾伦·埃德曼(Alan Edelman)评论说。
图瑞克表示,对IBM的客户来说,加速器编程的成本“高得吓人”,不但开发时间长,公司内部也缺乏足够资质的技术开发人员,而且还需要为每一种特殊用途的芯片建立一套全新代码库。
DARPA是旨在简化超级计算机编程的项目,七月进入最后阶段。在这个名为“高效计算系统”的项目里,预计DARPA将从IBM、Sun和Cray三家公司中选出两家,颁发高达25亿美元的资助金以建造可供商用的超级计算机原型。
同时,问题也显而易见:像C、C++、Fortran和Java这样的高级编程语言是按顺序执行指令的,而加速器在同一时间却需要处理成百上千条运算。一些先行的开发队伍已经在尝试把C语言移植到FPGA芯片上去,但是,除非你是专家,否则你就很难充分利用加速器的运算能力。
ClearSpeed 公司CTO 约翰·格斯塔森(John Gustafson)宣布,他们已为自己的ASIC芯片的矢量运算提供了一套扩展版本的C语言。但即使用这种方式开发人员也只能利用到一半的主板性能。他们公司正在与软件商沃尔夫勒姆研究公司(Wolfram Research)和The MathWorks 公司进行合作,这两家公司为无数科学家、工程师和经济师提供数学建模软件包,ClearSpeed希望能够在自己的芯片上为这些应用程序做一些优化和调整。
也许加速器市场接受度的最大挑战就在于如何把加速器技术应用到更广泛的商业领域中去。“你不但要考虑飞机表面的气流,”Linux Networx的哈尔表示,“你还得顾及微软Office、iTunes和Quake等应用。”
上一篇:芯片“Sing”现身东京大学,512核顶级片上系统开发成功!
下一篇:英特尔拟推第三款酷睿2芯片 保持对AMD高压
推荐阅读