7

“多即是多”:靠数量取胜能否成为处理器设计新范式

 3 years ago
source link: https://zhuanlan.zhihu.com/p/195815236
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

“多即是多”:靠数量取胜能否成为处理器设计新范式

芯片(集成电路)话题下的优秀回答者

靠数量取胜:高性能计算处理器设计的新思路

在每年举办的顶级芯片会议中,如果说ISSCC是学术界和研究领域的芯片奥林匹克的话,那么Hot chips就是商用芯片的竞技场了。Hotchips迄今已经举行了三十多届,其会议内容主要围绕业界最新的芯片发布,每年都会有来自Intel、Nvidia、ARM等半导体巨头带来自家芯片的内容,同时也有来自于一些新兴初创公司的芯片。可以说,Hotchips是半导体业界的重要风向标。

v2-2e425f48b19672b5451edcd5a92e5aed_720w.jpg

今年的Hotchips 2020中,人工智能和机器学习仍然是关注的焦点。在所有的会议议程中,与人工智能/机器学习直接相关的共有三个(机器学习训练、机器学习推理、边缘计算),大概占整个会议议程的半壁江山。即使是在其它传统议程例如服务器芯片和移动芯片中,机器学习仍然是芯片的重要关注点。

那么,人工智能对于芯片来说带来了什么样的机会,同时又有哪些挑战呢?Deepmind的Dan Belov在本届Hotchips上针对这些问题做了非常有启发性的特邀主题演讲。

人工智能对于芯片的挑战

众所周知,谷歌旗下的Deepmind是全球人工智能领域最前沿研究的代表,之前发布的AlphaGo和AlphaGo Zero系列在围棋领域一举战胜了人类最强的代表,可以说是本轮人工智能热的代表性事件。Belov在主题演讲中,首先解释了算力对于基于神经网络的人工智能的重要性。基于大型神经网络(也即算力需求更高)的模型往往性能远远超过较小的神经网络。因此,随着人工智能神经网络的每年迭代,其对于算力的需求也是逐年快速提升。

在半导体领域,即使是在摩尔定律的黄金时代,处理器的算力也只是维持在大约两年翻一番的水平。然而,在人工智能领域,新的神经网络模型对于算力的提升却是每年10倍的水平,从2012年的AlexNet到最近的AlphaGo Zero算力在6年内需求提升了三十万倍。虽然在2015年左右出现了新的人工智能专用芯片,一举实现了相比传统处理器10倍的人工智能算力提升,但是在这之后人工智能专用芯片逐年性能提升的速度还是赶不上神经网络每年10倍的需求提升速度,而在神经网络算力需求和目前芯片能提供算力之间的差距就是目前对人工智能芯片的挑战,同时也是机会。它意味着目前半导体行业或许需要重新思考人工智能芯片的架构,以满足算力可扩展性的需求。

芯片追上人工智能算力需求的新思路

在考虑芯片发展的新思路之前,不妨先来看看整体处理器领域在算力可扩展性领域做了什么样的工作?事实上,计算机架构领域的David Patterson和John Hennessy早就在合著的经典教科书系列中给出了Warehouse as a computer(把整个数据中心看作一个计算机)的概念。这个概念提出应当把数据中心简单抽象化,把数据中心中的单个主机仅仅是看作一个可调度的运算单元,并用软件做调度。这样的概念起到了化繁为简的作用,为数据中心的可规模化设计起到了非常好的指导作用。

在人工智能芯片领域,Belov在主题演讲中也给出了类似warehouse as a computer的思路。他认为,为了满足算力的可扩展性,人工智能芯片的未来设计需要借鉴数据中心的思路。在数据中心里面,每一台主机抽象地看都是相同的,在需要扩展算力的时候,只需要增加主机数量即可。把这个思路过渡到芯片上,就是单个人工智能芯片应当尽可能简单,同时尽可能把所有的部件都放到芯片上以减小访问外部器件造成的性能损失;另一方面,不同芯片之间的互联和可扩展性应当非常好,在需要时可以简单地增加芯片数量来提升性能。

换句话说,Belov认为人工智能芯片设计的核心关注点不应该仅仅是单个芯片的性能,而应该是其可扩展性,如何能实现大量人工智能芯片可以协同作战,最终凭数量取胜,而非单个芯片的性能。这样思路背后的原因是,目前半导体行业的摩尔定律基本已经接近尾声,单个芯片性能的提升无论如何也难以跟上算力需求每年十倍的提升,那么与其关注单个芯片的性能,还不如关注多芯片协同计算的规模化能力,这样在算力需求上升的时候只需要部署更多的芯片即可。

靠数量取胜的思路会对芯片设计产生什么样的影响?

Belov关于靠数量取胜的思路确实与之前的芯片设计习惯完全不同。例如,在处理器领域,绝大部分精力还是花在了如何把单个处理器芯片的性能做好,往往会为了不到1%的提升花费团队大量的时间和精力。然而,这些提升相比于人工智能算力需求的提升差距实在太大,几乎不值一提。而如果走靠数量取胜,注重可扩展性的方向,那么我们认为至少在以下技术方向上会值得关注和思考:

首先,从系统层面来看,软件正在变得越来越重要。传统处理器上使用的是硬件逻辑(超标量、分支预测、前瞻性执行)的方法来调度,但是在芯片数量大的时候,靠硬件做调度是困难的同时也是难以规模化的。因此,在靠数量取胜的范式中,大量的芯片共同工作要靠非常好的软件去做调度。落实到芯片设计上,就是在芯片架构在做早期设计时就会需要软件团队介入,一起从系统角度考虑以确保芯片架构的可扩展性。我们认为,在未来人工智能芯片领域软硬件协同设计将会是大势所趋,硬件芯片工程师也需要对于这类软件有足够的认识。同时,编译器等底层软件则又会成为一门显学。我们已经看到人工智能中,第一层面得到重视的是Pytorch、TensorFlow等人工智能框架,在这之后为了追求更高性能更底层一些的TVM也得到了关注,而目前关注点正在进一步下沉,从IR到编译器,未来我们认为很有可能会进一步与芯片架构整合。到那个时候,同时精通编译器和芯片架构直至电路的朋友将会成为市场上最紧缺的人才。

其次,从芯片角度考虑,可扩展性会让小芯片+数据互联技术越发得到重视。这一点上,对于高级封装技术和高能效比的SerDes技术显然是一个利好。尤其是当芯片数量规模比现在大几个数量级的时候,显然要靠多个层次的互联——在封装级别,需要把多个小芯片封装在一起;在板卡级别,需要实现高性能的封装之间互联,而在更高层次的主机级别,需要用更高效的互联方式(是沿用目前Ethernet铜绞线还是走InfiniBand光互连的路径还未可知)来完成远距离连接。这一切,对电路设计工程师来说都大有可为。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK