新智元报道
来源:awards.acm.org
Eckert-Mauchly 奖是计算机体系结构领域最负盛名的奖项,以 1947 年诞生的世界上第一台电子计算机 ENIAC 的两位发明人 John Presper Eckert 和 John William Mauchly 的名字命名。
Eckert-Mauchly 奖始于1979年,由ACM和IEEE计算机协会共同赞助,该奖项表彰对计算机和数字系统体系结构的贡献,奖金5000美元。历史获奖人中有六位最终获得了图灵奖,包括获得2017图灵奖的David Patterson。此外还有一批接近图灵奖的大神们,比如Gene Amdahl、Seymour Cray、Gordon Bell等。
2019年Eckert-Mauchly 奖颁发给威斯康辛大学麦迪逊分校教授Mark D. Hill,表彰他对存储系统和并行计算机的设计和评估作出的杰出贡献。作为世界领先的存储系统研究人员,Hill在高速缓存、存储一致性模型、事务性存储和模拟等领域做出了开创性的贡献。Hill与160多名共同作者的著作已被引用超过20000次。
Mark D. Hill教授
在20世纪80年代,Hill开发了关于缓存失效的“3C 模型”。“缓存失效”(cache miss)是指计算机的缓存中没有找到软件或硬件请求处理的数据。cache miss会导致延迟,因为程序或应用程序必须在其他位置访问数据。Hill的3C模型将这些缓存失效的情况分为“强制失效”(Compulsory miss)、“容量失效”(Capacity miss)和“冲突失效”( Conflict miss)。这个模型很有影响力,因为它带来了一些重要的创新,比如受害者缓存(victim caches)和流缓冲器(stream buffers),现在已经成为计算机体系结构教科书中的标准概念。
许多人认为Hill在缓存一致性模型方面的工作是他最重要的贡献。他与学生Sarita Adve一起,为DRF开发了SC:一个使用顺序一致性(SC)的一致性模型,可以避免数据竞争(data race free,或DRF)。Hill的SC for DRF模型对计算机架构师产生了重大影响,特别是当多处理器变得无处不在的情况下,架构师不得不考虑在架构和实现中使用哪种内存一致性模型时。在Hill为DRF开发SC多年之后,它成为了Java和c++内存模型的基础,并且最近,SC for DRF模型与图形处理器(GPU)一起被用于理解异构处理器的内存一致性。
Hill的第三个主要贡献是他在事务性内存方面的工作,这是一种最小化临界区阻塞的技术。Hill与David Wood一起开发了LogTM事务性内存系统,这是最早的、且被广泛引用的事务性内存方法之一。这个系统第一次使事务超出了它们的缓冲区和缓存容量,使得程序员可以更容易地实现事务。
Hill(与David Wood等人)也对并行计算机的评估做出了重要贡献。例如,威斯康辛州的风洞项目率先在并行机器上运行快速并行模拟。Hill还开发了其他重要的工具来评估内存系统和并行计算机,包括Dinero缓存模拟器、GEMS full system模拟器和gem5,这些工具已经被研究人员和实践者引用了3000多次。BadgerTrap是他最新开发的工具之一,研究虚拟内存行为。Hill对虚拟内存的实现也有重要的影响。例如,他提出了“page reservation”的概念,现在在Linux中使用。
Hill将于6月22日至26日在亚利桑那州凤凰城举行的ACM/IEEE计算机体系结构国际研讨会(ISCA)上正式获得该奖项。
2017年ASPLOS(计算机体系结构领域的一个顶级国际会议)期间,中科院计算所先进计算机系统研究中心黄博文同学等一组人采访了Mark D. Hill教授,谈到中国的体系结构研究、学术界与工业界的关系、学术研究的品味、如何帮助中国的体系结构学术圈保持健康进步等问题。
新智元经授权转载如下:
访谈人物 - Mark D. Hill
关于中国的体系结构研究以及 ASPLOS
采访小组:您怎样看待 ASPLOS 与其他几个体系结构顶级学术会议 MICRO,HPCA,ISCA 的关系?
【编注:Architectural Supportfor Programming Languages and Operating Systems (ASPLOS), International Symposium on Microarchitecture (MICRO), High Performance Computer Architecture (HPCA), International Symposium on Computer Architecture (ISCA)】
Mark:ASPLOS 的意义是让体系结构连接操作系统和编程语言。20 年前,体系结构研究社区有一段难以维持的经历,ISCA [1] 差点办不下去,做微结构的人不愿意去改指令集,而操作系统和编程语言研究社区的人对不具备兼容性的设计都不买账,当时对 ASPLOS 的需求还不那么明显,但是后来摩尔定律变慢,能效就必须来自于跨层次的协作优化,现在 ASPLOS 的重要性就大大高于 20 年前。
采访小组: 这是 ASPLOS 第一次在中国举办,国内有声音认为这是中国进入体系结构学术圈核心竞技圈的一个标志,不知您如何看待?
Mark:首先,计算机体系结构年会(ISCA)已经于 2008 年在北京举办过。过去这些年,中国在计算机体系结构,乃至整个计算机科学研究上的进展确实令人印象深刻。
采访小组:是的,几位中国大陆的青年教授告诉我们 ISCA08 改变了他们这一代体系结构研究人员,例如那一届 ISCA 过后,陈云霁老师就发表了中国大陆有史以来第一篇 HPCA 论文。现在已经过去了十年,现在中国又有了第一篇 MICRO 最佳论文,ASPLOS 最佳论文 …
Mark:对,我觉得这里面很重要的一点是,为了这样一篇论文,你必须有很好的 idea,然后必须用一种学术会议接受的语言把它清晰地表达出来,包括围绕这个 idea 的故事。由于你们来自中国,你们在这方面会有劣势。中国的研究人员克服了这种语言劣势,令人印象深刻。我自己很幸运,我写论文用的是自己的母语。
采访小组:除了语言之外,您怎样看待中国的体系结构研究质量? 您是否认为中国的研究质量已经能够与美国并驾齐驱,或者仍然有所落后?
Mark:我觉得从研究角度上来说,不能断言说整个美国有一个什么样的研究水平,因为有的人研究质量很高,也有的人研究质量参差不齐,有的人研究兴趣比较广,有的人则研究面比较窄,我觉得这在中国也是一样的。现在的区别是,中国确实在进行绝对第一流的、有创造性的研究,而二十年前,中国的研究更多的是做一些增量式的改进。某种程度上来说,中国的公司也是一样的,二十年前他们是快速跟随者,但是现在则是创新领导者。例如现在中国的手机已经不再跟随 iPhone,它们在很多需要本地化的方面远强于 iPhone。
关于学术界与工业界的关系,以及学术研究的品味问题
采访小组:我们觉得自己是一个后进者,还需要做很多事情去追赶对于美国来说已经完成的成就。例如说,威斯康辛大学麦迪逊分校和工业界保持着有成效的合作关系,比如威斯康辛与 Intel,与 AMD 的合作,而在中国这种学术 - 工业合作才刚开始孵育,我们希望能听听您的意见。
Mark:建立与工业界公司的关系确实有困难。你可以想象,工业界的人非常忙碌,时间宝贵,所以你拿出来的东西要对他们有价值,例如让他们提前接触学生,能提出单独帮助那个公司的 idea. 关键的一点是,不要去做跟公司的下一代产品太贴近的东西,这会让工业界的人紧张,并且由于无法获取公司内部的资源,大学在这类工作中通常处于劣势。选择那些工业界还不愿意投入资源去做的东西是则是一件好事,例如,我们在本届会议上有一篇论文(当然是学生做的主要工作),关于非易失性内存,把非易失性内存挂在内存总线上。但这什么时候会真的变成现实,工业界并不知道,他们甚至不知道这会不会发生。而我们就可以开始研究这些,因为我们并不需要决定这些东西会在下一代、下下代、下下下代产品上使用,而工业界的人会很高兴看到我们在做这个,虽然他们现在并不愿意自己去做,但他们可以看到我们对一些解决方案的规划,并对学生进行了解决这类问题所需的训练,这些学生之后就可以进入公司工作。
采访小组:我们现在跟工业界的公司有一些合作,例如帮助设计他们下一代处理器上的某个部件,并且有明确的性能要求……
Mark:工业界现在让你们去研究这个问题?
采访小组成员:是的。
Mark:我觉得这更像是一种 “合同工”,的确有其价值,但与做一个公司的 “研究伙伴” 是不一样的。有一些我过去发现比较好的方式是,可以送学生去工业界实习,学生不能从工业界带回答案,因为公司对这有知识产权,但是学生可以从工业界发现潜在的问题,这就是好的研究点。
采访小组:所以您的意见是,我们并不太适合去做这种需求急迫的研究,作为替代,我们应该去做超前几代产品的研究?
Mark:是的,需求急迫的研究并不是大学的长处,这完全取决于现有的工业界复杂设计里面的种种细节,而这些信息都是你无法获取的。我就无法设计一个部件然后比 Intel 做的更好,他们在这个问题上了解的比我多太多了。一个例子是,Abhishek [2] 在这届会议上有一篇论文,他观察到通过利用一些 TLB miss 的信息,去指导预取。这是非常好的研究点,但如果工业界有人决定采用这个点子,我并不认为他们会完全按照 Abhishek 的设计去做,因为工业界对设计的细节了解更多。
采访小组:您刚才提到很重要的一点,就算研究成果被采用,最后落地于产品的设计也很可能会与论文中的不同,那我们如何与工业界分享 credit?
Mark:这是比较难的一个问题,工业界并不总是喜欢分享 credit,无论你拿到的 credit 是什么样的,这种 credit 只会在学术界中通行。你的回报是得到了发明新设计的成就感,训练了学生,如果没有得到工业界给予的 credit,我并不会因此失眠。工业界的人并不擅长给予 credit,甚至有时会因此被告上法庭。但是这很难定论,被采纳的 idea 很少是从单独一个源头完整地来的,会经过修改,而且是别人的修改。我觉得 credit 有两种,一种是外在的,别人告诉你你干的很好,一种是内在的,你自己知道你很棒。我觉得内在的 credit 更重要,你必须在这一点上成熟,有很多人想要的是外在的 credit。
采访小组:我们都很好奇,威斯康辛过去曾和 Intel 有过专利官司,现在也和苹果有专利官司,当您跟工业界有不一致的时候,您会怎么办?
Mark:那个专利是 Guri Sohi 教授和他几个学生所有的。
Mark 的学生:实际上是 WARF 所有的,所以应该是整个威斯康辛大学与外面公司的诉讼,而非几个教授或者学生。
Mark:是的。这是比较难的一件事情。看上去,那些公司认为这是一种更好的策略,就算偶有专利侵权,也倾向于选择诉讼而不愿意举行一次会晤告知然后付使用费。我希望 Intel 和 Apple 在使用前能来打声招呼,嘿我们用了你的专利,你应该享有 credit,但是他们决定不去这样做。
采访小组:如果我们看过去这些年的计算机学术界发展,确实有一些成果推动了工业进步,例如多核,多线程,都是从学术圈出来的,但是现在这样的机会感觉变少了,不知道您现在如何看待与工业界的关系?
Mark:你是说,过去我们有研究成果进入工业界,但是现在我们能推进工业界的研究不如以前那么多了?
采访小组:是的,现在工业界掌控了大部分技术和数据,能够在真实的大规模数据上做实验,而学校只能去跟随工业界的工作,很难发表好的工作、做好的研究。
Mark:嗯,这里有两件事。一个是,现在也许有很棒的改变正在发生,但是我们并没有察觉它有多么棒,直到五年后,十年后。另一件事是,不要尝试去做那种让 Intel 的高端芯片变得更好一点点的那种研究,你很难做的比他们优化更好,应该去做那种非常不一样的、并且有帮助的 idea。
Mark 的学生:你知道 PhD 的含义吗?
采访小组:永久性脑损伤(Permanet Head Damage)? (笑)
Mark 的学生:我是说实际含义(笑),事实上它是从哲学开始的。
采访小组:是的,我知道。
Mark 的学生:你得做出哲学意义上的改变,才能够去做与工业界截然不同的工作,有时候是非常革命性的工作,才能在 10 年后,成为工业界标准。我认为 Mark 在事务性内存上的工作就做到了这一点。
Mark:我记得另一个例子,有一篇 1994 年的论文,提出了页保留(page reservation)的概念,20 年后,它进入了 Linux。所以不要做优化型的工作,尝试做与众不同的工作。例如不要去做让最高端的处理器的性能变得更好的工作,要尝试去做让物联网处理器的功耗比其他设计更低的工作。这届会议上也有人发表了用其他手段让指令集架构的特性更容易证明的论文,这才更像是好的体系结构研究,它可能不会被采用,但也有可能变得众人皆知。这不是一个小的改变,这是一个比较大的变化。关键是你要关注转折点,转折点是一系列小的渐进性改变带来的大的变化。体系结构的转折点会发生在当工艺发生变化的时候,以及当顶层的应用发生变化的时候。一个经典的例子是,上世纪 80 年代,最便宜的存储设备是大型磁盘,小型存储设备都很贵,然后个人电脑突然出现了,对硬盘的需求出现使得制造商们开始制造大量硬盘,使得最便宜的存储设备变成了小型的硬盘,然后 David Patterson [3] 认为,转折点出现了。这个转折点意味着什么呢?在小型硬盘上可以存储数据,但是 PC 对于可靠性要求不高,所以不太在乎单个硬盘的可靠性,但如果在服务器上使用大量的硬盘存储数据,可靠性就很差了 [4],所以必须设计一套方案,让它们打破自身的劣势,变得可靠起来,所以发明了磁盘阵列 RAID [5]。所以研究的关键是,去留心这种转折点,而不在于你的代码写得有多好,你必须去观察问题的内在。以今天来说,物联网,虚拟现实,这些领域在发生什么,可以尝试从中去寻找转折点。
Mark 的学生:我觉得网络通讯的改变也是一个例子。在 1999 年之前没有什么网络通讯,因为网络几乎不太存在,然后加州大学伯克利分校的人出来做了很多工作。
Mark:另一个例子,过去的巨型机都很昂贵,必须分时使用。分时的系统你们可能都没有体验过,用起来非常痛苦,但如果你意识到,有一天机器会越来越便宜,便宜到每一个人都能买得起,这也是一个转折点。有趣的是,现在的云服务就像是分时系统的回归,因为这种场景下云服务的分时使用比较高效。
采访小组:您认为人工智能与体系结构的结合会是一个转折点吗?
Mark:我觉得这其中的确有转折点,但是我不知道具体会在哪里。我们之前有一项工作,是计算机体系结构研究共同体发表的 21 世纪计算机体系结构白皮书 ……
采访小组:是的,我们都读过。
Mark:对,之后我们又有了一篇新文章,叫做 2030 年的计算机体系结构。它其中就提到,机器学习是一个非常重要的应用。可以看看现在谷歌的工作,有两个很明显的趋势,(编注:其中一个是机器学习),另一个是云计算。云计算正在改变指令集架构层面,如果在 20 年前,你要让别人安装你的软件,就一定得是 x86,现在在云中提供服务的话,大家就不再关心是不是 x86 了,因为人们已经不再在指令集架构层面去交互,而是在更高的层面,例如 API 层面。所以体系结构与 AI 的结合,人工智能与云计算的结合,抽象层次的提高,我个人觉得都是很令人振奋的领域。但是我个人不会做比机器学习更激进的事情了,因为现在有很多人已经在做体系结构与 AI 的结合,去年的 ISCA 有三个 session 全是这个主题的论文。不要去做这种每个人都在做的领域。
Mark 的学生:国际卷积神经网络年会(笑)。[6]
Mark:就像买股票,应该去买慢牛走势的,等它爆发的时候再出手卖掉,而不是在股价起飞的时候去追高。现在冲进一个人很多的热门研究领域就像是股市里追高。应该去寻找那些现在不热门的,但是会是未来趋势的领域。有一句话,应该去尝试写一个研究点上的第一篇论文,最佳论文,或者最后一篇论文。
采访小组:现在有这样一个趋势,对于体系结构领域的应届毕业生来说,市场上有大致上三种工作可以选,一种是去做金融,高频交易之类,薪水很高;另一种是去做机器学习,利用体系结构领域的知识和技能去做机器学习应用的调优,也是薪水很高;比较符合体系结构传统的工作,例如去传统的芯片设计公司做芯片,薪水就比较一般。您认为这样的趋势会对体系结构的研究带来负面影响吗?
Mark:我觉得,让学生去做高频交易之类的事情并没有什么不好,不会有什么伤害。但对于个人来说,我有一个推荐,叫做 “十年测试”。你十年以后想成为什么样的人?十年后对你来说什么是重要的?如果你想挣钱,那就去做高频交易,如果你想去教书育人,并且不在乎较低的薪水,那就去做。重要的是,做自己喜欢的事情。如果是做自己喜欢的事情,你才会干得更好并且更加勤奋。现在可能很多毕业生会去做机器学习,但是更好的选择应该是,做自己感兴趣的。机器学习可能不错,但是如果去非热门领域,竞争者也少。
如何帮助中国的体系结构学术圈保持健康进步
采访小组:现在中国的体系结构学术圈只有大概顶尖的 5-6 所学校和研究机构,但是美国大概能囊括 top50 的大学,在这些大学里都能够找到很好的教授和学生,以及跟工业界的合作关系,但是在中国,这个范围缩减到了只有 5-6 所学校 ……
Mark:中国的体系结构只限于前 5-6 所学校?
采访小组:基本上是的,搜索过去多年 ASPLOS,ISCA 的发表记录,会发现只有这些学校能够有论文。
Mark:这可能是因为这些学校足够好,可以跨越语言障碍。你的意思是说其他学校基本不做体系结构研究?
采访小组:是的,其他学校甚至可能没有这样一个单独的体系结构子方向。
Mark:对于美国来说,对体系结构的兴趣可以追溯到上世纪 40 年代。设计硬件生来就是计算机科学的一个组成部分,每一台建造的机器都有不同的指令集,直到有人注意到程序员们一直无法适应,然后指令集架构的概念在上世纪 60 年代出现。到了上世纪末的时候,就出现了很多层次,有人做芯片,有人做系统,有人做应用,有人做界面,这些人都可以在各自的层面上展开合作,这不错。现在随着 denard scaling 和摩尔定律的变慢和终结,很多的能效提高机会来自于跨层次的合作,如果你不做体系结构,就会让自己陷入劣势。例如谷歌现在对机器学习很感兴趣,他们做了什么?体系结构的东西,TPU。现在已经无法做到每隔两年通用 CPU 的能效大幅度提高了,所以你就需要一个解决方案,在低得多的能耗下去做计算。按我的理解,TPU 上出现了很多 8 比特的整数操作,如果在通用 CPU 上做这样的操作就很不划算,但是现在你必须去关注这样的东西了。这样的改进在十年前不重要,但是现在则必须去压榨,性能的提高部分地来自于能效的改良,有了性能你才能去做新的应用,比如英语 - 中文的实时翻译,这在以前就是荒谬的。抱歉我的回答不是很精练(笑)。
采访小组:您提到美国的体系结构成功的因素,例如有造计算机、设计系统的传统,有来自工业界的真实需求,等等。那我们怎样才能让中国的体系结构研究也成长起来,您是否建议我们该把来自工业界的需求重新导向给那些尚处在圈外的学校?
Mark:这总是一个关于资源分配的难题,你怎么去分配给最顶尖的学校,top5,top10,top20 等等。不应该把钱都给顶尖的学校,应该把钱分散开,因为可能会有一些学校,冒出了不为人知的想法,但却是进步的关键,此外,有时也会有一些很好的学生身处一个非顶尖学校,出于各种各样的原因,比如她的男朋友去了那个学校,等等,要在各个地方去培育人才,这很重要。在美国我们也有同样的问题,真正的大项目来自于美国国防高级研究计划局(DARPA),但是他们倾向于与少数的大学校,牛校合作,国家科学基金会(NSF)也主要把钱给 top5,top20,其他学校再分配剩下的。精准地分配很困难。
采访小组:在中国我们也有一个自然科学基金会,但是也有着这样一种模式,如果在这个圈子以外的学校想要进来,就得和圈内的牛校合作,比如清华。
Mark:我不太喜欢这样一种必须跟大的集团合作的系统,这会导致平均化并且事情总是由整个社区来做。我有个问题,在美国,就算我有一个超级明星式的学生,他也不能在威斯康辛大学找到教职,他必须去其他地方。中国有没有这样的传统,比如中国顶尖大学毕业的博士生毕业后可以留在母校任教?
采访小组:可以留下任教。
Mark:我觉得中国可以做的最重要的一件能让学术圈健壮的事情就是,禁止大学雇佣自己的毕业生。
采访小组:为什么呢?
Mark:因为这样做可以进行 “异体受精”。你必须去别的地方,遇见不同的人,碰撞不同的想法,诞生新的东西,用一种形象的说法,就像有性生殖比单纯的克隆要好。威斯康辛在体系结构领域干得很棒,我们的毕业生如果做得好的话,会被四散到各个地方,那些做得不够好的学生,就不让毕业,所以关于这些人的东西就没有得到传播,这就是好的。
Mark 的学生:中国正在用另一种方式做这件事,他们送好的研究生去美国,然后毕业回到中国任教。
Mark:这也是一种正确的方式。
(全文完。为保持语言流畅,对采访录音中的口语有所修饰)
[1] ISCA(国际计算机体系结构年会,International Symposium on Computer Architecture),是计算机体系结构领域的最顶级国际学术会议,一直位居中国计算机学会推荐的 A 类学术会议之中。目前中国大陆能在 ISCA 中担任职务的学者以及以第一单位身份在 ISCA 上发表论文的记录都较少。
[2] Rutgers 大学的 Abhishek Bhattacharjee,在 TLB 相关的设计上有精深造诣,他所做的关于 TLB 聚合的研究成果被 AMD 实现于 ZEN 为结构上。对他的采访亦将于近期放出。
[3] David Patterson 是 Mark Hill 的博士生导师之一,亦是当世的体系结构学术圈最顶尖人物之一,因 RISC、RAID 等多项改变整个工业界的杰出贡献而闻名。David Patterson 目前在谷歌参与 TPU 项目。
[4] 将多块硬盘合起来存储数据可以降低存储子系统成本,但会伤害可靠性。假设一个硬盘的可靠性是 0.9,十块硬盘一起存储数据,可靠性就降低到 0.348。
[5] Redundant Arrays of Independent Disks,RAID,在服务器、工作站甚至是 PC 上都已经得到多年的广泛采用。
[6] 这是圈内流传的关于 ISCA 的一个笑话,因为太多人去做机器学习与体系结构的结合,导致 ISCA 变成了 International Symposium on CNN Architecture。
新智元春季招聘开启,一起弄潮 AI 之巅!
岗位详情请戳:
【加入社群】
新智元 AI 技术 + 产业社群招募中,欢迎对 AI 技术 + 产业落地感兴趣的同学,加小助手微信号:aiera2015_2 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。