|
Tianjic的天机:深度解析Nature封面AI芯片
|
|
08-15-2019, 06:32 PM
Post: #1
|
|||
|
|||
|
Tianjic的天机:深度解析Nature封面AI芯片
来源
原文件如下: 深度解析Nature封面AI芯片.pdf (Size: 562.92 KB / Downloads: 0)
作为首次登上Nature封面的中国芯片,Tianjic的意义非同凡响。赞誉的话就不在重复了。周末仔细拜读了Tianjic的论文,从一个硬件架构师的角度,分析其设计理念和实现细节,剖析究竟泄露了那些“天机”。 Tianjic是面向AGI(Artificial General Intelligence)的芯片。不同于通常的AI加速器,追求的是人工智能领域的通用处理性。文中总结了AGI的4个主要特点:支持大量复杂的神经网络,包含时间和空间的复杂关系;支持多种网络层次结构;支持多种算法模型;以及支持神经网络的并行任务处理。仅从支持度上而言,CPU和GPU都可以成为是AGI系统,主要的缺陷是性能不足。对于海量数据需求的人工智能算法而言,主要的矛盾集中在如何高效的进行运算,不是1倍2倍,而是百倍千倍的提升。这需要在架构上进行颠覆性的改变。Tianjic的创新主要集中在2点,统一的神经网络执行单元和粗粒度可重构(CGRA)的阵列结构。下边会详细介绍这两个方面的设计细节。 目前人工智能的发展主要有2个方向,一是算法,一是仿生。算法方向主要是利用计算机运算的优势,通过大量数据的学习迭代形成有效的算法及参数,这是目前的主流方向,如我们熟知的深度学习框架CNN,RNN等,统称为ANN。另外一种是用电路器件模拟出生物神经元的连接和运行方式,搭建和人类大脑类似的模型来实现。其中代表性的模型就是脉冲神经网络(SNN),主要通过计算神经电脉冲进行信息传递,因此是2值的。这个和传统网络的权重连接+激活的方式有很大差别。现在学术界和工业界对SNN的研究不多,主要是基础算法上还没有关键性的突破,一方面达不到深度学习模型的准确率,而且编程上没有统一便利的模型,实现上很复杂。大公司中也只有IBM的TrueNorth,Intel的Loihi芯片在做一些偏研究性质的工作。虽然进展缓慢,但很多人更看好后者,因为其更接近于人脑的工作方式,也最有可能实现人脑级别的人工智能。两者的优劣这里不做评述。上图描述了两种方式计算上的差别。Tianjic的主要创新是将这两者统一在一个运算单元中,可以使一块芯片同时支持通用的深度学习模型和研究性的脉冲神经网络。 ANN和SNN统一的方法并不复杂,基本思路是通过分析其运算特点,统一相似的部分,而独立差别较大的部分。虽然算法差别较大,但主要的计算部分都可以归结为乘累加运算,因此将ANN的权重连接部分和SNN的树突传递部分合并,共16个MAC单元组成一个阵列。可以看到该部分包含了一个独立的weight memory。Weight会在芯片初始化时全部加载在local memory中,不需要在运算时从片外反复读取,这也是另一种形式的存算一体化。优点很明显了,在于功耗和速度,缺点是weight memory的大小限制了整个单元的计算能力。后边可以看到Tianjic的芯片是没有DDR的,这样单芯片所能加载的模型大小就是个固定值,而不能像通用处理器那样具有可伸缩性。 整个执行单元也就是这部分是shared了。其他的如图中的Axon,Soma等部分都是独立的。可以看出这并没有多大程度的统一,还有这么多模块只能对其中一种算法开放,这样不是很浪费面积么?面积当然会变大,但是这不是主要矛盾。随着工艺尺寸的下降,芯片设计的主要矛盾集中在日益增长的性能需求和难以控制的功耗上。由于Dennard scaling的失效,芯片功耗无法随着尺寸的缩小而保持不变,成为性能最大的瓶颈。因此现代芯片系统中常常出现某些部分由于功耗限制而低速工作或者不工作的情况,称为“Dark Silicon”。换句话讲,只要芯片在工作部分的性能足够高就可以,而暂时不工作的部分可以用来支持其他算法,在切换为工作状态时再提供输出,像十八般兵器那样,需要哪个就用哪个。面积换功耗会在很长一段时间里影响着现代数字电路的设计方法。Tianjic正是这样的思路,独立的运算部分的面积不重要,重要的是可以在ANN和SNN两个模式下都有高效的运算模块进行工作,实现比传统算法高的多的性能。关于“Dark Silicon”的相关话题之后会有专门分析,欢迎大家关注。 运算模块的配置,以及各模块之间的连接就是典型的粗粒度可重构阵列(CGRA,Coarse Grained Reconfigurable Array)的思路。之前分析Thinker的文章已经介绍过CGRA的特点,可以参考“思考的芯片:清微智能Thinker架构分析”,两者可以说是师出同门。不同于FPGA,CGRA是一种更高层次的可重构技术,通过指令对可编程的执行阵列进行配置。整个阵列由多个执行单元(PE)构成,通过配置每个PE的连接性和运算模式来定义整个阵列的功能。这种配置主要来源于特定算法的映射,因此也被称为“软件定义硬件”。CGRA的硬件设计是相对简单的,主要的难点是如何高效的进行阵列配置,将软件模型映射在硬件上。不仅仅是功能的映射,还包括数据流的控制,相关性的处理等。这和传统的软件编程思路有很大不同。Tianjic的PE单元称为FCcore,包括统一的和独立的ANN、SNN运算模块,local memory,以及一个负责信息交互的Router。多个FCcore组成一个2D的Mesh结构,这也是很多Many core架构的加速器通常采用的互联方式,优点是扩展性强,延迟线性增加。Mesh网络还通过router支持point2piont,recurrent和multicast等灵活的数据交换方式。 最后的成片采用156个FCcore的组合,最大40000个神经元和10M的突触,28nm下的裸片面积为3.8 × 3.8 mm2, 频率300MHz。可以看出Tianjic的运行频率不是很高,即使采用最新的7nm工艺,估计也只能接近1GHz。单芯片在ANN的算力1.4TOPS(156x16x2x0.3G), 8 bit INT。这个算力并不大,主打的是能效。个人来看,tianjic的整体结构更多的是面向SNN,各种灵活连接配置的特性也更适合前者。而在ANN方面,尤其是卷积,这样的小算力众核结构,效率上应该是没有TPU高的,主要的制约在MAC阵列的规模,local内存的大小,以及中间数据的频繁交换上。 通过FCcore中Axon,Dendrite,soma,router等部分,各FCcore的功能,以及Mesh网络连接等不同层次上的重构,Tianjic可以对各种AI算法进行非常灵活的配置和运算。这正是CGRA结构最有吸引力的地方,即通过简化的运算和灵活的连接来支持复杂功能。FCcore甚至可以配置为部分ANN部分CNN的hybrid组合体,因此有很大的想象空间。当然,硬件配置的灵活性是以软件编译复杂为代价的。如何高效的进行算法匹配和映射就成为Tianjic结构能否发挥优势的关键。这也是“Thinker”、“Wavecomputing”等类似结构的加速器所面临的共同问题。Tianjic做到什么程度,只有等Tianjic开源相关的软件工具或者商用后才能评价。 Tianjic选择的应用场景可以说让人眼前一亮。想起以前google在愚人节发布的一个视频,就是推不倒的自行车,无人驾驶,可以像出租车一样召唤到任何地点。使用Tianjic的系统真的实现了这样一个场景,一下子有种科幻电影变为现实的魔幻感,很具有吸引力和冲击力。这个例子本身并不能证明Tianjic的方案有多好,甚至这只是个算法问题,跟硬件没有太大联系,但的确是一个很好的宣传亮点。深度学习一路发展到今天,很明显的呈现出和传统科学不一样的发展思路,即更高的曝光度和关注度,科研工作者和他们的研究成果不断的在镁光灯下震撼着世界,同时也吸引着更多的人关注这个行业,投身相关研究和工程,而不是像之前行业那样只默默无闻的奉献。非常高兴看到国内的科研工作者们也开始懂得包装自己的研究成果。 从个人角度来说,虽然媒体极尽赞誉,tianjic的设计中并没有创新性很强的部分,大多是将已有的一些方法组合在一起来支持hybrid的功能。实现上也中规中矩,是典型的同步数字电路设计,没有像Loihi这样尝试异步电路这样更接近SNN特性的方案。因此在整体架构的创新性和学术性方面,tianjic都弱于“DIANNAO”系列。不过这并不妨碍tianjic的成就。一个好的想法,从理论到实践在到商用的道路是很漫长且艰难的,tianjic已经走完了前两步,并且还是一个很有趣的实践项目,这本身就是个了不起的成就。期待tianjic给我们带来商用化的好消息。 |
|||
|
« Next Oldest | Next Newest »
|
- View a Printable Version
- Send this Thread to a Friend
- Subscribe to this thread
- Show the subscribers of this thread:
- Add subscribers to this thread:

Search
Member List
Calendar
Help
