2020 WAIC·开发者日将于7月10日-11日线上举办。在主论坛上,图灵奖得主David Patterson将带来宗师课《体系结构创新加速人工智能》。人工智能已经成为新一轮产业变革的核心驱动力,正在对世界经济、社会进步和人类生活产生极其深刻的影响。2020 世界人工智能大会云端峰会是由上海市政府打造的国际顶级人工智能会议,大会将于 7 月 9-11 日举行。世界人工智能大会开发者日(以下简称为 WAIC 开发者日)云端峰会作为大会主题论坛及特色活动,是 WAIC 期间唯一面向 AI 开发者的专业活动,将成为人工智能领域年度最高规格、最专业、最具影响力的开发者盛会之一。本届开发者日包含 1 场主论坛、多场分论坛、高峰对话、黑客松、Demoday、公开课等活动,为业界呈现最丰盛的人工智能技术分享盛宴。在活动期间,大会也将进行上海白玉兰开源开放研究院揭牌、发布《人工智能开源开放报告》、WAIC 云帆奖。在今年的开发日主论坛上,机器之心联合上海交通大学人工智能研究院特邀请到了多位重磅嘉宾,其中就包括 2017 年图灵奖得主、计算机体系结构宗师 David Patterson。届时,他将带来主题演讲《体系结构创新加速人工智能》(Architecture Innovation Accelerates Artificial Intelligence)。2017 图灵奖得主、体系结构巨擘 David PattersonDavid A. Patterson 自 1977 年进入加州大学伯克利分校执教以来,一直讲授计算机体系结构课程,拥有该校计算机科学 Pardee 讲座教授职位。他因为教学成果显著而荣获了加州大学的杰出教学奖、ACM 的 Karlstrom 奖、IEEE 的 Mulligan 教育奖章和本科生教学奖。因在 RISC 方面的贡献而获得了 IEEE 技术成就奖和 ACM Eckert-Mauchly 奖,他还因为在 RAID 方面的贡献而分享了 IEEE Johnson 信息存储奖,并与 John Hennessy 共同获得了 IEEE 约翰 冯 诺依曼奖章、C & C 奖金和 2017 图灵奖。此外,Patterson 还是美国艺术与科学院院士、美国计算机历史博物馆院士、ACM 和 IEEE 会士。他还被选入美国国家工程院、美国国家科学院和硅谷工程名人堂。Patterson 身为美国总统信息技术顾问委员会委员,同时也是伯克利电子工程与计算机科学系计算机科学分部主任、计算机研究协会主席和 ACM 主席。这一履历使他荣获了 ACM 和 CRA 颁发的杰出服务奖。在加州大学伯克利分校,Patterson 领导了 RISCI 的设计与实现工作,这可能是第一台 VLSI 精简指令集计算机,为商业 SPARC 体系结构奠定了基础。他曾是廉价磁盘冗余阵列(Rendant Arrays of Inexpensive Disks,RAID)项目的领导者之一,正是由于这一项目,才有了后来许多公司出品的可靠存储系统。他还参与了工作站网络(Network of Workstations,NOW)项目,因为这一项目而有了因特网公司使用的集群技术和后来的云计算。这些项目获得了 ACM 颁发的三个论文奖。此外,Patterson 还与另一位图灵奖得主 John L. Hennessy 合著计算机系统结构学科经典著作《计算机体系结构:量化研究方法》,这本书堪称计算机体系结构的「圣经」,数代工程师和科学家采用和发扬他们的理念。体系结构与 AI计算机体系结构是程序员所看到的计算机的属性,即计算机的逻辑结构和功能特征,包括其各个硬部件和软部件之间的相互关系。对计算机系统设计者而言,计算机体系结构是指研究计算机的基本设计思想和由此产生的逻辑结构;对程序设计者而言,则是指对系统的功能描述(如指令集、编制方式等)。David A. Patterson 和 John L. Hennessy 在《计算机体系结构:量化研究方法》(第 5 版)前言中写道:「这个学科不是令人昏昏欲睡、百无一用的纸版模型。绝对不是!这是一个受到人们热切关注的学科,需要在市场竞争力与成本、性能、能耗之间作好权衡,从事这个学科既可能导致可怕的失败,也可能带来显赫的成功。」众所周知,近期人工智能的飞速发展离不开海量数据和算力提升,而算力是承载和推动人工 智能走向实际应用的基础平台和决定性力量。计算机体系结构的进步正是满足算力需求的必经之路。同时,人工智能的发展也重塑了体系结构的设计过程。人工智能的特点对算力提出了不同于以往的新要求,传统的面向通用计算负载的 CPU 架构无法完全满足海量数据的并 行计算需求,以异构计算、加速计算、可编程计算等为代表的新的计算技术和架构更适合人工智能的并行计算需求,得到了快速的发展。此外,在摩尔定律逐渐失效和深度学习算力需求如无底洞般膨胀的今天,深度学习研究者们也在思考:能否改进算法以使其更适应计算硬件?能否帮助优化系统配置?在《黄金时代》论文里,Jeff Dean 和 David Patterson 以谷歌开发的两代机器学习 ASIC(用于加速推理的 TPUv1 和用于加速训练的 TPUv2)为例,介绍了设计专用硬件的思路。进行硬件设计要着眼于至少 5 年后的模型:现在开始一款 ASIC 的设计,它大约可以在 2 年后投入使用,而一款专用硬件至少需要能够保持 3 年的竞争力才有价值。Jeff Dean 和 David Patterson 介绍了,在这样的前提下,设计深度学习专用硬件需要考虑的问题。从他们关于硬件结构和人工智能发展的探讨中,我们可以得出以下见解:「当下,想要朝通用人工智能的道路上前行,研究者、工程师、体系结构设计者,这些身份一个都不能少」。2019 年 David Patterson 与 John Hennessy 合作发表了文章《计算机架构的新黄金时代》,完整介绍了计算机芯片的发展历程,以及所有架构的未来趋势。这篇文章的最后写道「架构设计者必须意识到软件创新也能激励架构发展,而提高硬件 / 软件界面的抽象水平会带来创新的机会,市场最终会解决计算机架构的争论」。他们预言:「未来十年,将会有一场新计算机架构的寒武纪爆炸,这对业界和学界的架构师们来说将是激动人心的时刻。」David Patterson 对于「体系结构和人工智能的关系」有何深刻见解?敬请期待他在 WAIC 开发者日上的主题演讲《体系结构创新加速人工智能》。2020 WAIC·开发者日全程线上举办,欢迎大家添加机器之心小助手syncedai6好友,备注“开发者日”,加入交流群,一起看直播。
新智元报道 来源:cacm.acm.org新智元编辑部【新智元导读】图灵奖得主、计算机体系结构宗师David Patterson与John Hennessy认为,未来将是计算机体系结构的黄金十年。最新一期的ACM通讯上刊登了两人合著的论文《计算机体系结构的新黄金时代》,阐述计算性能如何实现再一次飞升。计算机体系结构将迎来一个新的黄金时代!2017年3月,计算机架构领域两位巨星级人物David Patterson与John Hennessy在斯坦福大学发表演讲时如是说。当时,Hennessy最知名的title是斯坦福大学前任校长,而Patterson则是伯克利的退休教授。他们1990年合著出版的《计算机体系架构:量化研究方法》被誉为领域“体系结构圣经”,培养和指导了无数处理器设计人才。John Hennessy(左) 和David Patterson 拿着他们合著的《计算机体系架构:量化研究方法》,照片的拍摄时间大约是1991年。来源:ACM当时,由GPU推动的深度学习浪潮已然兴起,谷歌推出了TPU,AI芯片创业公司林立,芯片市场群雄并起,连做软件的人都能感到从硬件行业迸发出的热气。很快,一年后,已经出任谷歌母公司Alphabet董事长的Hennessy和已经加入谷歌TPU团队的Patterson又站在了一起,这次是为了纪念他们共同荣获2017年的图灵奖。他们的图灵奖演讲题目叫做《计算机体系结构的新黄金时代》(A New Golden Age for computer Architecture),两人回顾了自20世纪60年代以来计算机体系结构发展历史,并展望人工智能为计算机架构设计所带来的新的挑战和机遇。在那次的图灵演讲中,David Patterson与John Hennessy还提到了软件设计也能为计算机硬件架构带来灵感,改善软硬件接口能为架构创新带来机遇。“在摩尔定律走向终点的同时,体系结构正在闪耀新的活力——以TPU为代表的领域特定架构 (Domain Specific Architectures, DSA) 兴起,但CPU、GPU、FPGA仍然有用武之地,最终,市场会决定胜者。2019年2月出版的Communications of the ACM,刊登了两人的署名文章“A New Golden Age for computer Architecture”,在图灵演讲的基础之上进一步完善思想,并用文字将他们的洞见更加清晰地呈现。“计算机体系结构领域将迎来又一个黄金十年,就像20世纪80年代我们做研究那时一样,新的架构设计将会带来更低的成本,更优的能耗、安全和性能。”下面是新智元对文章的编译。不能牢记过去的人,必定重蹈覆辙。——George Santayana,1905年软件通过称为指令集架构(ISA)的词汇表与硬件实现交互。在20世纪60年代初,IBM共推出了四个彼此不兼容的计算机系列,每个计算机系列都有自己的ISA、软件堆栈和输入/输出系统,分别针对小型企业、大型企业,科研单位和实时运算。 IBM的工程师们,包括ACM图灵奖获奖者Fred Brooks在内,都认为能够创建一套新的ISA,将这四套ISA有效统一起来。这需要一套技术解决方案,让计算8位数据路径的廉价计算机和计算64位数据路径的昂贵计算机可以共享一个ISA。数据路径(data path)是处理器的“肌肉”,因为这部分负责执行算法,但相对容易“加宽”或“缩小”。当时和现在计算机设计人员共同面临的最大挑战是处理器的“大脑”,即控制硬件。受软件编程的启发,计算机先驱人物、图灵奖获得者莫里斯·威尔克斯提出了简化控制流程的思路。控制部分被指定为一个二维数组,他称之为“控制存储”。数组的每一列对应一条控制线,每一行都是微指令,写微指令的操作称为微编程。控制存储包含使用微指令编写的ISA解释器,因此执行一个传统指令需要多个微指令完成。控制存储通过内存实现,这比使用逻辑门的成本要低得多。此表列出了IBM于1964年4月7日发布的新360系统的四种型号的指令集。四种型号之间。数据路径相差8倍,内存容量相差16倍,时钟速率相差近4倍,而性能相差50倍,其中最昂贵的机型M65具有最大空间的控制存储,因为更复杂的数据路径需要使用更多的控制线。由于硬件更简单,成本最低的机型M30的控制存储空间最小,但由于它们需要更多的时钟周期来执行360系统指令,因此需要有更多的微指令。通过微程序设计,IBM认为新的ISA将能够彻底改变计算行业,赢得未来。 IBM统治了当时的计算机市场,55年前诞生的IBM大型机,其后代产品现在每年仍能为IBM带来100亿美元的收入。现在看来,尽管市场对技术问题做出的评判还不够完善,但由于硬件系统架构与商用计算机之间的密切联系,市场最终成为计算机架构创新的是否成功的关键性因素,这些创新往往需要工程人员方面的大量投入。集成电路,CISC,432,8086,IBM PC。当计算机开始使用集成电路时,摩尔定律意味着控制存储可能变得更大。更大的内存可以运行更复杂的ISA。1977年,数字设备公司(Digital Equipment)发布的VAX-11/780机型的控制存储大小达到5120 word×96 bit,而其之前的型号仅为256 word×56 bit。一些制造商选择让选定的客户添加名为“可写控制存储”(WCS)的自定义功能来进行微程序设计。最著名WCS计算机是Alto,这是图灵奖获得者Chuck Thacker和Butler Lampson以及他们的同事们于1973年为Xerox Palo Alto研究中心设计制造的。它是第一台个人计算机,使用第一台位映射显示器和第一个以太局域网。用于支持新显示器和网络的设备控制器是存储在4096 word×32 bit WCS中的微程序。微处理器在20世纪70年代仍处于8位时代(如英特尔的8080处理器),主要采用汇编语言编程。各家企业的设计师会不断加入新的指令来超越竞争对手,通过汇编语言展示他们的优势。戈登·摩尔认为英特尔的下一代指令集架构将能够延续英特尔的生命,他聘请了大批聪明的计算机科学博士,并将他们送到波特兰的一个新工厂,以打造下一个伟大的指令集架构。英特尔最初推出8800处理器是一个雄心勃勃的计算机架构项目,适用于任何时代,它具有32位寻址能力、面向对象的体系结构,可变位的长指令,以及用当时新的编程语言Ada编写的自己的操作系统。图1 IBM 360系列机型的参数,IPS意为“每秒操作数”这个雄心勃勃的项目迟迟不能退出,这迫使英特尔紧急改变计划,于1979年推出一款16位微处理器。英特尔为新团队提供了52周的时间来开发新的“8086”指令集,并设计和构建芯片。由于时间紧迫,设计ISA部分仅仅花了3周时间,主要是将8位寄存器和8080的指令集扩展到了16位。团队最终按计划完成了8086的设计,但产品发布后几乎没有大张旗鼓的宣传。英特尔很走运,当时IBM正在开发一款旨在与Apple II竞争的个人计算机,正需要16位微处理器。 IBM一度对摩托罗拉的68000型感兴趣,它拥有类似于IBM 360的指令集架构,但与IBM激进的方案相比显得落后。IBM转而使用英特尔8086的8位总线版本处理器。IBM于1981年8月12日宣布推出该机型,预计到1986年能够卖出25万台,结果最终在全球卖出了1亿台,未来前景一片光明。英特尔的8800项目更名为iAPX-432,最终于1981年发布,但它需要多个芯片,并且存在严重的性能问题。该项目在1986年终止,此前一年,英特尔将寄存器从16位扩展到32位,在80386芯片中扩展了8086指令集架构。摩尔的预测是正确的,这个指令集确实和英特尔一直存续下来,但市场却选择了紧急赶工的产品8086,而不是英特尔寄予厚望的iAPX-432,这对摩托罗拉68000和iAPX-432的架构师来讲,都是个现实的教训,市场永远是没有耐心的。从复杂指令集计算机到精简指令集计算机。 20世纪80年代初期,对使用大型控制存储中的大型微程序的复杂指令集计算机(CISC)的相关问题进行过几项调查。Unix的广泛应用,证明连操作系统都可以使用高级语言,所以关键问题就是:“编译器会产生什么指令?”而不是“程序员使用什么汇编语言?”软硬件交互手段的显著进步,为架构创新创造了机会。图灵奖获得者John Cocke和他的同事为小型计算机开发了更简单的指令集架构和编译器。作为一项实验,他们重新定位了研究编译器,只使用简单的寄存器-寄存器操作和IBM 360指令集加载存储数据传输,避免了使用更复杂的指令。他们发现,使用简单子集的程序运行速度提高了三倍。 Emer和Clark发现,20%的VAX指令需要60%的微代码,仅占执行时间的0.2%。Patterson发现,如果微处理器制造商要遵循大型计算机的CISC指令集设计,就需要一种方法来修复微代码错误。Patterson就此问题写了一篇论文,但被《计算机》期刊拒稿。审稿人认为,构建具有ISA的微处理器是一个糟糕的想法,因为这需要在现场进行修复。这让人怀疑,CISC 指令集对微处理器的价值究竟有多大。具有讽刺意味的是,现代CISC微处理器确实包含微代码修复机制,但这篇论文被拒的主要结果是,激励了他开始研究面向微处理器的精简指令集,即复杂度较低的指令集架构,以及使用精简指令集的计算机(RISC)。这些观点的产生,以及由汇编语言向高级语言的转变,为CISC向RISC的过渡创造了条件。首先,RISC指令经过简化,因此不再需要微代码解释器。 RISC指令通常与微指令一样简单,硬件能够直接执行。其次,以前用于CISC 指令集的微代码解释器的快速存储器被重新用作RISC指令的高速缓存。(缓存是一个小而快速的内存,用于缓冲最近执行的指令,因为这类指令很快就会被再次调用。)第三,基于Gregory Chaitin的图着色方案的寄存器分配器,使编译器能够更简易、高效地使用寄存器,最后,摩尔定律意味着在20世纪80年代能够诞生有足够数量的晶体管的芯片,可以容纳一个完整的32位数据路径、指令集和数据高速缓存。在今天的“后PC时代”,x86芯片的出货量自2011年达到峰值以来,每年下降近10%,而采用RISC处理器的芯片出货量则飙升至200亿。下图分别为1982年和1983年在加州大学伯克利分校和斯坦福大学开发的RISC-I8和MIPS12微处理器,体现出了RISC的优点。这些芯片最终于1984年在IEEE国际固态电路会议上发表。这是一个了不起的时刻,伯克利和斯坦福的一些研究生也可以构建微处理器了,可以说比行业内的产品更优秀。图2 由加州大学伯克利分校开发的RISC-I8和斯坦福大学开发的MIPS12微处理器这些由学术机构开发的芯片,激励了许多企业开始发力RISC微处理器,并成为此后15年中发展最快的领域。其原因是处理器的性能公式:时间/程序=操作数/程序x(时钟周期)/指令x时间/(时钟周期)DEC公司的工程师后来表明,更复杂的CISC指令集每个程序执行的操作数大约为RISC的75%执行大约75%,不过在类似的技术下,CISC每个指令执行时间约为五到六个时钟周期,使RISC微处理器的运算速度是CISC的大约4倍。20世纪80年代时,这些内容还没有进入计算机体系结构的书中,所以我们在1989年编写《计算机架构:定量方法》( Computer Architecture: AQuantitative Approach)一书。本书的主题是使用测量和基准测试来对计算机架构进行量化评估,而不是更多地依赖于架构师的直觉和经验,就像过去一样。我们使用的定量方法也得益于图灵奖得主高德纳(Donald Knuth)关于算法的著作内容的启发。VLIW,EPIC,Itanium。指令集架构的下一次创新试图同时惠及RISC和CISC,即超长指令字(VLIW)和显式并行指令计算机(EPIC)的诞生。这两项发明由英特尔和惠普共同命名的,在每条指令中使用捆绑在一起的多个独立操作的宽指令。VLIW和EPIC的拥护者认为,如果用一条指令可以指定六个独立的操作——两次数据传输,两次整数操作和两次浮点操作,编译器技术可以有效地将这些操作分配到六个指令槽中,硬件架构就可以变得更简单。与RISC方法一样,VLIW和EPIC的目的是将工作负载从硬件转移到编译器上。 英特尔和惠普合作设计了一款基于EPIC理念的64位处理器Itanium,想用其取代32位x86处理器并对其抱了很高的期望,但实际情况与他们的早期预期并不相符。虽然EPIC方法适用于高度结构化的浮点程序,但在可预测性较低的缓存或的分支整数程序上很难实现高性能。正如高德纳后来所指出的那样:“Itanium的设想非常棒,但事实证明满足这种设想的编译器基本上不可能写出来。” 开发人员注意到Itanium的迟钝和性能不佳,将用命途多舛的游轮“Titanic”其重命名为“Itanic”。不过,市场再次失去了耐心,最终64位版本的x86成为32位x86的继承者,没有轮到Itanium。不过一个好消息是,VLIW在较窄的应用程序与小程序上,包括数字信号处理任务中留有一席之地。PC和后PC时代的RISC vs. CISCAMD和英特尔利用500人的设计团队和先进的半导体技术,缩小了x86和RISC之间的性能差距。同样,受到流水线化简单指令vs.复杂指令的性能优势的启发,指令解码器在运行中将复杂的x86指令转换成类似RISC的内部微指令。AMD和英特尔随后将RISC微指令的执行流程化。RISC的设计人员为了性能所提出的任何想法,例如隔离指令和数据缓存、片上二级缓存、deep pipelines以及同时获取和执行多条指令等,都可以集成到x86中。在2011年PC时代的巅峰时期,AMD和英特尔每年大约出货3.5亿台x86微处理器。PC行业的高产量和低利润率也意味着价格低于RISC计算机。考虑到全球每年售出数亿台个人电脑,PC软件成为了一个巨大的市场。尽管Unix市场的软件供应商会为不同的商业RISC ISA (Alpha、HP-PA、MIPS、Power和SPARC)提供不同的软件版本,但PC市场只有一个ISA,因此软件开发人员发布的“压缩打包”软件只能与x86 ISA兼容。更大的软件基础、相似的性能和更低的价格使得x86在2000年之前同时统治了台式机和小型服务器市场。Apple公司在2007年推出了iPhone,开创了后PC时代。智能手机公司不再购买微处理器,而是使用其他公司的设计(包括ARM的RISC处理器),在芯片上构建自己的系统(SoC)。移动设备的设计者不仅重视性能,而且重视晶格面积和能源效率,这对CISC ISA不利。此外,物联网的到来大大增加了处理器的数量,以及在晶格大小、功率、成本和性能方面所需的权衡。这种趋势增加了设计时间和成本的重要性,进一步不利于CISC处理器。在今天的后PC时代,x86的出货量自2011年达到峰值以来每年下降近10%,而采用RISC处理器的芯片的出货量则飙升至200亿。今天,99%的32位和64位处理器都是RISC。总结上面的历史回顾,我们可以说市场已经解决了RISC-CISC的争论;CISC赢得了PC时代的后期阶段,但RISC正在赢得整个后PC时代。几十年来,没有出现新的CISC ISA。令我们吃惊的是,今天在通用处理器的最佳ISA原则方面的共识仍然是RISC,尽管距离它们的推出已经过去35年了。处理器架构当前的挑战虽然上一节的重点是指令集体系结构(ISA)的设计,但大多数计算机架构师并不设计新的ISA,而是在当前的实现技术中实现现有的ISA。自20世纪70年代末以来,技术的选择一直是基于金属氧化物半导体(MOS)的集成电路,首先是n型金属氧化物半导体(nMOS),然后是互补金属氧化物半导体(CMOS)。MOS技术惊人的改进速度(Gordon Moore的预测中已经提到这一点)已经成为驱动因素,使架构师能够设计更积极的方法来实现给定ISA的性能。摩尔在1965年26年的最初预测要求晶体管密度每年翻一番;1975年,他对其进行了修订,预计每两年翻一番。这最终被称为摩尔定律。由于晶体管密度呈二次增长,而速度呈线性增长,架构师们使用了更多的晶体管来提高性能。摩尔定律和 Dennard Scaling的终结尽管摩尔定律已经存在了几十年(见图2),但它在2000年左右开始放缓,到2018年,摩尔的预测与目前的能力之间的差距大约是15倍。目前的预期是,随着CMOS技术接近基本极限,差距将继续扩大。图2:每片英特尔微处理器的晶体管与摩尔定律的差别与摩尔定律相伴而来的是罗伯特·登纳德(Robert Dennard)的预测,称为“登纳德缩放比例”(Dennard Scaling)。该定律指出,随着晶体管密度的增加,每个晶体管的功耗会下降,因此每平方毫米硅的功耗几乎是恒定的。由于硅的计算能力随着每一代新技术的发展而提高,计算机将变得更加节能。Dennard Scaling在2007年开始显著放缓,到2012年几乎变为零(见图3)。图3:Transistors per chip and power per mm2.在1986年到2002年之间,指令级并行(ILP)的开发是提高性能的主要架构方法,并且随着晶体管速度的提高,每年的性能增长大约50%。Dennard Scaling的结束意味着架构师必须找到更有效的方法来利用并行性。要理解为什么ILP的增加会导致更大的效率低下,可以考虑一个像ARM、Intel和AMD这样的现代处理器核心。假设它有一个15-stage的pipeline,每个时钟周期可以发出四条指令。因此,它在任何时刻都有多达60条指令在pipeline中,包括大约15个分支,因为它们代表了大约25%的执行指令。为了使pipeline保持完整,需要预测分支,并推测地将代码放入pipeline中以便执行。投机性的使用是ILP性能和效率低下的根源。当分支预测完美时,推测可以提高性能,但几乎不需要额外的能源成本——甚至可以节省能源——但是当它“错误地预测”分支时,处理器必须扔掉错误推测的指令,它们的计算工作和能量就被浪费了。处理器的内部状态也必须恢复到错误预测分支之前的状态,这将花费额外的时间和精力。要了解这种设计的挑战性,请考虑正确预测15个分支的结果的难度。如果处理器架构师希望将浪费的工作限制在10%的时间内,那么处理器必须在99.3%的时间内正确预测每个分支。很少有通用程序具有能够如此准确预测的分支。为了理解这些浪费的工作是如何累加起来的,请考虑下图中的数据,其中显示了有效执行但由于处理器的错误推测而被浪费的指令的部分。在Intel Core i7上,这些基准测试平均浪费了19%的指令。图4但是,浪费的能量更大,因为处理器在推测错误时必须使用额外的能量来恢复状态。这样的度量导致许多人得出结论,架构师需要一种不同的方法来实现性能改进。多核时代就这样诞生了。多核将识别并行性和决定如何利用并行性的责任转移给程序员和语言系统。多核并不能解决由于登纳德缩放比例定律结束而加剧的节能计算的挑战。无论有源堆芯对计算的贡献是否有效,有源堆芯都会消耗能量。一个主要的障碍是Amdahl定律,它指出并行计算机的加速受到连续计算部分的限制。 为了理解这一观察的重要性,请考虑下图,其中显示了假设串行执行的不同部分(其中只有一个处理器处于活动状态),在最多64个内核的情况下,应用程序的运行速度要比单个内核快得多。例如,当只有1%的时间是串行的,64处理器配置的加速大约是35。不幸的是,所需的功率与64个处理器成正比,因此大约45%的能量被浪费了。图5当然,真正的程序有更复杂的结构,其中部分允许在任何给定的时间点使用不同数量的处理器。尽管如此,定期通信和同步的需求意味着大多数应用程序的某些部分只能有效地使用一部分处理器。尽管Amdahl定律已有50多年的历史,但它仍然是一个困难的障碍。随着Dennards Scaling定律的结束,芯片上内核数量的增加意味着功率也在以几乎相同的速度增长。不幸的是,进入处理器的能量也必须以热量的形式被移除。因此,多核处理器受到热耗散功率(TDP)的限制,即封装和冷却系统可以移除的平均功率。虽然一些高端数据中心可能会使用更先进的软件包和冷却技术,但没有电脑用户愿意在办公桌上安装一个小型热交换器,或者在背上安装散热器来冷却手机。TDP的限制直接导致了“暗硅”时代,处理器会降低时钟速率,关闭空闲内核以防止过热。另一种看待这种方法的方法是,一些芯片可以重新分配他们宝贵的权力,从空闲的核心到活跃的。一个没有Dennards Scaling,摩尔定律减速、Amdahl法则完全有效的时代,意味着低效率限制了性能的提升,每年只有几个百分点的提升(见图6)。实现更高的性能改进需要新的架构方法,更有效地使用集成电路功能。在讨论了现代计算机的另一个主要缺点后,我们将回到可能起作用的方法上来。图6被忽视的安全问题20世纪70年代,处理器架构师将重点放在通过保护环等概念来增强计算机安全性上。这些架构师充分认识到大多数错误将出现在软件中,但是他们相信架构支持可以提供帮助。这些特性在很大程度上没有被操作系统所采用,这些操作系统被有意地集中在所谓的良性环境中(比如个人电脑),并且成本很高,所以很快被放弃了。在软件社区中,许多人认为正式验证机制和微内核这样的技术,将为构建高度安全的软件提供有效的机制。遗憾的是,规模化软件系统和对性能的追求,使得这些技术无法跟上处理器的性能。其结果是,大型软件系统仍然存在许多安全缺陷,由于在线个人信息的大量增加,以及云计算的大规模应用,这种缺陷的影响被进一步放大了。尽管计算机架构师们安全性的重要意识方面进展缓慢,但他们也已经开始为虚拟机和加密硬件提供安全支持。遗憾的是,这也可能为不少处理器带来了一个未知、但重要的安全缺陷。尤其是,Meltdown和Spectre安全缺陷导致了新的漏洞,这些漏洞会利用微架构中的漏洞,使得本来受保护的信息迅速泄露。Meltdown和Spectre使用所谓的侧通道攻击(Side-channel attacks),通过观察任务所需时间,将ISA级别上不可见的信息转换为时间上可见的属性,从而泄露信息。2018年,研究人员展示了如何利用Spectre的变种在网络上泄露信息,而攻击者并不需要将代码加载到目标处理器上。尽管这种被称为NetSpectre的攻击泄漏信息速度很慢,但它可以让同一局域网(或云中的同一集群)上的任何机器受到攻击,这又产生了许多新的漏洞。随后有报告称发现了虚拟机体系结构中的另外两个漏洞。其中一种被称为“预见”(hadow),可以渗透英特尔旨在保护高风险数据(如加密密钥)的安全机制。此后每月都有新的漏洞被发现。侧通道攻击并不新鲜,但在早期,软件缺陷导致这种攻击往往能够成功。在Meltdown和Spectre和其他攻击中,导致受保护信息泄露的是硬件实现中的一个缺陷。处理器架构师在如何定义ISA的正确实现上存在基本的困难,因为标准定义中并没有说明执行指令序列对性能的影响,只是说明了执行指令的ISA可见的体系结构状态。处理器架构师们需要重新考虑ISA的正确实现的定义,以防范此类安全缺陷。同时,架构师们应该重新考虑他们对计算机安全性的关注程度,以及如何与软件设计人员合作来打造更安全的系统。从目前来看,架构师过于依赖于信息系统,并不愿意将安全性问题视为设计时的首要关注焦点。计算机体系结构新机遇“我们面前的一些令人叹为观止的机会被伪装成不可解决的问题。” ——John Gardner,1965年通用处理器固有的低效率,无论是由ILP技术还是多核所致,加上登纳德缩放定律(Dennard Scaling)和摩尔定律的终结,使我们认为处理器架构师和设计人员在一般情况下难以继续保持通用处理器性能实现显著的提升。而鉴于提高处理器性能以实现新的软件功能的重要性,我们必须要问:还有哪些其他可行的方法?有两个很清楚的机会,以及将两者结合起来所创造出的第三个机会。首先,现有的软件构建技术广泛使用具有动态类型和存储管理的高级语言。不幸的是,这些语言的可解释性和执行效率往往非常低。Leiserson等人用矩阵乘法运算为例来说明这种低效率。如图7所示,简单地用动态高级语言Python重写C语言代码,将性能提高了47倍。使用多核并行循环处理将性能提升了大约7倍。优化内存布局提高缓存利用率,将性能提升了20倍,最后,使用硬件扩展来执行单指令多数据(SIMD)并行操作每条指令能够执行16个32位操作,让性能提高了9倍。总而言之,与原始Python版本相比,最终的高度优化版在多核英特尔处理器上的运行速度提高了62,000倍。这当然只是一个小的例子,程序员应该使用优化后的代码库。虽然它夸大了通常的性能差距,但有许多软件都可以实现这样性能100倍到1000倍的提升。一个有趣的研究方向是关于是否可以使用新的编译器技术来缩小某些性能差距,这可能有助于体系结构的增强。尽管高效编译和实现Python等高级脚本语言的难度很大,但潜在的收益也是巨大的。哪怕编译性能提升25%的潜在收益都可能使Python程序运行速度提高数十乃至数百倍。这个简单的例子说明了在注重程序员效率的现代语言与传统方法之间有多大的差距。领域特定结构(DAS)。一个更加以硬件为中心的方法,是设计针对特定问题域定制的体系结构,并为该领域提供显著的性能(和能效)增益,这也被称之为“领域特定结构”(DSA),是一种为特定领域可编程且通常是图灵完整的,但针对特定应用程序类别进行了定制。从这个意义上说,DSA与专用集成电路(ASIC)不同,后者通常用于单一功能,代码很少发生变化。DSA通常称为加速器,因为与在通用CPU上执行整个应用程序相比,它们只会加速某些应用程序。此外,DSA可以实现更好的性能,因为它们更贴近应用程序的需求;DSA的例子包括图形处理单元(GPU),用于深度学习的神经网络处理器和用于软件定义网络(SDN)的处理器。DSA可以实现更好的性能和更高的能效,主要有以下四个原因:首先也是最重要的一点,DSA利用了特定领域中更有效的并行形式。例如,单指令多数据并行(SIMD)比多指令多数据(MIMD)更有效,因为它只需要获取一个指令流并且处理单元以锁步操作。虽然SIMD不如MIMD灵活,但它很适合许多DSA。DSA也可以使用VLIW方法来实现ILP,而不是推测性的无序机制。如前所述,VLIW处理器与通用代码不匹配,但由于控制机制更简单,因此对于数量有限的几个领域更为有效。特别是,大多数高端通用处理器都是乱序超标量执行,需要复杂的控制逻辑来启动和完成指令。相反,VLIW在编译时会进行必要的分析和调度,这非常适用于运行显式并行程序。其次,DSA可以更高效地利用内存层次结构。正如Horowitz所指出的,内存访问比加减计算成本要高得多。例如,访问32K字节缓存块所需的能量成本比32位整数相加高约200倍。这种巨大的差异使得优化存储器访问对于实现高能效至关重要。通用处理器在运行代码的时候,存储器访问往往表现出空间和时间局部性,但这在编译时非常难以预测。因此,CPU使用多级高速缓存来增加带宽,并隐藏相对较慢的片外DRAM的延迟。这些多级高速缓存通常消耗大约一半的处理器能量,但几乎都不需要对片外DRAM的所有访问,导致这些访问需要大约10倍于最后一级高速缓存访问的能量。缓存有两大明显缺点:数据集非常大时:当数据集非常大并且时间或空间位置较低时,缓存根本不能很好工作;当缓存工作得很好时:当缓存运行良好时,位置非常高,这意味着,根据定义,大多数缓存大部分时间都处于空闲状态。在编译时可以很好地定义和发现应用程序中的内存访问模式,这对于典型的DSL来说是正确的,程序员和编译器可以比动态分配缓存,更好地优化内存的使用。因此,DSA通常使用由软件明确控制的动态分层存储器,类似于矢量处理器的操作。对于合适的应用,用户控制的存储器可以比高速缓存消耗更少的能量。第三,DSA可以适度使用较低的精度。通用CPU通常支持32位和64位整数和浮点(FP)数据。机器学习和图形学中的许多应用不需要计算得这样精确。例如,在深度神经网络(DNN)中,推理通常使用4位,8位或16位整数,从而提高数据和计算吞吐量。同样,对于DNN训练应用,FP很有用,但32位足够了,一般16位就行。最后,DSA受益于以领域特定语言(DSL)编写的目标程序,这些程序可以利用更多的并行性,改进内存访问的结构和表示,并使应用程序更有效地映射到特定领域处理器。领域特定语言DSA要求将高级运算融入到体系结构里,但尝试从Python,Java,C或Fortran等通用语言中提取此类结构和信息实在太难了。领域特定语言(DSL)支持这一过程,并能有效地对DSA进行编程。例如,DSL可以使向量、密集矩阵和稀疏矩阵运算显式化,使DSL编译器能够有效地将将运算映射到处理器。常见的DSL包括矩阵运算语言Matlab,编程DNN的数据流语言TensorFlow,编程SDN的语言P4,以及用于指定高级变换的图像处理语言Halide。使用DSL的难点在于如何保持足够的架构独立性,使得在DSL中编写的软件可以移植到不同的架构,同时还可以实现将软件映射到底层DSA的高效率。例如,XLA系统将Tensorflow编译到使用Nvidia GPU和张量处理器单元(TPU)的异构处理器。权衡DSA的可移植性以及效率是语言设计人员、编译器创建者和DSA架构师面临的一项有趣的研究挑战。DSA TPU v1。以Google TPU v1作为DSA的一个例子,Google TPU v1旨在加速神经网络推理。TPU自2015年开始投入生产,应用范围从搜索查询到语言翻译再到图像识别,再到DeepMind的围棋程序AlphaGo和通用棋类程序AlphaZero,其目标是将深度神经网络推理的性能和能效提高10倍。如图8所示,TPU的组织架构与通用处理器完全不同。总结我们考虑了两种不同的方法,通过提高硬件技术的使用效率来提高程序运行性能:首先,通过提高现代高级语言的编译性能;其次,通过构建领域特定体系结构,可以大大提高性能和效率。DSL是另一个如何改进支持DSA等架构创新的硬件/软件接口的例子。通过这些方法获得显著性能提升。在行业横向结构化之前,需要在跨抽象层次上垂直集成并做出设计决策,这是计算机早期工作的主要特征。在这个新时代,垂直整合变得更加重要,能够核查和进行复杂权衡及优化的团队将会受益。这个机会已经引发了架构创新的激增,吸引了许多竞争性的架构理念:Nvidia GPU使用许多内核,每个内核都有大型寄存器文件,许多硬件线程和缓存;Google TPU依赖于大型二维收缩倍增器和软件控制的片上存储器;FPGA,微软在其数据中心部署了现场可编程门阵列(FPGA),它可以根据神经网络应用进行定制;CPU,英特尔提供的CPU具有许多内核,这些内核通过大型多级缓存和一维SIMD指令(微软使用的FPGA)以及更接近TPU而不是CPU的新型神经网络处理器得到增强。除了这些大型企业外,还有数十家创业公司正在寻求自己的路径。为了满足不断增长的需求,体系结构设计师正在将数百到数千个此类芯片互连,形成神经网络超级计算机。DNN架构的这种雪崩使计算机架构变得有趣。在2019年很难预测这些方向中哪些(或者即使有)会赢,但市场肯定会最终解决技术以及架构争议。开放式架构受开源软件成功的启发,计算机体系结构中的第二个机遇是开源的ISA。要创建一个“面向处理器的Linux”,该领域需要行业标准的开源ISA,这样社区就可以创建开源内核(除了拥有专有内核的个别公司之外)。如果许多组织使用相同的ISA设计处理器,那么更大的竞争可能会推动更快的创新。目标是为芯片提供处理器,成本从几美分到100美元不等。第一个例子是RISC-V(称为“RISC Five”),这是加州大学伯克利分校开发的第五个RISC架构。RISC-V的社区在RISC-V基金会(http://riscv.org/)的管理下维护体系结构。开源允许ISA在公开的场景下发生演变,在决策最终确定之前,由硬件和软件专家进行协作。RISC-V是一个模块化的指令集。一小部分指令运行完整的开源软件栈,然后是可选的标准扩展设计器,设计人员可以根据需求包含或省略这些扩展。这个基础包括32位和64位版本。RISC-V只能通过可选扩展来发展;即使架构师不接受新的扩展,软件堆栈仍可以很好的运行。 专有架构通常需要向上的二进制兼容性,这意味着当处理器公司添加新特性时,所有在此之后的处理器也必须包含这些新特性。而RISC-V则不是如此,所有增强功能都是可选的,如果应用程序不需要,可以删除。以下是迄今为止的标准扩展名,使用的是代表其全名的缩写:M. Integer multiply/divide;A. Atomic memory operations;F/D. Single/double-precision floating-point;C. Compressed instructions。RISC-V的第三个显著特征是ISA的简单性。虽然难以量化,但这里有两个与ARM公司同期开发的ARMv8架构的比较:更少的指令。RISC-V的指令要少得多。在基础版本中只有50个,在数量和性质上与最初的RIS-i惊人地相似。剩下的标准扩展(M,A,F和D)添加了53条指令,再加上C又增加了34条,共计137条。而ARMv8有500多条。更少的指令格式。 RISC-V的指令格式少了六个,而ARMv8至少有14个。简单性减少了设计处理器和验证硬件正确性的工作量。 由于RISC-V的目标范围从数据中心芯片到物联网设备,因此设计验证可能是开发成本的重要组成部分。第四,RISC-V是一个全新的设计。与第一代RISC架构不同,它避免了微架构或依赖技术的特性(如延迟分支和延迟加载),也避免了被编译器技术的进步所取代的创新(如注册窗口)。最后,RISC-V通过为自定义加速器保留大量的操作码空间来支持DSA。除了RISC-V之外,英伟达还(在2017年)宣布了一种名为NVDLA的免费开放架构,这是一种可伸缩、可配置的机器学习推断DSA。配置选项包括数据类型(int8、int16或fp16)和二维乘法矩阵的大小。模具尺寸从0.5 mm2到3 mm2不等,功率从20毫瓦到300毫瓦不等。ISA、软件堆栈和实现都是开放的。开放的简单体系结构与安全性是协同的。首先,安全专家不相信通过“隐藏”实现的安全性,因此实现开源很有吸引力,而开源的实现需要开放的体系结构。同样重要的是,增加能够围绕安全架构进行创新的人员和组织的数量。专有架构限制了员工的参与,但是开放架构允许学术界和业界所有最优秀的“头脑”来帮助共同实现安全性。最后,RISC-V的简单性使得它的实现更容易检查。此外,开放的架构、实现和软件栈,加上FPGA的可塑性,意味着架构师可以在线部署和评估新的解决方案,并每周迭代它们,而不是每年迭代一次。虽然FPGA比定制芯片慢10倍,但这种性能仍然足以支持在线用户。我们希望开放式架构成为架构师和安全专家进行硬件/软件协同设计的典范。轻量级硬件开发由Beck等人撰写的《轻量级软件开发》(The Manifesto for Agile Software Development,2011)彻底改变了软件开发方式,克服了瀑布式开发中传统的详细计划和文档的频繁失败。小型编程团队在开始下一次迭代之前快速开发工作原型(但不完整)并获得了客户反馈。轻量级开发的scrum版本汇集了5到10个程序员的团队,每次迭代执行需两到四周的冲刺。再次受到软件成功的启发,第三个机遇是轻量级硬件开发。对于架构师来说,好消息是现代电子计算机辅助设计(ECAD)工具提高了抽象级别,从而支持轻量级开发,而这种更高的抽象级别增加了设计之间的重用。但从设计芯片到得到用户反馈的几个月之间,像轻量级软件开发那样申请“硬件四周的冲刺”似乎是不合理的。下图概述了轻量级开发方法如何通过在适当的级别上更改原型来工作。最内层是一个软件模拟器,如果模拟器能够满足迭代,那么这一环节是进行更改最容易和最快的地方。下一级是FPGA,它的运行速度比一个详细的软件模拟器快数百倍。FPGA可以运行像SPEC那样的操作系统和完整的基准测试,从而可以对原型进行更精确的评估。Amazon Web Services在云中提供FPGA,因此架构师可以使用FPGA,而不需要先购买硬件并建立实验室。为了记录芯片面积和功率的数字,下一个外层使用ECAD工具生成芯片的布局。即使在工具运行之后,在准备生产新的处理器之前,仍然需要一些手动步骤来细化结果。处理器设计人员将此级别称为“Tape-In”。前四个级别都支持为期四周的冲刺。出于研究目的,当面积、能量和性能评估是非常准确的时候,我们可以停在Tape-In这个级别上。然而,这就像跑一场长跑,在终点前100码停了下来,尽管在比赛前做了大量的准备工作,运动员还是会错过真正跨越终点线的兴奋和满足。硬件工程师与软件工程师相比,其中一个优势是他们可以构建物理的东西。让芯片重新测量、运行真实的程序并显示给朋友和家人,这是硬件设计的一大乐趣。许多研究人员认为他们必须在此环节停下来,因为制造一个芯片的成本着实太高了。当设计规模较小的时候,它们出奇的便宜:只需14,000美元即可订购100个1-mm2芯片。在28nm的规格下,1 mm2的面积包含数百万个晶体管,足够容纳一个RISC-V处理器和一个NVLDA加速器。如果设计者的目标是构建一个大型芯片,那么最外层的成本是极其昂贵的,但是架构师可以用小型芯片演示许多新颖的想法。总结“黎明前最黑暗。”——托马斯·富勒,1650为了从历史的教训中获益,架构师必须意识到软件创新也可以激发架构师的兴趣,提高硬件/软件界面的抽象层次可以带来创新机会,并且市场最终会解决计算机架构的争论。 iAPX-432和Itanium说明了架构投资如何超过回报,而S/360,8086和ARM提供了长达数十年的高年度回报,并且看不到尽头。登纳德缩放比例定律和摩尔定律的终结,以及标准微处理器性能增长的减速,这些都不是必须解决的问题,而是公认的事实,并且提供了让人惊叹的机遇。高级、特定于领域的语言和体系结构,将架构师从专有指令集的链中解放出来,以及公众对改进安全性的需求,将为计算机架构师带来一个新的黄金时代。在开源生态系统的帮助下,轻量级开发的芯片将会令人信服,从而加速商业应用。这些芯片中通用处理器的ISA理念很可能是RISC,它经受住了时间的考验。可以期待与上一个黄金时代相同的快速改善,但这一次是在成本、能源、安全以及性能方面。下一个十年将会是一个全新计算机架构的“寒武纪”大爆发,这意味着计算机架构师在学术界和工业界将迎来一个激动人心的时代。更多阅读:孙剑出任院长!西交大成立人工智能学院,本科必修课表曝光Science封面里程碑研究!纳米级成像,人类终于看清大脑每个神经元刚刚,任正非回应一切:对今天的困难,华为已备战十几年!新智元AI技术+产业社群招募中,欢迎对AI技术+产业落地感兴趣的同学,加小助手_2 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。
前斯坦福大学校长约翰 L.亨尼斯 (John L.Hennessy,左)和加州大学伯克利分校退休教授戴维 A.帕特森 (David A.Patterson)。 ACM官网 图当地时间3月21日,美国计算机协会(Association for Computing Machinery, 简称ACM)宣布,现代计算机体系架构的两位先锋:前斯坦福大学校长约翰 L.亨尼斯 (John L.Hennessy)和加州大学伯克利分校退休教授戴维 A.帕特森 (David A.Patterson),因其开创性地提出计算机结构设计和评估的系统、量化方法荣获2017年图灵奖。图灵奖(A.M. Turing Award),由美国计算机协会于1966年设立,又叫“A.M. 图灵奖”,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先锋、英国科学家艾伦·麦席森·图灵(Alan M. Turing)。图灵奖对获奖者的要求极高,评奖程序极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名在同一方向上做出贡献的科学家同时获奖。因此它也被称为是计算机界的“诺贝尔奖”。图灵奖初期奖金为20万美元,1989年起增到25万美元,奖金通常由计算机界的一些大企业提供(通过与ACM签订协议)。目前图灵奖由Google公司赞助,奖金为100万美元。对于今年两位获奖者,ACM官网的给出的获奖理由是:亨尼斯和帕特森对基于RISC节能处理器的贡献有助于实现移动和物联网革命。与此同时,他们合作撰写的重要教科书《计算机体系结构:量化研究方法》影响了几代工程师和计算机设计师,并在过去的25年中推动了整个行业的创新步伐。微软创始人比尔·盖茨也表达了对这两人的敬佩和赞美,他对ACM表示,“这两位的工作已被证明是整个行业蓬勃发展的基础。”值得一提的是,目前,这两位现代计算机体系架构的先锋共同供职于谷歌的母公司Alphabet 。今年2月1日,谷歌母公司Alphabet任命亨尼斯为新任董事会主席,取代此前长期担任这一职务的埃里克·施密特(Eric Schmidt)。实际上,亨尼斯早在2004年,谷歌上市前几个月就加入了谷歌董事会,迄今已有14年之久,他也被外界誉为“硅谷教父”。另外一位获奖者帕特森,在2016年从加收大学伯克利分校退休后加入了谷歌大脑(Google brain),正式成为TPU项目团队成员。计算机体系结构的宗师说道两位获奖者对计算机领域的贡献,就不得不说到当今世界最主流的智能计算终端,也就是智能手机产品中采用的ARM架构,ARM的全称是:Advanced RISC Machine。其中,RISC就是两位获奖者提出的。RISC的中文翻译为:精简指令集计算机(reced instruction set computer)。这种微处理器与之前的相比,速度更快、功耗更低。ACM的官网称,若合计所有计算领域中的各类型RISC 处理器,全世界每年生产的超过160亿个微处理器中,有99%是RISC处理器。几乎是所有的智能手机、平板电脑、物联网设备中,都有他们的技术。帕特森在加州大学伯克利分校领导的团队创造了RISC这个术语,他们在1982年建成并演示了第一台RISC-1处理器。RISC-1原型拥有4.4万个晶体管,性能超过了使用10万个晶体管的传统CISC设计。 亨尼斯于1984年与MIPS计算机系统公司共同开启了斯坦福大学团队的工作。后来,伯克利团队的工作由Sun Microsystems在其SPARC微体系结构中实现了商业化。尽管许多计算机架构的设计师最初对RISC持怀疑态度,但MIPS和SPARC的成功,RISC设计成本低,以及研究进展增多等因素,使得RISC被广泛接受。到20世纪90年代中期,RISC微处理器在整个行业占据了主导地位。计算机领域里的“圣经”这两人的成就还不仅仅体现在推动计算机体系结构的商业化上。作为斯坦福大学的校长和加州大学伯克利分校的教授,亨尼斯和帕特森还共同编著了计算机领域里的经典教材:《计算机体系结构:量化研究方法》。这本书也被奉为计算机领域里的“圣经”,影响了几代工程师和计算机设计师。《计算机体系结构:量化研究方法》中提出了科学的新方法论,并通过向计算机架构社区传播其中重要思想,大大提高了微处理器设计的进步速度。在这本书中,亨尼斯和帕特森鼓励架构设计师们仔细优化自己设计的系统,以适应不同的内存和计算需求。他们的研究也促使人们将研究方向从寻求单纯的性能提升转向设计架构时考虑能耗、散热,以及片外通信等问题。ACM官网称,这本书具有开创性意义,因为它是第一本提供分析和科学框架的文本,为工程师和设计者评估微处理器设计的价值提供了方法和思路。这本书1990年出版,现在英文已经更新到了第6版,中文也已更新到第5版,向一代又一代的工程师、科学家传递着他们二人的方法论。携手领奖,最大赢家是谷歌在ACM官网公布两位获奖者的名单后,谷歌首席架构师、谷歌研究院的高级研究员,也是谷歌的人工智能团队谷歌大脑(Google Brain)的负责人杰夫·迪恩(Jeff Dean)第一时间在自己的个人推特上表示了祝贺,也恭喜了谷歌的团队。Jeff Dean推特截图。 尽管图灵奖颁给了两位个人,但这次图灵奖的最大赢家显然是谷歌。亨尼斯从今年2月份接棒施密特,成为谷歌母公司的董事长,成为各大媒体的焦点。但实际上,亨尼斯在很早之前就对谷歌有着举足轻重的作用。众所周知,斯坦福大学一直鼓励“科研成果转化”。在亨尼斯当然斯坦福校长期间,一直鼓励学生和教授们创业、创新。他认为,创业精神是学校根基的一个重要部分。也正是如此,外界将其称为“硅谷教父”。而两位谷歌的创始人都是斯坦福的学生,并且早在2004年,谷歌上市前几个月,亨尼斯就加入了谷歌董事会。相比之下,帕特森与谷歌的渊源开始较晚,但也作用不小。帕特森在加入谷歌是已经是69岁了,但他加入谷歌后,进入了谷歌大脑团队,并成为TPU的项目正式成员,推动和深入了谷歌TPU项目的研发。外界对于TPU并不陌生,它是谷歌围棋项目AlphaGo背后的“英雄”,是谷歌专为加速深层神经网络运算能力而研发的芯片。在去年4月一篇有75位联合作者的论文中,谷歌团队对TPU进行了分析:与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。今年2月份,谷歌正式将TPU全面对外开放,成为Google云计算资源的一部分。两位图灵奖最终集结谷歌,也让外界对谷歌的未来发展充满就期待,不知道未来的谷歌是否会在可芯片、计算机硬件方面有更多的投入和产出,正在形成完整的计算机生态。附:ACM官网对两位获奖者的背景介绍约翰 L.亨尼斯 (John L.Hennessy),2000-2016 年担任斯坦福大学校长。他还是斯坦福 Knight-Hennessy 学者计划的主任、思科系统公司的董事会成员、Gordon and Betty Moore 基金会董事会成员和 Alphabet 公司董事会主席。Hennessy 在维拉诺瓦大学获得电气工程学士学位,在纽约州立大学石溪分校获得计算机科学硕士及博士学位。亨尼斯获得众多荣誉,包括 IEEE 荣誉奖章、ACM-IEEE CS Eckert-Mauchly 奖(与 Patterson 共享)、EEE John von Neumann Medal(与帕特森共享)、Seymour Cray 计算机工程奖以及美国艺术与科学学院颁发的创始人奖(Founders Award)。亨尼斯还是 ACM 和 IEEE 会士,同时还是美国国家工程院、美国国家科学院和美国哲学院院士。戴维 A.帕特森 (David A.Patterson)是谷歌的杰出工程师(Distinguished Engineer),也是 RISC-V Foundation 董事会副主席,他提出了一个开放、免费的指令集架构,通过开放的标准协作开启了处理器创新的新时代。从 1976 年到 2016 年,帕特森一直担任加州大学伯克利分校计算机科学系教授,本、硕、博均毕业于加州大学洛杉矶分校计算机科学系。帕特森曾获得众多荣誉,包括 IEEEJohn von Neumann 奖章(和 Hennessy 共享)、ACM-IEEE CS Eckert-Mauchly 奖(和亨尼斯共享)、ACM Karl V. Karlstrom 杰出教育家奖等。2004 年到 2006 年,Patterson 担任 ACM 主席。他是 ACM、AAAS、IEEE 三会会士,也被选为美国国家工程院院士、美国国家科学院院士。
计算机体系结构结构:计算机的概念结构、功能和性能特性,它从一个更高的层次对计算机的结构特征等宏观特征进行研究。1、计算机体系结构分类2、CISC和RISC指令体系结构(ISA):一个处理器支持的指令和指令的字节级编码,不同的处理器族支持不同的指令体系结构。所以程序员编写的程序可以在一种机器上运行,就有可能在另一种机器上无法运行。2.1 CISC 复杂指令计算机基本思想是用更复杂的新指令代替原先由软件子程序完成的功能,从而实现软件的硬化。微处理器X86就属于CISC型。CISC 缺点:1、指令过于复杂2、每条复杂指令都要通过一段解释性微程序才能完成,这个需要多个CPU周期,从而降低了机器的处理速度3、 由于指令系统过于庞大,难以优化编译生成真正高效的目标代码4、 CISC强调完善中断控制,设计复杂,研制周期长。5、CISC给芯片设计带来很多困难,使芯片种类增多,出错率大没成本高。2.2 RISC 精简指令计算机通过减少指令总数和简化指令功能、降低硬件的设计复杂度、使指令能单周期运行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。ARM处理器属于RISC型。3、流水线技术3.1 定义流水线技术是将一个比较复杂的处理过程分为n个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上流动,在同一时间,n个部件同时进行不同的操作,完成不同的任务。3.2 指令的控制方式顺序方式:各机器指令之间顺序串行地执行。优点:控制简单。缺点:速度慢、各部件利用率低。重叠方式:在解释第K条指令之前,就开始执行第k+1 条指令。优点:速度有些提高,控制不是很复杂。缺点:会出现冲突、转移和相关等问题,在设计的时候要考虑。流水方式:模仿工业生成过程的流水线方式而产生的一种指令控制方式。流水的种类3.3 流水的相关处理RISC 中采用的流水技术有:超流水线、超标量、超长指令字。超流水线:是RISC一种并行处理技术。通过细化流水、增加级数和提高主频,使得每个机器周期内完成一个甚至两个浮点操作。实质是时间换空间。超标量技术:是RISC一种并行处理技术。通过内装多条流水线来同时执行多个处理。实质是空间换时间。超长指令字VLIW:同时执行多条指令。3.4 吞吐率和流水建立时间吞吐量值单位时间内流水线处理机流出的结果数。,对指令而言就是单位时间内执行的指令数。p=1/max{t1,t2 ...}4、阵列处理机、并行处理机和多处理机并行处理包含以下几类1、存储器操作并行2、处理器操作步骤并行(流水线处理机)3、处理器操作并行(阵列处理机)4、指令、任务、作业并行(多处理机、分布处理系统、计算机网络)计算机系统基础:校验码知识笔记
杨净 鱼羊 发自 凹非寺量子位 报道 | 公众号 QbitAI全球三大芯片架构之一MIPS,已经成为历史。据外媒报道,所属公司宣布将放弃继续设计MIPS架构,全身心投入RISC-V阵营。作为当年站在RISC改革前沿的前浪,MIPS由图灵奖得主、谷歌母公司董事长John Hennessy创办坐镇,创办8年即上市。当时究竟火到什么程度?就是微软会将自己的Windows系统移植到MIPS,英特尔也随即花费数十亿美元开发Itanium架构,来应对当时市面上RISC的挑战的那种。甚至MIPS一度被业内认为可以比肩Arm、x86,成为全球三大主流架构之一。如今本应四十不惑的MIPS,却突然耐不住寂寞,意外转投大火的RISC-V阵营。于是,就有网友感叹:这真是又一个遇上了安卓的黑莓啊。生于斯坦福,今年40岁论起出身,MIPS可以说是“师出名门”。1981年,时任斯坦福教授的John Hennessy领导团队,实现了第一个MIPS架构处理器。MIPS,全称为Microprocessor without Interlocked Pipeline Stage。它采用5级指令流水线,能够以接近每个周期一条指令的速率执行。这在当时很罕见。1980年代,正是精简指令集(RISC)对以x86为代表的复杂指令集(CISC)发起第一波冲击之时,其发展的势头,甚至让英特尔不惜投入数十亿美元开发Itanium。而MIPS,就是RISC阵营中最早的冲锋者之一。1984年,John Hennessy离开斯坦福,创立了MIPS科技公司。并且在成立的第二年就推出了第一个芯片设计R2000。1988年,MIPS推出了R3000。这款产品很快大获成功,销售超百万颗。不少公司的消费电子产品都用到了R3000,比如索尼的PS。美国首家电脑公司DEC、爱普生、日本电器等等知名企业也均是其客户。1991年,MIPS就推出了64bit的R4000。其竞争对手Arm则直到2012年才开始大范围推广64bit处理器设计。直到现在,你仍可以在不少产品中找到它的身影。比如英特尔旗下的自动驾驶公司Mobileye就仍在广泛采用其技术。而家用路由器产品中,MIPS也并不鲜见。中科院自主研发的龙芯,其LoongISA指令集同样基于MIPS发展而来。不过,去年龙芯已宣布,准备研发一套完全采用中国技术的指令集LoongArch,实现进一步的自主可控。值得一提的是,MIPS和现在的当红炸子鸡RISC-V称得上是师出同门,在许多方面都基于相同的思想。MIPS的创始人John Hennessy和RISC-V之父Dave Patterson也渊源颇深。两人合作撰写了2本现在被广泛用于本科生、研究生课程的教科书:《计算机体系结构:量化研究方法》和《计算机组成与设计:硬件/软件接口》。2017年,两人又因“开创了一种系统的、定量的方法来设计和评价计算机体系结构,并对微处理器行业产生了持久的影响”,共同获得图灵奖。专利被瓜分,又数次易手然鹅,没想到的是,当年如此辉煌的MIPS,从21世纪伊始就逐渐走下神坛。而这当中的每一步都是如此的戏剧化。首先,智能手机时代的爆发让竞争对手Arm走上舞台中央。之前也提到,MIPS设计之初就主打高性能的产品,比如游戏机、路由器、打印机等,对标英特尔的x86。而Arm从诞生开始就瞄准嵌入式低功耗领域,以至于在智能手机时期,Arm立刻可联合高通、苹果、联发科打造移动处理器芯片。当时的MIPS产品并没有低功耗的优势,等反应过来也为时已晚。再加上两者之间不同的授权方式。MIPS指令集架构授权很便宜,CPU核卖得贵,也就迫使很多公司选择自行设计,MIPS核心、添加指令、发布开发工具Arm则刚好相反,让众多CPU厂商可以共享一套指令集和编译工具,甚至为了讨好程序员,还设计了好用且便宜的USB调试工具。因为一个迟疑,就让MIPS失去了关键机会,甚至还落得被Arm蚕食的下场。2012年,江湖上就已经传出MIPS正在寻求买家把自己卖掉。当时潜在的买家有高通、博通、AMD、Google等,但最终得手的是竞争对手Arm、半导体及软件设计公司Imagination。Arm联合自己所属组织Bridge Crossing(专门收购技术专利),以3.5亿美元收购MIPS近500项专利,当中Arm出资1.675亿美元。剩下的专利(82项核心架构相关的关键专利)和公司运营主体都卖给了Imagination,收购价仅为6000万美元。两个收购方还就这些专利达成了交叉授权协议:Imagination获得498项剥离专利的终身免费授权,Bridge Crossing则得到82项保留专利的限制性授权。本以为MIPS遭遇如此贱卖,应该已经是大结局了。但没曾想,这是多舛命途的开始。Imagination本想借此番收购加强自身的CPU业务,它的第一大股东英特尔也想牵制Arm的发展。但在重要客户苹果选择自研GPU之后,Imagination业务一度告急,随即选择将MIPS抛售,自己也面临着收购的命运。MIPS经过两度转手,最终在2018年6月,落到了AI初创企业Wave Computing手里。因为要在MIPS CPU上开发他们公司的AI加速硬件,然后就买下了整个MIPS。据媒体称,当时他们已经拥有了相关许可,其实根本没必要买。当然原因不排除Wave Computing团队不少人都出自于MIPS,像CEO Derek Meyer曾是MIPS副总裁。收购不到半年,Wave Computing提出了一个大胆的计划——将MIPS架构开源,开放32位和64的MIPS架构(当时最新更新到第6版)。他们希望通过免费和开放战略吸引到更多企业客户开发者。然而本认为MIPS应该找到了一个好归宿之际,结果好景不长,在收购第二年,Wave Computing就申请破产重组。之后,MIPS的命运就一直悬而未决。正式投身RISC-V阵营现在,它以崭新的姿态重回大家的视野:放弃此前的同名架构,投身RISC-V阵营。公司在官方声明中表示:MIPS正在开发第八代架构、该架构将基于RISC-V处理器标准。前文也说道,MIPS与RISC-V算是师出同门。它们都是遵循RISC的理念,以简单、流线型的CPU设计而闻名。而在去年,刚满10周岁的RISC-V还一度火出了圈。因为架构简单、功耗面积低,更关键的在于开源,降低了厂商的开发门槛,由此受到了众多开发者青睐。就如阿里旗下的平头哥,创办不久就开发了一款基于RISC-V的玄铁910芯片,性能在ARM的A72级别。前不久,他们还宣布已经把安卓 10系统成功移植到了这款芯片上,并开源了全部的代码。国外也有一家公司SiFive,他们去年推出了一款使用RISC-V处理器的Linux电脑。免费、又好用、可应用的范围还广……这应该就是MIPS转战RISC-V的主要原因吧。至于之前已经得到MIPS授权的厂商,仍然可以合法地生产基于MIPS芯片。但后续还能否得到技术支持,就不得而知了。— 完 —
由美国计算机协会(ACM)所主导的图灵奖在业内基本被视为是计算机科学界的诺贝尔奖,能获得该奖项称号的必定是所作贡献对行业影响深远的重要人物,在近年来AI、机器学习和物联网的热火朝天背景下,ACM把2017年度的图灵奖颁发给了体系架构研究的一对大师——约翰·轩尼诗和大卫·帕特森。轩尼诗和帕特森的最大功劳,是在CISC当道的年代确立了RISC处理器的可行性,并在接下来的数十年里为RISC处理器的架构设计创造了一套系统且量化的方法。当年二位元老分别率领自己的团队,用MIPS和SPARC的成功向行业成功安利了RISC的好处,并为接下来计算机行业的发展打下了重要基础。时至今日,全球每年生产超过160亿个微处理器,绝大多数都是RISC处理器,它们几乎无处不在——手机平板还有各种智能家居产品里面的芯片都是RISC处理器,可以说整张物联网都是由RISC处理器组成的。而最近备受追捧的NPU概念,就是源自轩尼诗去年在斯坦福演讲里强调的DSA架构,即针对特定应用领域而作优化的处理器架构。目前两位元老都已经加入Google,在其TPU项目中会师,相信在接下来的时间里Google会在AI硬件方面制造更多声音。而全行业也在一直从他们的经验中获益:两位大师所合著的《计算机体系架构:量化研究方法》和《计算机组织与设计:硬件/软件接口》是行业公认的圣经级教材,培养和引导了无数处理器设计的从业人才,获得今年的图灵奖名至实归。
雷锋网 AI 科技评论按:近日,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 位成员的基金会推动,这保证了它的长期稳定性以及长期演进以前不一样的是,开放的 ISA 如今是可行的,因为许许多多的工程师现在就正在通过知识产权集成的方式为各种不同的产品设计片上系统(SoC),同时 ARM 也已经表明了知识产权授权对于 ISA 是可行的。另一方面,开放的计算架构也为 FPGA 和真实芯片两者都带来了开源处理器设计的可能性,未来的架构设计师只需修改现有的 RISC-V 设计以及对应的软件堆栈即可。即便 FPGA 实现的处理器的运行速度可能只有 100MHz,这也已经足够运行千百亿条指令、或者部署在网络上面对真实攻击测试防御能力。借助 FPGA 的可塑性,RISC-V 生态系统可以让新功能实验性探索的部署、评估、迭代升级流程从以往的若干年缩短到若干天。实现这种畅想所需的知识产权也将不仅限于 CPU,GPU、神经网络加速器、内存控制器、PCIe 控制器等都需要。随着摩尔定律的终结,工艺过程稳定性的提升也使得这个目标比以前更容易达成。这种需求也会让硬件架构设计师们未来能够产生大规模的影响,就像软件工程师们可以参与数据库系统、操作系统之类的开源项目开发一样。芯片的敏捷开发随着计算架构创新的重点从通用计算 CPU 转向领域专用以及异质计算处理器,芯片的设计时间及成本方面也需要有大的突破(就像 1980 年代 VLSI 带来突破那样)。小规模的团队也应当可以有能力为某个特别的领域或者应用设计专用的芯片。这需要硬件设计流程变得更高效,更像现代软件设计。与大芯片公司采用的从顶向下/单向的 waterfall 开发流程不同,敏捷开发流程让小团队也可以设计并迭代升级能够工作、但并不完整的芯片原型设计。巧合的是,提升了软件复用性的程序语言改进如今也已经集成在了最新的硬件设计语言中,这让硬件设计和复用变得更为简单。论文中纸面上的芯片布局当然不坏,但构建出真实的芯片才是让团队中每个成员都能感到激动的事情,而且这也是验证运行时间、能耗等重要特性的唯一方法。有一则好消息是,台积电用最新工艺制作 100 个小型测试芯片的价格已经下降到了只需 3 万美元,那么,可以说是几乎所有项目团队都可以负担得起在真实芯片上做最终的验证步骤,同时也可以享受到自己的想法成功工作在硅片上的幸福感。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 发表了多篇标志性的论文并介绍了许多领先发现,展现了同步多线程技术背后的思想、显著的性能提升以及实现这项技术的简易性。ISCA 2018 现场,Susan Eggers 上台领奖雷锋网 AI 科技评论对 ISCA 2018 的介绍就到这里。更多人工智能、计算机、机器学习学术动向,请继续关注我们。ISCA 2018 官网:iscaconf.org图灵奖演讲视频回放:https://www.acm.org/hennessy-patterson-turing-lecture现场照片来源 IEEE Soft-magazine 及 清华大学博士生涂锋斌,特此感谢。
选自ACM作者:Norman P. Jouppi, Cliff Young, Nishant Patil, David Patterson 机器之心编译2017 年图灵奖获得者、《计算机体系结构:量化研究方法》一书的作者、谷歌杰出工程师 David Patterson 等人近日在 ACM Communications 上撰文介绍了对于计算芯片架构未来的展望。作者认为深度神经网络加速的特定领域架构将成为未来主流,而随着制程提升的困难,通用计算芯片现在每年的提升仅有 3%,或许在 2038 年以前性能都无法翻倍。摩尔定律的终结将使特定领域的架构成为计算的未来。一个开创性的例子就是谷歌 2015 年推出的张量处理单元(TPU),目前已经在为超过十亿人提供服务。TPU 使深度神经网络(DNN)的计算速度提高了 15-30 倍,能耗效率比现有类似技术的 CPU 和 GPU 提高了 30-80 倍。本文要点虽然 TPU 是一种专用集成电路,但它适用于神经网络框架 TensorFlow 下的大量程序,驱动了谷歌数据中心的许多重要应用,包括图像识别、翻译、搜索和游戏。通过专门为神经网络重新分配芯片计算资源,TPU 在真实数据中心负载环境下效率要比通用类型的计算机高 30-80 倍,目前已为全球 10 亿人服务。神经网络的推理阶段通常遵循严格的响应时间限制,这降低了通用计算机所使用技术的效率,该通用计算机通常运行得较快,但某些情况下也会较慢。1965 年英特尔创始人之一戈登·摩尔预测芯片中的晶体管数量每两年会增加一倍。尽管 2017 年 1 月的 ACM Communications 封面呼吁道:「说我要终结还为时过早了」,摩尔定律确实寿终正寝。2014 年推出的 DRAM 芯片包含了 80 亿个晶体管,而在人们的预测中即使到了 2019 年,带有 160 亿个晶体管的 DRAM 芯片也不会大规模生产——如果看摩尔定律的话,四年里晶体管数量应该变成四倍多。2010 年款的英特尔至强 E5 处理器拥有 23 亿个晶体管,而 2016 年的至强 E5 也只有 72 亿个晶体管,或者说比摩尔定律预计的数值低 1.5 倍。毫无疑问,半导体行业还在不断进步,但其步伐已经放缓。Dennard Scaling 是一个鲜为人知,但同样重要的观察结果,Robert Dennard 在 1974 年认为,晶体管不断变小,但芯片的功率密度不变。如果晶体管尺寸线性缩小了二分之一,那么同样面积上芯片中晶体管的数量就会变为 4 倍。同时,如果电流和电压都降低了二分之一,它所使用的功率将下降 4 倍,在相同的频率下提供相同的功率。Dennard Scaling 在被发现的 30 年后结束,其原因并不是因为晶体管的尺寸不再缩小,而是因为电流和电压不能在继续下降的同时保持可靠性了。计算架构师们一直信奉摩尔定律和 Dennard Scaling,并通过复杂的处理器设计和内存层次结构,将资源转化为性能,而在这其中并没有顾及到程序员知识中各指令之间的并行性。不幸地是,架构师们最终耗尽了可以有效利用的指令的并行性。2004 年 Dennard Scaling 的结束,以及缺乏更有效指令级并行性方法的状况,迫使业界选择从单核高耗能处理器转换到多核高效率处理器。今天我们遵守吉恩·阿姆达尔(IBM 著名工程师,阿姆达尔定律的提出者)在 1967 年提出的定律,该定律认为不断增加处理器数量会导致性能提升的递减。阿姆达尔定律说,并行计算的理论加速受到任务顺序部分的限制;如果任务的 1/8 是串行的,则最大加速比原始性能高 8 倍——即使任务的其余部分很容易并行,并且架构师增加了 100 个处理器也是如此。下图显示了过去四十年以来,上述三大定律对处理器性能的影响。按照目前的速度,标准处理器的性能在 2038 年以前不会翻倍。图 1. 依照 Hennessy 和 Patterson 的理论,我们绘制了过去 40 年中,32 位和 64 位处理器内核每年最高的 SPECCPUint 性能;面向吞吐量的 SPECCPUint_rate 反映了类似的情况,即使其平稳期延迟了几年。晶体管看来不会再有很大提升了(这反映了摩尔定律的结束),而每平方毫米芯片面积的功耗正在增加(Dennard Scaling 也结束了),但人们对于芯片功率的预算却并没有增加(因为电子移动、机械和发热限制),芯片设计师们已经在充分发挥多核心的能力了(但这也受到阿姆达尔定律的限制),架构师们现在普遍认为,在性能效率上进行重大改进的唯一途径是特定领域的架构——它们只适用于处理特定的任务,但效率非常高。在云端的大型数据集和大量计算机之间的协作使得机器学习近年来有了很大的发展,特别是在深度神经网络(DNN)方面。与一些其他领域不同,DNN 应用方面很广泛。DNN 的突破包括将语音识别的错词率降低了 30%(近 20 年来的最大进步);自 2011 年以来,将图像识别的错误率从 26% 降低至 3.5;在围棋上击败了人类世界冠军;提升了搜索排名等等。单个 DNN 架构或许应用范围很窄,但这种方法仍然催生出了大量应用。神经网络一定程度上模拟了人类大脑中神经的功能,基于简单的人工神经元 - 输入的加权和的非线性函数(例如 max(0,value))。这些人工神经元被集中到一层,一层的输出是下一层的输入。深度神经网络中的「深度」代表有多个层,由于云中的大数据集,我们可以使用更大、更多的层来让神经网络获取更抽象、更准确的概念,而 GPU 会帮助我们快速进行计算。DNN 运行的两个阶段被称为训练(或学习)和推理(或预测),分别指代发展与生产。训练一个 DNN 可能需要数天,但训练好的 DNN 进行推理只需要几毫秒。针对不同的应用,开发者需要选择神经网络的类型和层数,并训练出合适的权重。几乎所有的训练都是浮点运算,这就是 GPU 在深度学习时代如此受欢迎的原因之一。被称为「量化」的转换将浮点数转为整数——通常只有 8 位——这种程度通常足以满足推断要求了。与 IEEE 754 16 位浮点乘法相比,8 位整数乘法只需要 1/6 的能耗,占用 1/6 的空间,而整数加法也能带来 13 倍能耗和 38 倍空间的提升。下表展示了两个例子,共六种 DNN 的运行效率——这代表了谷歌数据中心 2016 年 95% 的深度神经网络工作负载。它们在 TensorFlow 中的代码都非常短,只有 100-1500 行。这些示例代表在主机服务器上运行较大应用程序的小组件,可以是数千到数百万行 C ++代码。应用程序通常面向用户,这会导致严格的响应时间限制。表 1. 2016 年 7 月,谷歌 TPU 上的 DNN 工作负载。共六种 DNN 应用(三种 DNN 类型),代表 95% 的 TPU 工作负载。如表 1 所示,每个模型需要 500 万至 1 亿个权重,这可能需要花费大量时间和能耗来访问。为了压缩访问成本,在一批独立示例中重复使用相同的权重可以提高性能。TPU 起源、架构及实现早在 2006 年,谷歌就开始考虑在其数据中心部署 GPU——现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(ASIC)。结论是,只有为数不多的能在特殊硬件上运行的应用可以免费使用谷歌大型数据中心的过剩容量,而且很难自由改进。情况在 2013 年出现了转机,当时谷歌用户每天使用语音识别 DNN 语音搜索三分钟,使得谷歌数据中心的计算需求增加了一倍,而如果使用传统的 CPU 将非常昂贵。因此,谷歌启动了一项优先级别非常高的项目,快速生产一款定制芯片用于推理,并购买现成的 GPU 进行训练。谷歌的目标是将性价比提高 10 倍。为了完成这项任务,谷歌在其数据中心设计、验证、构建并部署了 GPU,而这一过程仅仅用了 15 个月。为了降低部署延迟的风险,谷歌工程师将 TPU 设计成 I/O 总线上的协处理器,并允许它像 GPU 一样插入现有服务器,而不是使 TPU 与 CPU 紧密集成。此外,为了简化硬件设计和调试,主机服务器将指令发送给 TPU 令其执行,而不是让 TPU 去自行获取。因此,TPU 在理念上更接近浮点单元(FPU)协处理器,而不是 GPU。谷歌工程师将 TPU 看做一个系统进行优化。为了减少与主机 CPU 的交互,TPU 运行整个推理模型,但提供了与 2015 年及以后的 DNN 相匹配的灵活性,而不局限于 2013 年的 DNN。图 2:TPU 的框图。TPU 指令通过外围组件互连高速(PCIe)Gen3x16 总线从主机被发送到指令缓冲器中。内框通常通过 256 字节宽度的路径连接在一起。从右上角开始,矩阵乘法单元为 TPU 的核心,256×256 MAC 可以对有符号或无符号的整数执行 8 位乘法和加法运算。这个 16 位的产品聚集在矩阵单元下方的 32 位累加器的 4MB 中。这四个 MiB 代表含有 4,096, 256 个元素的 32 位累加器。矩阵单元每周期产生一个 256 元素的部分和。图 2. TPU 框图及平面图矩阵单元的权重通过片内「权重 FIFO」来分级,该 FIFO 从我们称之为「权重存储器」的片外 8GB DRAM 中读取;为了推理,权重仅作读取;8GB 支持很多同时激活的模型。权重 FIFO 有四层深。中间结果保存在 24MiB 的片上「统一缓冲器」中,可以作为矩阵单元的输入。可编程 DMA 控制器将数据传送到 CPU 主机存储器和统一缓冲器或从二者中传送数据。为了能在谷歌的规模上可靠地部署,内存储器和外存储器包含内置错误检查与纠正硬件。TPU 微架构的原理是保持矩阵单元繁忙。为了实现这一目标,读取权重的指令遵循解耦访问/执行原理,因为它可以在发送地址之后、从权重存储器中取出权重之前完成。如果输入激活或权重数据没有准备好,矩阵单元将停止。由于读取大型静态随机存取存储器(Static Random-Access Memory,SRAM)消耗的算力比算法多得多,矩阵单元使用「脉动执行」通过减少统一缓冲器的读写来节约能量。它依赖于来自不同方向的数据,这些数据以规则的间隔到达阵列中的单元,这些方向在间隔中组合到一起。给定的含有 65,536 个元素的向量-矩阵乘法运算作为对角波前在矩阵中移动。这些权重被预加载,并随着新数据块的第一个数据一起随着前进波生效。控制和数据被流水线化,给程序员一种错觉,即 256 个输入被一次读取,并立即更新 256 个累加器中每个累加器的一个位置。从正确性的角度来看,软件不了解矩阵单元的脉动特性,但为了提高性能,必须考虑单元的延迟。TPU 软件栈必须与为 CPU 和 GPU 开发的软件栈兼容,这样应用可以快速移植到 TPU。在 TPU 上运行的应用部分通常用 TensorFlow 编写,并编译成可以在 GPU 或 TPU 上运行的 API。CPU、GPU、TPU 平台多数体系架构研究的论文基于运行小型、易于移植的基准测试模拟,这些基准测试可以预测潜在的性能(如果实施的话)。本文与上述论文不同,而是对 2015 年以来数据中心运行真实、大型生产工作负载的机器进行回顾性评估,其中一些机器的日常用户超过 10 亿。表 1 中列出的六种应用代表了 2016 年 TPU 数据中心 95% 的使用。由于正在测量生产工作负载,要比较的基准平台也必须可以在 Google 数据中心部署,因为这是生产工作负载运行的唯一处所。谷歌数据中心的很多服务器和谷歌规模对应用程序可靠性的要求意味着机器必须至少检查内存错误。由于英伟达 Maxwell GPU 和最近的 Pascal P40 GPU 不检查内存中的错误,在谷歌的规模中部署这些处理器并满足谷歌应用程序的严格可靠性要求是不可行的。表 2 显示了部署在谷歌数据中心的服务器,可以将其与 TPU 进行比较。传统的 CPU 服务器以英特尔的 18 核双插槽 Haswell 处理器为代表,该平台也是 GPU 或 TPU 的主机服务器。谷歌工程师在服务器中使用四个 TPU 芯片。表 2. 基准测试的服务使用 Haswell CPU、K80 GPU 及 TPU。很多计算机架构师没有考虑到从产品发布到芯片、主板、软件可以服务于数据中心的用户之间的时间差。表 3 指出,2014 年至 2017 年,商业云公司的 GPU 时间差为 5 至 25 个月。因此,可以媲美 2015 年 TPU 的 GPU 显然是英伟达 K80,后者处于相同的半导体工艺中,在 TPU 部署前六个月发布。表 3. 2015 年到 2017 年,英伟达 GPU 从发布到云端部署的时间差距,这 4 代 GPU 分别为 Kepler、Maxwell、Pascal 和 Volta 架构。每个 K80 卡包含两个裸片,并提供内部存储器和 DRAM 的错误检测和纠正机制。这种服务器中最多可安装 8 个 K80 裸片,这也是我们基准测试的配置。CPU 和 GPU 都使用大型芯片:大约 600 mm2,或者是英特尔 Core i7 的三倍。性能:Roofline、响应时间、吞吐量为了说明这六个 app 在三个处理器上的性能,我们使用了高性能计算机群(HPC)的 Roofline 性能模型。这一简单的视觉模型虽然不完美,但揭示了性能瓶颈出现的原因。该模型背后的假设是 app 无法适应片上缓存,因此它们要么计算受限,要么内存带宽受限。对于 HPC,y 轴表示每秒浮点运算性能(单位是 FLOPS),因此峰值计算率形成了 roofline 的「平缓」区(flat part)。x 轴表示运算密度(operational intensity),单位是 FLOPS/byte。内存带宽表示每秒多少比特,形成了 roofline 的「倾斜」部分(slanted part),因为 (FLOPS/sec)/ (FLOPS/Byte) = Bytes/sec。没有充足的运算密度时,程序受限于内存带宽,性能只能在 roofline 的「倾斜」部分之下。一个应用的每秒实际计算量与其天花板计算量之间的距离代表了保持运算密度不变时性能提升的潜力;提升运算密度的优化(如缓存块)可能带来更大的性能提升。为了在 TPU 上使用 Roofline 模型,当 DNN 应用被量化时,我们首先将浮点运算替换成整数运算。由于权重步伐无法正常适应 DNN 应用的片上内存,因此第二个改变就是将运算密度重新定义为每权重比特的整数乘积累加运算(integer multiply-accumulate operations per byte of weights),如表 1 所示。图 3 展示了单个 TPU、CPU 和 GPU 在 log-log scale 上的 Roofline 模型。TPU 的 Roofline 模型「倾斜」部分较长,其运算密度意味着性能更多地受限于内存带宽,而不是计算峰值。六个应用中有五个都接近天花板,MLP 和 LSTM 受限于内存,CNN 受限于计算。图 3:TPU、CPU 和 GPU 在 log-log 图上的 roofline 模型。五角星表示 TPU,三角形表示英伟达 Tesla K80 GPU,圆表示英特尔酷睿处理器(Haswell);所有 TPU 五角星都与其他两种芯片的 roofline 模型持平或在后者之上。如图 3 所示,这六个 DNN 应用与 Haswell 和 K80 roofline 天花板的距离大于与 TPU roofline 天花板的距离。响应时间是原因所在。这些应用中的很多个是面向终端用户服务的一部分。研究表明,即使响应时间的些微增加都会导致用户使用该服务的频率降低。训练可能没有苛刻的响应时间 deadline,但推断通常有,或者说相比于吞吐量,推断更偏好 latency。例如,按照应用开发者的要求,MLP0 的 99th 百分位响应时间通常为 7ms。(每秒推断和 7ms 的延迟包括服务器主机时间和加速器时间。)如果对响应时间的限制不严格,Haswell 和 K80 分别以 MLP0 最高吞吐量的 42% 和 37% 运行。这些限制也会影响到 TPU,它会以 80% 的吞吐量来运行,更加接近 TPU 的 MLP0 最大吞吐量。与 CPU 和 GPU 相比,单线程 TPU 没有复杂的微架构特征,即消耗晶体管和功率来提高平均性能,而非 99th 百分位的情况,即 TPU 没有缓存、分支预测、乱序执行、多处理、推测预取(speculative prefetching)、地址合并(address coalescing)、多线程、上下文切换(context switching)等。极简是领域专用处理器的优势。表 4 显示了每个芯片的相对推断性能底线,包括两个加速器 vs. CPU 的主机服务器开销,展示了这六个 DNN 应用相对性能的加权平均值,表明 K80 芯片速度是 Haswell 的 1.9 倍,TPU 芯片速度是 Haswell 的 29.2 倍,TPU 芯片速度是 GPU 的 15.3 倍。表 4:在 DNN 工作负载下 K80 GPU 芯片和 TPU 芯片与 CPU 的性能比。加权平均值使用了表 1 中六个 app 的实际混合。性价比、总体拥有成本(TCO)、性能/功耗(Performance/Watt)大批量购买计算机时会更多地考虑性价比而非性能。数据中心最好的成本指标是总体拥有成本(TCO)。组织(如谷歌)购买数千张芯片时所支付的实际价格取决于与相关企业的谈判沟通。由于涉及商业机密,我们无法公开此类价格信息或数据。但是,功率与 TCO 相关,我们可以公开每台服务器的功耗数,因此这里我们使用性能/功耗比代替性能/TCO 比。这部分我们对比了整个服务器而不是单个芯片。图 4 显示了 K80 GPU 和 TPU 相对于 Haswell CPU 的平均性能/功耗比。我们给出了两种不同的性能/功耗比计算。我们展示了两种不同的性能/功耗计算方法。第一种「total」包括计算 GPU 和 TPU 的性能/功耗时主机 CPU 服务器所消耗的功率;第二种「incremental」从 GPU 和 TPU 中减去了主机 CPU 服务器所消耗的功率。图 4:GPU 服务器与 CPU 服务器的性能/功耗对比(蓝色条)、TPU 服务器与 CPU 服务器的功耗对比(红色条)、TPU 服务器与 GPU 服务器的功耗对比(橙色条)。TPU' 是使用 K80 的 GDDR5 内存将 TPU 进行改进后的芯片。对替代性 TPU 设计的评估和 FPU 类似,TPU 协同处理器比较容易评估,因此我们为六个应用创建了一个性能模型。模型结果和硬件性能的平均差距小于 10%。我们使用性能模型来评估一款假设的 TPU 芯片 TPU'(使用同样的技术再用 15 个月我们也能设计出这款芯片)。更具攻击性的逻辑合成和模块设计仍然可以把时钟频率提高 50%。为 GDDR5 内存设计接口电路(就像 K80 那样)可以将权重内存带宽(weight memory bandwidth)提高四倍,将 roofline 脊点从 1350 降到 250。将时钟频率提高到 1,050 MHz 而不帮助内存并没有什么作用。如果我们使时钟频率为 700MHz,但使用 GDDR5 作为权重内存,则加权平均值飞跃至 3.9。同时实行这两种措施无法改变平均值,因此假设的 TPU' 具备更快的内存。将 DDR3 权重内存替换成等价的 K80 GDDR5 内存需要将内存通道的数量翻一倍,即 4 个通道。这一改进可以将芯片大小扩大约 10%。GDDR5 还能够将 TPU 系统的功率预算从 861W 提高到 900W 左右,因为每台服务器都有四个 TPU。图 4 显示,TPU'的总体性能/功耗/芯片是 Haswell 的 86 倍,K80 的 41 倍。其 incremental 指标是 Haswell 的 196 倍,K80 的 68 倍。讨论这部分按照 Hennessy 和 Patterson 的谬误-陷阱-反驳格式来展开:谬误。数据中心的 DNN 推断应用将吞吐量和响应时间置于同等重要的地位。我们惊讶于谷歌 TPU 开发者对响应时间有这么高的要求,2014 年就有人透露:对于 TPU 来说,批尺寸应该足够大,以到达性能峰值或者对延迟的要求不用那么苛刻。一个强大的应用是离线图像处理,谷歌开发者的直觉是,如果交互式服务也需要 TPU,则大部分服务需要累积足够大的批量。即使 2014 年谷歌关注响应时间(LSTM1)的应用开发者称,2014 年的限制是 10ms,而真正向 TPU 移植时 10ms 将被减少至 7ms。很多此类服务对 TPU 的意料之外的要求,以及它们对快速响应时间的影响和偏好,改变了这个等式。应用编写者通常会选择降低延迟,而不是累积更大的批量。幸运的是,TPU 具备一个简单、可重复的执行模型,来满足交互式服务的响应时间要求,此类高峰值吞吐量、小批量大小导致 TPU 具备比当前 CPU 和 GPU 更好的性能。谬误。K80 GPU 架构很适合进行 DNN 推断。我们发现 TPU 在性能、能耗和成本方面优于 K80 GPU 有五个方面的原因。一,TPU 只有一个处理器,而 K80 有 13 个,单线程当然更容易满足严格的延迟目标。二,TPU 具备一个非常大的二维乘法单元,GPU 有 13 个小的一维乘法单元。DNN 的矩阵相乘密度适合二维阵列中的算术逻辑运算单元。三,二维阵列还能通过避免访问寄存器来促成脉动实现,节约能源。四,TPU 的量化应用使用 K80 并不支持的 8 比特整数而不是 GPU 的 32 比特浮点数。数据小幅度改善的不仅是计算能耗,还能四倍化权重 FIFO 的有效容量和权重内存的有效带宽。(尽管使用的是 8 比特整数,但这些应用被训练来实现与浮点数相同的准确率。)五,TPU 忽略 GPU 需要而 DNN 不需要的特征,从而缩小 TPU 芯片、节约能耗、为其他更新留下空间。TPU 芯片的大小几乎是 K80 的一半,通常运行所需能量是后者的三分之一,而它的内存却是后者的 3.5 倍。这五个因素导致 TPU 在能耗和性能方面优于 K80 GPU 30 倍。陷阱。在设计领域专用架构时不顾架构历史。不适用通用计算的想法可能适合领域专用架构。对于 TPU 而言,三个重要的架构特征可以追溯到 1980 年代早期:脉动阵列(systolic array)、解耦访问/执行(decoupled access/execute)和复杂的指令集。第一个特征减少了大型矩阵相乘单元的面积和能耗;第二个特征在矩阵相乘单元运算期间并行获取权重;第三个特征更好地利用 PCIe bus 的有限带宽来发送指令。因此,了解架构历史的领域专用架构具备竞争优势。谬误。如果谷歌对 CPU 使用更加高效,它得到的结果将可以媲美 TPU。由于有效使用高级向量扩展(AVX2)整数支持需要大量工作,最初在 CPU 上只有一个 DNN 有 8 位结果,其收益大约是 3.5 倍。用浮点而不是 roofline 来显示所有 CPU 结果,会更加明确(也不需要太多空间)。如果所有 DNN 都有类似的加速,性能/功耗比将分别从 41 倍和 83 倍降为 12 倍和 24 倍。谬误。如果谷歌使用合适的新版本,GPU 结果将与 TPU 相匹配。表 3 报告了发布 GPU 和客户何时可以在云中使用 GPU 的区别。与较新的 GPU 进行公平比较将包括新的 TPU,而对于另外的 10W,我们只需使用 K80 的 GDDR5 内存就可以将 28 纳米、0.7GHz、40W TPU 的性能提高三倍。把 TPU 移动到 16 纳米工艺将进一步提高其性能/功耗。16 纳米英伟达 Pascal P40 GPU 的峰值性能是原 TPU 的一半,但在 250 瓦时,能耗却是原来的很多倍。如前所述,缺乏误差检测意味着 Google 无法再去数据中心部署 P40,因此无法在它们身上运行生产工作负载来确定其实际相对性能。相关研究两篇介绍 DNN ASIC 的研究文章至少可以追溯到 20 世纪 90 年代初。如 2016 年的《Communications》中所述,DianNao 家族有四种 DNN 架构,通过对 DNN 应用程序中的内存访问模式提供有效的架构支持,可以最大限度地减少片上和外部 DRAM 的内存访问。最初的 DianNao 使用 64 个 16 位整数乘法累加单元的数组。谷歌 TPU 3.0 于今年 5 月推出,其功能是 2.0 的八倍,性能高达 100petaflops。DNN 的特定领域架构仍然是计算机架构师的热门话题,主要聚焦于稀疏矩阵架构,这是在 2015 年 TPU 首次部署之后提出的。高效推理机基于第一次传递,通过过滤出非常小的值,将权重数量减少 9 倍左右,然后使用哈夫曼编码进一步缩小数据以提高推理机的性能。Cnvlutin 避免了激活输入为零时的乘法运算,这种几率可以达到 44%,部分原因可能是线性整流函数(ReLU),非线性函数将负值转换为零,使平均性能提高了 1.4 倍。Eyeriss 是一种新颖的低功耗数据流架构,通过游程编码数据利用零来减少内存占用,并通过避免输入为零时的计算来节省功率。Minerva 是一种跨算法、结构和电路学科的协同设计系统,通过用量化数据和小值修剪激活函数的方式把功耗降低到原来的 1/8。2017 年的相关研究是 SCNN——一种稀疏和压缩卷积神经网络的加速器。权重和激活函数都被压缩在 DRAM 和内部缓冲器中,从而减少了数据传输所需的时间和能量,并允许芯片存储更大的模型。2016 年以来的另一个趋势是用于训练的特定领域架构。例如,ScaleDeep 用来对专为 DNN 训练和推理而设计的高性能服务器进行评估,该服务器包含数千个处理器。每块芯片包含计算量大和存储量大的块,比例为 3:1,性能优于 GPU 6~28 倍。它用 16 位或 32 位浮点运算来计算。芯片通过与 DNN 通信模式匹配的高性能互连拓扑连接。和 SCNN 一样,这种拓扑只在 CNN 上评估。2016 年,CNN 仅占谷歌数据中心 TPU 工作量的 5%。计算机架构师期待对其它类型的 DNN 和硬件实现进行 ScaleDeep 评估。DNN 似乎是 FPGA 作为数据中心计算平台的一个良好用例。部署的一个例子是 Catapult。尽管 Catapult 是在 2014 年公开发布的,但它与 TPU 是同一个时代的,因为 2015 年它与 TPU 同时在微软数据中心部署了 28 纳米 Stratix V FPGA。Catapult 运行 CNN 比普通服务器快 2.3 倍。也许 Catapult 和 TPU 最显著的区别在于,为了获得最佳性能,用户必须使用低级硬件设计语言 Verilog 编写长程序,而不是使用高级 TensorFlow 框架编写短程序;也就是说,「可再编程性」(re-programmability)来自于 TPU 的软件,而不是最快 FPGA 的固件。总结尽管 TPU 在 I/O 总线上,并且内存带宽相对有限,限制了其使用(六个 DNN 应用程序中有四个内存受限),但每个周期 65536 次乘法累加的一小部分仍然数目不小,如 roofline 性能模型所示。这个结果表明,Amdahl 定律的「cornucopia 推论」——大量廉价资源的低效利用仍然可以提供颇具性价比的高性能。我们了解到,推理应用具有严格的响应时间限制,因为它们通常是面向用户的应用;因此,当面对 99% 的延迟期限时,DNN 架构需要表现良好。TPU 芯片利用其在 MAC 和片上内存的优势运行使用特定领域 TensorFlow 框架编写的短程序,该 TensorFlow 框架比 K80 GPU 芯片快 15 倍,因此能获得 29 倍的性能/功耗优势,这与性能/总拥有成本相关。与 Haswell CPU 芯片相比,对应的比率分别为 29 和 83 倍。有五个架构因素可以解释这种性能差距:处理器。TPU 只有一个处理器,而 K80 有 13 个,CPU 有 18 个;单线程使系统更容易保持在固定的延迟限制内。大型二维乘法单元。TPU 有一个非常大的二维乘法单元,而 CPU 和 GPU 分别只有 18 个和 13 个较小的一维乘法单元;矩阵乘法受益于二维硬件。脉动阵列。二维组织支持脉动阵列,减少寄存器访问和能量消耗。8 位整数。TPU 的应用使用 8 位整数而不是 32 位浮点运算来提高计算和内存效率。弃掉的特征。TPU 放弃了 CPU 和 GPU 所需要但是 DNN 用不到的功能,这使得 TPU 更便宜,同时可以节约资源,并允许晶体管被重新用于特定领域的板载内存。虽然未来的 CPU 和 GPU 在运行推理时速度更快,但是使用 circa-2015 GPU 内存重新设计的 TPU 将比原来快三倍,并使其性能/功耗优势分别为 K80 和 Haswell 的 70 倍和 200 倍。至少在过去十年中,计算机架构研究人员一直在发布基于模拟的创新成果,这些成果使用了有限的基准,并声称通用处理器的改进为 10% 或更少,而我们现在报告的收益是原来的十倍不止,这是应用于真实生产应用的真实硬件中部署的特定领域架构的收益。商业产品之间的数量级差异在计算机架构中很少见,而这甚至可能导致 TPU 成为该领域未来工作的典型。我们预计,其它人将会迎头赶上,将门槛提得更高。原文链接:https://cacm.acm.org/magazines/2018/9/230571-a-domain-specific-architecture-for-deep-neural-networks/fulltext
在漫长的历史长河中,人类始终未曾停止过对这个世界的探索和理解。我们是谁?我们从哪里来?我们要去向哪里?成为哲学最本源的问题。人类不断的拓宽已知的边界,对这个世界的探索和理解以信息的形式被人类传承了下来,形成知识,融合为智慧,从而不断的改变着整个世界。一、一切都在快速的发生着变化1. 我们所处的世界世界(world)广义上来讲,就是全部、所有、一切。现在一般来讲世界指的是人类赖以生存的地球。世界也代称有天地、天下、人间、世间、万物、世上等。世界也可解释由可感知的、不可感知的客观存在的总和以及用于描述客观存在及其相互关系的概念总和,客观存在是不以人或其他物意志转移而存在的。世界由概念世界和物质世界组成,概念世界包含所有生命对客观世界的认知以及为记录认知而存在的事物的总和。5000年前,人类一直处于物理世界当中,1950 s年第一台计算机的出现以后,物理世界和数字世界是并行的,并未曾有过太多的交集,1990s 以后信息高速公路计划,促进了物理世界向数字世界的转化,物理世界中的业务开始在数字世界中出现,2013s 大数据时代的开启,推动了数字世界向物理世界的拓展,人们提出了"数字化双胞胎",提出以数字化方式拷贝一个物理对象,模拟对象在现实环境中的行为,物理世界和数字世界开始出现融合。2. 我们对这个世界的认知认知,是指人们获得知识或应用知识的过程,或信息加工的过程,这是人的最基本的心理活动。它包括感觉、知觉、记忆、思维、想象和语言等。人脑接受外界输入的信息,经过头脑的加工处理,转换成内在的心理活动,进而支配人的行为,这个过程就是信息加工的过程,也就是认知过程。人的认知能力与人的认识过程是密切相关的,可以说认知是人的认识过程的一种产物。一般说来,人们对客观事物的感知(感觉、知觉)、思维(想象、联想、思考)等都是认识活动。认识过程是主观客观化的过程,即主观反映客观,使客观表现在主观中。而智慧则是由智力系统、知识系统、方法与技能系统、非智力系统、观念与思想系统、审美与评价系统等多个子系统构成的复杂体系蕴育出的能力。智慧则涵盖了人类文化的所有。——李二和《中国水运史》3. 信息是人类对世界认知的碎片化呈现信息本身是被人类赋予了某种意义,当然这又是另外一个哲学话题,有关物质和精神的二元世界。狭义的信息定义,是指音讯、消息、通讯系统传输和处理的对象,广义的信息是指人类社会传播的一切内容。人类通过获得、识别自然界和社会的不同信息来区别不同事物,得以认识和改造世界。人类社会是各种信息的总和,借助这些信息,人类历史才得以完整保存。信息不仅被动记录世界,并且主动创造世界。信息在记录世界的同时,让人类对世界已有的指示进行了结构化,不断累计创新,从而改变和创造世界,让人类文明不断向前推进。人类对这个世界的认知结构是碎片化的,人类历史上承载的信息同苍茫宇宙相比,都只是一个碎片。所有的学科内容也仅仅是从某一个角度去解读这个世界。信息传递的载体在人类文明高速发展的几千年内不断发生着变化,语言、文字、电报、电话、无线电,连接了整个世界,有关信息的传递有很多典故,结绳记事、文以载道、烽火狼烟、飞鸽传信、驿马邮寄、击鼓鸣号、到无线电波傲游太空,交警手语、航海中的旗语,信息赋予了人类生活更多的意义,早期的造纸术和印刷术,电子计算机和现代通讯技术的应用都极大促进了信息的传播,随着信息技术的不断发展,促进了人类文明的不断进步。二、决策会更为科学与智能1. 人类都在主动或被动做着决策法国作家加缪曾告诉世人:“生活就是你所有选择的总和。” 如果依次类推,人类历史则是全人类的所有选择累计而成。人类一直一来都在主动或被动的在做着决策,即便在野蛮的远古时代,面对恶劣的生存环境,人类也会学着鸟儿在树上建造小屋,构木为巢,来躲避野兽的伤害,在相当长的时间内才学会了人工取火,又不知过了多久开始结网、打猎、圈养牲畜,来提升生存的几率,人类不仅希望对这个世界的规则有很好的理解,甚至希望可以掌控或改变规则,从而实现价值最大化,风险最低化,趋利避害似乎是人类适应这个世界的不二法则。用一句话来总结决策的意义,”两弊相衡取其轻,两利相权取其重 ”。2. 决策就是复杂的思维过程百科定义:指决定的策略或办法。是人们为各种事件出主意、做决定的过程。它是一个复杂的思维操作过程,是信息搜集、加工,最后作出判断、得出结论的过程。信息技术的快速发展,促进了决策方式也在不断演变发展为一门与经济学、数学、心理学和组织行为学有密切相关的综合性学科,在政治、经济、技术和日常生活中发挥着重要的作用;回顾人类历史上决策的发展历史,已有的信息无法支撑或解释人类对未知的困惑时,人类总会寻找新的突破,不断提升决策能力。智能决策支持系统是人工智能(AI,Artificial Intelligence)和 DSS相结合,应用专家系统(ES,Expert System)技术,使DSS能够更充分地应用人类的知识,如关于决策问题的描述性知识,决策过程中的过程性知识,求解问题的推理性知识,通过逻辑推理来帮助解决复杂的决策问题的辅助决策系统。三、数据化决策1. 一切皆可量化无量化,无管理;先量化,后决策。人们永远无法管理不能量化的东西。 —彼得.德鲁克我们首先来要清晰的理解什么是量化。如果人们找到观测事物的方式,并找到某种方法,无论这种方法多么模糊,它能让你知道的比以前更多,那么它就是一种量化方法。量化不需要无限精确,量化就是不断减少不确定性。当你能够量化你谈论的事物,并且能够用数字描述它时,你对它就确实有了深入了解,但如果你不能用数字描述,那么你的头脑根本就没有跃升到科学思考的状态。——英国物理学家 开尔文勋爵所有的科学都建立在近似观念之上,如果一个人告诉你,他精确的知道某件事情,那么可以肯定,你正在和一个不精确的人说话。——英国哲学家 波特兰.罗素2. 概念澄清链量化方法就隐藏在量化目标中。一旦弄清楚要量化什么以及被量化的事物为什么重要,就会发现事物显现出更多可量化的方面。澄清链就是把某物想象为无形之物再到有形之物的一系列短的链接过程。确定真正要量化什么,是几乎所有科学研究的起点,某些事物如果看起来完全无形无影,只是因为没有给所谈的事物下定义,如果弄清楚问题是什么,已经完成了量化工作的一半。你的难题并非你想的那么独特;你拥有的数据,比你认为的要多;你需要的数据,比你认为的要少;要获取适量的新数据,必你想象的更容易;3. 需要量化什么信息是我们决策的参考。信息可以减少决策的不确定性,信息会影响他人行为,也会产生经济效益,信息是有市场价值的。我们在量化什么?量化不确定性。缺乏完全的确定性,也就是说,存在超过一种可能,比如人们不知道的真实的输出、结果、状态、价值,缺乏足够信息的条件下所造成的实际值与期望值的偏差,其结果无法用概率分布规律来描述.量化风险。不确定性的一种状态,该状态包括出现亏损、崩溃、或其它不希望出现的结果,由于随机的原因而造成的实际值与期望值的差异,结果可用概率分布规律来描述。量化信息价值。4. 学习如何去量化使我们陷入麻烦的通常并非我们不知道的事情,而是哪些我们知道的不确切的事情。——美国作家 阿蒂莫斯.奥德新的测量方法不断出现,互联网与信息技术使得一些过去很难量化的事物逐步被量化。5. 努力成为量化大师
认识计算机体系结构(电脑硬件) 计算机的桥梁 - 总线CPU 运行的时候,从内存中读取数据,内存中的数据,有很多需要从硬盘 中来 ……CPU. 内存和硬盘,都连接在主板上。除了 CPU 、主板、内存构成的基 本系统之外,电脑还有显卡、声卡、网卡、电视卡等各种设备。这些设备之间的通信,就成了电脑设计者必须要考虑的一个问题。 如果把这些设备想象成一个个城市,那它们之间的连接,就成了城市间 的公路。这种电脑内部部件之间通信和数据传输的连接公路,我们有一 一个 专用名词,叫总线,总线有多种分类,如图下图所示。计算机总线结构最开始,我们设计了一条乡村公路, 美其名日 : 工业标准架构一 ISA. - 开始这条公路上只能跑 1 个字节 (1 Byt ) 的数据,后来才增加到 2 个字节 (2 Bye.16 Bit), 可是,这条公路的设计速度实在是太慢了,才 SMHz , 即每秒传输 数据为 2X5 - 10MB/, 这个数据在今天看来,实在是太少了。 随着计算机技术的发展,计算机操作系统从 DOS 进入 Windows 3.1 时代, 要求电脑能显示 2D 的图案,可是 ISA 接口的显卡,根本完不成任务。Windows3.1系统画面假设,我们要求在当时 640X 480 的屏幕上画 16 位色彩图,也就是今天大 多数手机上的标准,就需要 (640X 480X 16X60+8+ 1024: 1024) ,大约 35MB/s. 这条公路,必须重新建设。新的公路,名字叫 PCI, 掀开任何一台电脑, 看到 主板上的白色插槽,就是 PCI 接口了。 采用了PCI接口的主板这条新的公路, 4 条车道 (4Byte 32 位 ) ,设计速度为 33 3MHz. 也就是每秒 吞吐量为 4X33.3=133MB ,也就是我们今天所说的 PCI 总线带宽 : 133MB/s 到了 Windows 98 时代, 133MB/s 的速度,对于 3D 显卡来说,又不够用了。windows98系统界面于是,我们给显卡设计了一个区别于 PCI 总线的专用通道,名字叫 AGP, 自 及一个人享用 266MB/s 带宽。后来, 3D 显卡的要求,越来越高, AGP 通道的速 度,也越来越快,我们发现,原来这种点对点的高速公路设计,可以让数据传输速度这样快。 时间 到了 2005 年,这个时候,我们开始用上了千兆网卡,也就是 1 00MB/ 的速度,要求 125MB/s 的带宽,要知道, PCI 这条公路上,除了网卡之外,还 有声卡这样的设备,该怎么办呢 ? 在 PCI 总线出来过后,我们已经积累了很多 的公路设计和建设经验,摩尔定律的推动,也让芯片中有了更多的晶体管供我们使用,可以设计出更精巧的系统来 。大家看看高速公路,采用隔离的手段,只许单向通行,通行的速度大大 提高了。 新代的 PCI - E 总线,也采用了相似的原理。即使只用一条通道, 我们的 设计速度,就可以达到 250MB/s, 当然,高速公路肯定是双向的, - 条高速公路 PCI - EX1 就可以达到 500MB/s 的速度。 依此类推, 2 条道的高速公路, PCI - E X2 可以达到 1GB/s 的速度 : PCLEX4, 2GB/; PCIEX8, 4GB/; PCI - E X16, 8GB/s 。 这么快的速度, 30 多年前,设计 ISA 的工程师恐怕很难想象得到,甚至 20 年前的 PCI 设计者,也未必能够想到。那今天的我们,能不能推向未来的总线 速度呢 ? 这要从电脑的应用要求说起,比如,一般常 规的办公加 . 上网的应用, PCI+AGP 足够了。但还是有很多专业的用户,他们需要在电脑上得到电影般 的视觉享受,进行大数据量的工业设计,就需要 PCI - EX16 的高速度。同时, 这个速度,可以满足将来我们在客厅安装高清多媒体电脑,享受数字化生活带来乐趣的要求。 “要致富,先修路”是我们小时候听到的一个口号。今天,我们电脑的 路修得差不多了,就等宽带多媒体时代的快车在上面奔跑。 今天,计算机体系架构简化后,未来基本上就剩下两条路 : 第 - - ,计算 机各个内部部件间连接的高速路, PCI - E , 3.0 版本下, X16 信道速度已经达 到 32GB/s; 第二,计算机外部设备连接的 USB 总线,在 3.1 版本下,最高速度已 经达到 10GB/s 。 并且新一代的 USB 技术还支持很多独特的新功能,比如可以替代笔记本电 脑的充电电源线,也就是未来笔记本电脑可以和手机通用根 USB 数据线来充电, 就不用再单独配置一根电源线了 。我们外出商务旅行,也不用多带一套充电 设备了,不仅减少了重量,而且还减少了出门要管理的设备数量,简单省事。在这些新技术的支持下,相信未来的计算机更加简单好用。