近日,ISCA 2018,同时也是第 45 届 ISCA,于当地时间 6 月 2 日至 6 日在美国加州洛杉矶市召开。
ISCA(International Symposium on Computer Architecture)是计算机体系结构领域的顶级学术会议,由 ACM SIGARCH(计算机系统结构特殊兴趣组) 和 IEEE TCCA(计算机架构技术委员会)联合举办。在计算机领域的各种应用和人才遍地开花、大数据与深度学习引发新的发展浪潮的当代,ISCA 的会议规模也有所扩大 —— 接近历史纪录的超过 785 名参会者,以及比去年增加了 17%、达到了共 378 篇的论文投稿;最终接收论文数目为 64 篇,接收率为 17%。据了解,从 1973 年创办到 2008 年在北京召开的这 35 届 ISCA 大会中,中国大陆科研机构一共只发表过 5 篇文章。这些数字都体现了计算机架构领域的深度、ISCA 会议的难度与声誉。(相比之下机器学习领域相关会议近年来出现的海量投稿数可以看做体现了大家都认为「这有什么难,我也可以发论文」)
除了例行的大会报告、圆桌讨论、论文 session、workshop、tutorial、洛杉矶市内观光大巴游览之外,会议还有一大亮点是邀请了今年 3 月刚刚颁布的图灵奖获得者 John L. Hennessy 和 David A. Patterson 到场演讲。实际上,二人获得有「计算机领域的诺贝尔奖」之称的图灵奖,正是因为二人「开创了一种系统的、定量的方法来设计和评价计算机体系结构,并对 RISC 微处理器行业产生了持久的影响」(ACM 颁奖词),这正是 ISCA 会议关注的核心课题之一。获奖后在 ISCA 进行主题演讲,二人想必也收到了最热烈的掌声和最高的敬意。
ISCA 2018 现场,John L. Hennessy(左) 和 David A. Patterson(右)与 Alan Turing 的半身像合影
会议概况
第一天早上的开幕演讲中组委会首先介绍了会议概况。如前文所说,今年 ISCA 共有超过 785 名参会者,大约 710 名参与了会议正会。这一数字有可能会创下 ISCA 这 45 年来的新的历史纪录。会议设置了 18 个论文报告 session,主题包括云和数据中心、新兴 app 的加速、预读取(prefetching)、语言和模型、虚拟内存、相关性与存储排序、新兴范式、持续性(persistence)、新兴内存、存储器、控制器和控制系统、移动平台、安全、互联网络、GPU,以及近年来火热的机器学习系统。
除了 John Hennessy 与 David Patterson 的图灵奖获奖演讲外,还有三位特邀嘉宾 Kim Hazelwood、Kunle Olukotun、Doug Burger 的主题演讲以及 ACM - IEEE CS Eckert-Mauchly 奖获得者 Susan Eggers 的演讲。
ISCA 2018 的论文投稿为 378 篇,比去年增加了 17%;接收论文数目为 64 篇,接收率为 17%。接收结果出自程序委员会对论文进行的两个阶段的详细评审。投稿论文中数量最多的研究课题为加速及领域专用架构,前十热门的课题还有内存系统、多核和并行架构、微架构、低功耗架构与技术、新兴内存技术、层级化缓存、新兴计算架构、云与数据中心规模的计算、计算机系统的评价。
组委会也设法统计了会议中的性别平衡情况:在提交论文时作者们可以自愿提供性别信息,参与了信息提交的论文约占 37%;这部分论文的统计结果是,约 15% 的论文投稿中至少有 1 位女性作者,同时 15% 的接收论文的第一作者为女性!组委会也期待这个领域的性别比例未来可以继续改善。
特邀嘉宾演讲
首位演讲的特邀嘉宾是来自 Facebook 的 Kim Hazelwood。Kim 是 Facebook 人工智能基础设施团队(Facebook AI Infrastructure Foundation)的负责人,这个团队的职责是为 Facebook 的的生产化和移动化机器学习应用设计高效的、可拓展的软硬件平台,而她自己的研究兴趣包括负载描述、性能分析、计算机系统架构以及可拓展的数据中心系统。
Kim Hazelwood 的演讲主题为「Applied Machine Learning at Facebook Scale: Separating Opportunity from Hype」(Facebook 规模的机器学习应用:从热潮中看到机会),介绍了在热炒的机器学习概念背后,Facebook 为了真正地应用机器学习技术做出的努力和相关的发现;这里也是机器学习和计算机架构设计的交叉点。演讲中有一些对机器学习领域的研究人员以及应用开发人员很有启发的信息:
用一定的数据训练一个模型需要多少计算量、多少时间大家基本都心里有数,那么推理阶段的计算量需求如何呢?实际上 Facebook 的机器学习模型每天要做超过两千亿次推理,其中包括五十亿次语言翻译,以及数百万次的由自动检测系统主动地删除假冒账户。
在研究机器学习理论本身的人看来,工作流程分为「数据-特征-训练-评价-推理」五部分是自然而然的事情。而根据机器学习算法应用时的系统需求来看,计算机架构研究人员眼中的机器学习对数据的存储、网络连接、计算能力都提出了新的挑战。
大规模应用机器学习系统时的系统瓶颈在哪里?我们现在对计算和存储都有许多的并行化手段,所以根据阿姆达尔定律,最大的瓶颈已经变成了(难以并行化的)网络连接。
从工程角度看,什么样的研究投入方式是有效的?不是什么热就投入什么,投入程度应当和机会(也就是系统瓶颈)相对应。假如网络因素对系统瓶颈的贡献为 75%,那么就不应当在已经热门的计算领域投入 75%,而就应该在网络因素方面投入 75%。
所以 Kim 也提出了自己的「机会方程」:正确的投入方式需要有一些不平衡;要小心别人一窝蜂挤进去的领域。已经拥入很多研究者的领域包括量化、做硬件的推理加速器初创公司、不必要的深度学习方法。而计算、网络与存储之间的平衡,工具、编译器、软件,端到端解决方案等课题就是不那么火热的、更适合的投入方向。
目前全世界已经有超过 10 亿部手机上运行着神经网络应用。在移动设备上本地运行的机器学习算法在隐私性、本地响应性和用户体验上都有更好的表现,但移动设备的一大挑战就是计算能力非常有限,使用 ARM 处理器的设备中 60% 还是基于老旧的 32 位 arm-v7 指令集,同时超过半数的设备只有不多于 4 个核心。这样的结果就是,峰值计算性能高于 200 GFlops 的设备只有不到 20%,高于 600 GFlops 的简直凤毛麟角。
网络连接状况也不容乐观,4G 网络的覆盖区域非常有限,更别提还有很多连 2G 都没有的区域了。(雷锋网 AI 科技评论注:中国区域是黑色应该只是因为 Facebook 没有详细的数据。实际上根据中国信息通信研究院发布的数据,截至 2017 年 6 月,我国 4G 基站已累计建成约 300 万个,而全世界的 4G 基站总数也就只有约 500 万个)
而如果想要开发在移动设备上运行的机器学习模型,严重的生态碎片化也带来了许多麻烦:超过 20 家芯片制造商、超过 25 种处理器微架构、超过 15 种 GPU 架构、两种主流操作系统、三种主流图形 API、两种主流计算 API。
除了移动计算的挑战之外,大规模可拓展机器学习应用也需要面对昼夜负载不平衡、硬件设施采购惯性、容灾与恢复、软件平台设计等挑战。在演讲最后,Kim 希望大家不要忘记了各项技术发展的基本规律,并以此着眼解决那些真正重大的问题。
图灵奖演讲
Alphabet 公司董事长、斯坦福大学前校长 John Hennessy 与谷歌 TPU 团队、UC 伯克利大学退休教授David Patterson 的图灵奖获奖演讲自然也是会议的重头戏之一。他们的演讲题目是「A New Golden Age for Computer Architecture: Domain-Specific Hardware/Software Co-Design, Enhanced Security, Open Instruction Sets, and Agile Chip Development」(计算机架构的新的黄金时代:领域专用的软硬件协同设计,增强的安全性,开放指令集,以及敏捷芯片开发)。
演讲内容要点如下:
自 1980 年代 Carver Mead 和 Lynn Conway 让芯片设计变得平民化,以及高级编程语言取代了机器语言之后,RISC、超标量、多级缓存、预测与编译等方面的计算机架构创新开启了电子计算机发展的一个黄金时代,计算机的性能几乎每年都可以增长 60%。稍后到了 1990 和 2000 年代,计算架构方面的创新虽然开始放缓,但不断增加的处理器频率和不断增大的处理器缓存依然引领了计算性能的持续提高。直到近年来 Dennard 缩放定律和摩尔定律也开始失效,2017 年时单核心处理的性能仅仅比上一年提升了 3%。除了处理器性能提升遇到困难之外,Spectre 之类的漏洞也展示出了基于运行时间的攻击导致信息泄露的风险。
上一个黄金时代已经结束,但 John Hennessy 与 David Patterson 认为一个新的黄金时代即将开始。这个黄金时代的主题是大幅改善的成本、性能、能源消耗以及安全性。面对着已经失效的 Dennard 缩放定律和摩尔定律无法继续提供指数增加的资源,这些计算架构方面的挑战要比以前的挑战更难解决。二人认为,以下的几个领域对这个新的时代至关重要:
为高级别、领域专用语言服务的软硬件协同设计
Python 之类的高级编程语言以及 TensorFlow 之类的领域专用编程语言通过提升软件复用和抽象级别,大幅提升了程序开发人员的生产力。曾经 1980 年代时 C 编译器和 RISC 架构的编译器-微架构协同设计带来了三倍的性能提升,新的黄金时代里的新的技术进展将有可能带来新的编译器和新的领域专用计算架构,十倍甚至更多的性能提升都不是梦想。
增强的安全性
过去的 40 年里信息技术的发展日新月异,但信息安全的战役中我们正节节败退。直到现在,人们对于计算架构安全性的要求也仅限于分页级别的保护以及支持虚拟机的运行。正是计算机架构定义本身对于运行时间的忽略导致了 Specture 这样的攻击方法出现,根据运算时间的长短就可以泄露本来应当被保护的数据。架构设计师们是时候重新定义计算机架构了,安全应当成为第一要务,保护数据不在运行时间攻击中泄露,或者起码也要大幅减小这种风险。
免费、开放的计算架构以及开源的实现
为了改善上面提到的问题,指令集架构(ISA)很有可能需要作出改变,而这对于专有 ISA 来说很难做到。为了有能力应对这些艰巨的挑战,John Hennessy 与 David Patterson 希望有更多聪慧的大脑可以参与进来,而不仅仅是为现有的 ISA 持有者打工的工程师们。那么,RISC-V 这样的免费、开放的 ISA 就可以成为一份送给研究人员们的大礼,因为:
许多不同组织的人都可以同时为 RISC-V 做出贡献
它的设计中注重模块化和拓展性
它带有完善的软件堆栈,包括编译器、操作系统和 debugger,它们都是开源的,从而也就是可以定制化修改的
作为现代 ISA,它可以胜任云级别的服务器到移动和 IoT 设备的各种应用
RISC-V 由一个有 100 位成员的基金会推动,这保证了它的长期稳定性以及长期演进
芯片的敏捷开发
随着计算架构创新的重点从通用计算 CPU 转向领域专用以及异质计算处理器,芯片的设计时间及成本方面也需要有大的突破(就像 1980 年代 VLSI 带来突破那样)。小规模的团队也应当可以有能力为某个特别的领域或者应用设计专用的芯片。这需要硬件设计流程变得更高效,更像现代软件设计。
与大芯片公司采用的从顶向下/单向的 waterfall 开发流程不同,敏捷开发流程让小团队也可以设计并迭代升级能够工作、但并不完整的芯片原型设计。巧合的是,提升了软件复用性的程序语言改进如今也已经集成在了最新的硬件设计语言中,这让硬件设计和复用变得更为简单。论文中纸面上的芯片布局当然不坏,但构建出真实的芯片才是让团队中每个成员都能感到激动的事情,而且这也是验证运行时间、能耗等重要特性的唯一方法。有一则好消息是,台积电用最新工艺制作 100 个小型测试芯片的价格已经下降到了只需 3 万美元,那么,可以说是几乎所有项目团队都可以负担得起在真实芯片上做最终的验证步骤,同时也可以享受到自己的想法成功工作在硅片上的幸福感。
以前不一样的是,开放的 ISA 如今是可行的,因为许许多多的工程师现在就正在通过知识产权集成的方式为各种不同的产品设计片上系统(SoC),同时 ARM 也已经表明了知识产权授权对于 ISA 是可行的。
另一方面,开放的计算架构也为 FPGA 和真实芯片两者都带来了开源处理器设计的可能性,未来的架构设计师只需修改现有的 RISC-V 设计以及对应的软件堆栈即可。即便 FPGA 实现的处理器的运行速度可能只有 100MHz,这也已经足够运行千百亿条指令、或者部署在网络上面对真实攻击测试防御能力。借助 FPGA 的可塑性,RISC-V 生态系统可以让新功能实验性探索的部署、评估、迭代升级流程从以往的若干年缩短到若干天。实现这种畅想所需的知识产权也将不仅限于 CPU,GPU、神经网络加速器、内存控制器、PCIe 控制器等都需要。随着摩尔定律的终结,工艺过程稳定性的提升也使得这个目标比以前更容易达成。这种需求也会让硬件架构设计师们未来能够产生大规模的影响,就像软件工程师们可以参与数据库系统、操作系统之类的开源项目开发一样。
John Hennessy 与 David Patterson 两人相信,标准的微处理越来越难以提升的性能、高级别领域专用的语言与安全性方面的机会、专有 ISA 链上的架构设计师的解放、以及 Dennard 缩放定律和摩尔定律的失效将共同带来一个计算架构的新的黄金时代。开源生态系统、芯片原型的敏捷开发都会带来实实在在的进步,从而加速商业应用。两人期待新的黄金时代的技术进步会像上一个时代一样地快,只不过如今的关注点是在于成本、能耗、安全,同时兼顾性能。
ACM - IEEE CS Eckert-Mauchly 颁奖
在 ISCA 2018 的颁奖环节,除了多位新入选 IEEE Fellow、ACM Fellow 的颁奖,以及多个 ACM SIGARCH、IEEE TCCA 奖项外,还有一个重头戏,那就是 Eckert-Mauchly 奖的颁奖。
ACM - IEEE CS Eckert-Mauchly 奖是计算机体系结构领域最负盛名的奖项,获奖者由 ACM 和 IEEE 共同评选,奖项命名来源于 1947 年诞生的首台电子计算机 ENIAC 的设计者和制造者 John Presper Eckert 与 John William Mauchly(可见奖项的重大意义),旨在奖励在计算机及数字化系统架构方面做出杰出贡献的研究者。
2018 年 ACM - IEEE CS Eckert-Mauchly 奖的获得者是华盛顿大学计算机科学与工程学院教授 Susan Eggers,以表彰她在同步多线程处理器架构和多处理器缓存共享与一致性方面的杰出贡献。Susan Eggers 是领域内顶尖的计算机架构设计师,是 Eckert-Mauchly 奖设立 39 年来的第一位女性获得者,还是一位经历非常独特的工程师。Susan Eggers 于 1965 年获得了经济学硕士学位,在相关领域工作了 18 年后,决定改变职业,转向了计算机工程方面的研究。1983 年,Susan Eggers 进入 UC 伯克利大学电子工程和计算机科学系读研究生,于 1989 年获得博士学位,然后来到华盛顿大学以助理教授的身份开始她的学术生涯;此时的她已经 47 岁。
从 1980 年代末起,Susan Eggers 在共享缓存的一致性(coherency)协议以及其他内存相关的多处理器问题中做出了重大成果;她展开了最早的数据驱动方法的关于共享内存的多处理器计算机的实验,这极大地提升了整个领域对于软件和硬件一致性技术的理解。她也因此在 2002 年当选 ACM Fellow。
Susan Eggers 最著名的成果是在同步多线程(simultaneous multithreaded,SMT)处理器的开发以及商业化方面的开创性工作;这是过去三十年的计算机架构发展历程中最重要的进步之一。面对简单增加逻辑和存储单元无法继续显著提升处理器性能的状况,Susan Eggers 等研究者提出,让计算机有能力同时计算多项操作、执行多个进程,也就是提升计算机的并行计算能力,是最好的提升性能方式。在 1995 到 2003 年间,Susan Eggers 和她的同事们开发并验证了同步多线程技术,作为提升 CPU 性能的新方式。同步多线程技术允许多个独立的程序指令序列(也就是线程)把它们的线程并行方式转化为更简单的指令级别的并行方式,从而更好地利用了计算机中的资源,达到了性能提升。Susan Eggers 和她的同事们在 ISCA 发表了多篇标志性的论文并介绍了许多领先发现,展现了同步多线程技术背后的思想、显著的性能提升以及实现这项技术的简易性。