Pages

Monday, December 13, 2010

SC10: Dally Keynote, Heterogeneous Computing Systems

我将翻译一篇 Steve Keckler NVIDIA 写的文章。原文网址点。我计划在这个寒假译介一系列和体系结构相关的科普文章。除了传播的考虑之外,还有一点私心在于强迫自己认真得去读一些文章,蜻蜓点水实在是在犯罪。直到把这篇文章翻译完,我终于意识到这是一篇软文--但是不翻译的话,我又怎么会知道呢?

---------------大家好,我是分割线---------------

把时间耗在 Supercomputing'10 这世界上最大的超级计算会议上,有点像喝消防栓里的水一样--除了能够听到无数技术报告之外,同时也是一个 会见同僚的绝佳机会。我大概一天只有 45 分钟的时间是没有排在日程里的!今天,我想向各位报告三件聚焦于异构高性能计算(heterogeneous high-performance computing) 的事件。

今天早上的高光时刻乃是 Bill Dally 做的 Keynote 报告。他是 NVIDIA 的首席科学家 (Chief Scientist)和高级副总裁 (Senior Vice President)。当然他也是我的老板(并且在遥远的过去曾经是我 Ph.D. 的导师)--所以别指望我从我这里得到对于他的演讲的任何公开批 评!Bill 的演讲的题目是(坐稳了,光年外的粉丝们)"GPU Computing to Exascale and Beyond."  他首先聚焦于 GPU 的能源效率问题,展示了当今 Top500 系统的性能/耗能情况。比如,天河-1A 异构 GPU 计算机,Top500 的第一名得主,从性能/功耗 (flops/watt) 的角度来衡量大概是第二名 Jaguar machine 这个同构系统的 2.5 倍。东京理工学院 (Tokyo Institute of Technology) 研制的异构 Tsubame 2.0 计算机,也即排名第四的 TiTech machine,大概比天河-1A效率高出 50%。这其中的根本原因在于在同构机器中的 CPU是为优化单线程性能而设计的,采用了一系列现代的微处理器优 化技术包括分支预测 (branch prediction),各式各样的投机执行 (speculation),寄存器重命名 (register renaming),动态调度 (dynamic scheduling)以及为优化单线程的延迟而设计的 cache;而相反,GPU 是为优化吞吐率而设计的。通过省掉很多在 CPU 上很常见但是却极其耗能的优化技术,平均对于一个操作而言它能够获得 10 的能源节省。但是这种高效不是没有代价的--单个线程在 GPU 上的性能非常非常得糟糕。

这种在效率上的区别将在为面向2018年计算而进行的超尺度计算机 (Exascale computers) 设计中被放大。我们甚至只要考虑以下情况,即假设我们能够从工艺发展(更小的晶体管)中得到的 4 倍能耗效率提升,并且在 CPU GPU 上同时获得 4 倍体系结构级别效率提升,那么 CPU 内在的相对低效性将导致最终其 6 倍低效于 GPU。这 6 倍的差距可以导致一个 20 兆瓦(是的没错,我 说的是“兆”瓦)的计算机和一个 120 兆瓦的计算机。如果一年在一兆瓦上花 100 万刀的话,这将是一个巨大的数目。

那么其间的挑战自然就在于,如何利用异构系统的计算能力去解决影响科学和社会的实际问题而不是仅仅追求 LINPACK 的分数。Bill 举了个例子 说,NVIDIA 对于编程语言比如 CUDA 的投资正在使得程序员可以把以前的旧的单线程代码移植到新平台上--他给了几个例子。一个例子是在医药领 域,GPU 被用于通过减少 X 光扫描次数来减少 CT 扫描的辐射剂量,这将最终导致降低癌症得病率。另一个例子是将 GPU 利用于动态分子模拟上,去模拟表面活 性剂的化学特性并且开发更好的比如香精一类的产品。虽然这些应用当前都只是在少量的 GPU 上跑,但是我预期在接下来的几个月里能够看到一些在 Top500  中那些大规模异构 GPU 机器上运行实际的科学计算代码并且获得令人振奋的结果(Tsubame 的那些哥们儿已经报告了一些这方面的工作了)。

最后,Bill 谈了一些一个 NVIDIA 正在进行的新的超尺度计算的项目 Echelon。它部分地由 DARPA 的普适高性能计算 (Ubiquitous High Performance Computing, UHPC) 项目资助。NVIDIA 已经和 CrayOak Ridge National Labs 以及 6 个顶尖高校合作来开发高性能低功耗并且可靠的体系结构和编程系统了(译者按,其中这学期给我们上体系结构课的 Mattan Erez 将领导这个项目在 UT 的分支)。Bill 展示了对于未来异构计算系统的展望。他预期能够解决当今 GPU 系统的一些不足比如分离的内存空间和相对低 带宽的连接 CPU GPU I/O 总线。Echelon 的设计将整合一大坨为吞吐率而优化的计算核心和少量的优化延迟的计算核心于单个芯片上,他们共享一 个内存系统。这样的芯片有 20 TeraFLOPs 的性能并且如果把一坨这样的芯片放一起的话可以整成一个 2.6 PetaFLOP 的机架。达到超尺度计算只需要大概几百个这样的机架就好--这其实就和如今的高端集群差不多。再说一遍--这仅仅是一个目前在研的项目, 虽然我预期一些在我这个博客圈里的人会把Bill的介绍当成 NVIDIA 的新品推介广告--哈哈!

我个人的意见是,Bill 描绘了一幅非常有说服力的对于未来可实现的超尺度系统的蓝图,但是我不认为每个听众都信服。一些我听到的闲谈提到了对于异构系统 可编程性的怀疑。我个人的分析(这个我在下面将提到的 "Round 2" 讨论会上也讲到了)是,我们其实没有别的选择。能耗的限制迫使系统采用优化能耗,面向吞吐率的处理器核与优化延迟的处理器核协同工作的方式。无论是好 是坏,大家都要一起工作来制定一种能够开发这种系统的编程模型,并且保证硬件能够包含支持这种编程模型的机制。

Round 2 一个关于异构计算系统的研讨会,由 Oak Ridge National Labs Jeff Vette r组织。AMD Chuck Moore 给出了一个我认为是非常有远见的对于什么是异构计算什么不是的定义。异构计算不能是所谓的 "Frankensystem",也就是那种随意地把 不同的硬件和软件坨在一起的系统。也不能是一粒拥有神奇的能耗或者性能表现的子弹。它也不会轻而易举地解决高性能计算所面临的功耗/性能/可编程性/ 战。它是一种促进不同子系统之间通信的系统框架。更进一步,它必须能让菜鸟编程员轻松地利用专用的或者可编程的功能。我感觉到讨论会达成了一个共识,也即 异构计算平台的下一步在于把加速器 (accelerator) 提升为计算系统中的一等公民。AMD 已经很清楚地把这个问题的硬件一端揽入怀中--通过他们最近发布的 "Fusion" 芯片。然而,大量的挑战仍然存在于 软件和编程之中。NERSC 的领导 Kathy Yelick 通过展示她的观察来强调了这些挑战。她认为在向超尺度前进的征程中一定会有一个从 MPI/MPI+OpenMP 出发的编程模型。她不相信整个 圈内会容忍两个编程模型的存在,我们最好赶紧搞定这个模型,越快越好。

Round 3 一个由弗吉尼亚理工 (Virginia Tech) 计算机系的 Wu Feng 副教授,同时也是绿色 Top500 排名的维护者,组织的讨论会,主要议题是异构计算中的 3P 问题:性能 (Performance),功耗 (Power) 和可编程性 (Programmability)AMD Mike Houston 举了一个强有力的例子说,应用程序通常会开发交织式的并行性 (braided parallelism),也就是有很多条件数据的并行性--讨论会上大多数人都同意这个观点。讨论会上最活跃的家伙是来自 Intel Tim Mattson。他强力宣称可编程性的重要性远超过性能和功耗。如果你不能为一台机器编程,谁会在意它的峰值性能和理论效率?他甚至毫不掩饰他对于开源软 件标准的立场,任何一个单独的公司,包括 Intel,都不应该控制编程语言。这番言论后来演变成了 OpenCL PK CUDA 的讨论了。虽然我不想一一点出这场争论中的主角,但是确实有不少人对于 Mattson 提到的危害进行了一番慷慨激昂的演说。其他人的观点是这个技 术仍然只是在草创阶段,匆忙地在成熟之前制定标准只会抑制创新。虽然有不同的争论,但是与会这都热忱赞成软件乃是最大的挑战(有人感觉到了这个主题么?)

这俩讨论会都太火了,简直没有立锥之地,房间几乎要爆了,参与的人也很不错。Jeff Vetter 尝试了一个听众反馈系统,能够让大家通过手机短信反馈调查问卷的问题。一旦大家都熟悉了这种听众参与的方式,我觉得这招在以后的讨论会都会显得比较酷。

今天到底为止。

---------------大家好,我是分割线---------------

1. 整个翻译完了我回顾一下其实这不是一个特别有技术营养的文章,毕竟只是个人见闻。而且谈的都是老汤戏了。但是如果大家对这个话题感兴趣,这个文章读起来也会比较有意思。因为讲的细节很少,这种宏观的讨论或许对把握大方向有好处。具体的细节,还是去读 paper
2. 下次挑选文章的时候基本上不会有这样的文章了。我本来预期会是一篇科普性质的文章,毕竟是在 CACM 上的,孰料其实是一篇游记。我也放弃了翻译Steve其余两篇游记的计划。但是应该还会在 CACM 上选。
3. 大四最后一个学期做了一些异构架构的事情,下个学期也很可能做这方面的事情。让我们擦亮眼睛看看会如何演化吧。

No comments:

Post a Comment