更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

栏目: 数据库 · 发布时间: 5年前

内容简介:一年一度的ISSCC终于结束,矽说也如约和大家来盘点今年的ISSCC。按惯例,第一波总是AI。关于ISSCC  2019上AI 论文的session设置与热点预览,请见在进入这个问题之前,首先我们要明确AI处理器本身就是一类专用处理器。AI处理器的出现主要是类似CPU的通用处理器无法满足深度学习的高算力。注意,这里的无法满足,指的是所以过于定制的设计很可能在芯片出世后已无用武之地,比如大家还记得去年的这个时候,DNN守护者Hinton曾经提出过一个叫做Capsule的算法么?两者间的折衷点,是定义一颗芯片的

一年一度的ISSCC终于结束,矽说也如约和大家来盘点今年的ISSCC。按惯例,第一波总是AI。关于ISSCC  2019上AI 论文的session设置与热点预览,请见 AI芯片新机遇 —— ISSCC 2019 人工智能芯片技术前瞻 ,这里不多赘述。今天小编更多地是想和大家谈谈AI处理器session设置两年以来开始遇到的瓶颈——如何寻找在专用与灵活度间的落脚点?这是一个To Be or Not to Be 的问题,如果一旦闪失,可能就酿成了哈姆雷特的悲剧。

在进入这个问题之前,首先我们要明确AI处理器本身就是一类专用处理器。AI处理器的出现主要是类似CPU的通用处理器无法满足深度学习的高算力。注意,这里的无法满足,指的是 做不到 ,而不是没有足够多的钱做。通用CPU的单位面积的能效太低,即使跑出单位面积火箭发射的热量来,也无法支持如此大规模的计算。能实现AI处理的GPU/TPU都是面向张量(Tensor)计算优化的专用处理器,简而言之,他们在处理矩阵计算时的效率是CPU的100倍以上。但问题是,一旦落实到具体算法后,总有比矩阵运算更优化的方案。越专用,效率越高。不过,却有一条横亘在更加专用的设计面前的终极天堑——

AI算法的发展速度远远快于AI芯片的研发速度

所以过于定制的设计很可能在芯片出世后已无用武之地,比如大家还记得去年的这个时候,DNN守护者Hinton曾经提出过一个叫做Capsule的算法么?两者间的折衷点,是定义一颗芯片的核心问题。

那些年,我们一起追过特定算法

ISSCC 2019的machine learning处理器session,基本可以分为两个流派。第一个流派是体系结构级,主要体现在session 7。其中的一个重要特点是,大部分设计(特别是学校出的)都是为了某一个应用场景而定制。

比如清华大学刘勇攀教授组的论文7.5:A 65nm 0.39-140.3 TOPS/W 1-to-12b Unified NN Processor 。相比于传统的AI处理器,主要面向以数据复用和矩阵乘为核心的优化途径,这篇论文独辟蹊径,找到了基于CirDNN的专用加速体系结构:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

CirCNN是发表在两年前体系结构顶会Micron上的一种将无规律的系数网络变为有规律的块循环的办法,主要手段是基于FFT变化:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

该方法的特点是,系数和计算的pattern在FFT转换后都迅速减少,无论从网络结构和计算性能上都带来明显的优势,从下图可见,该算法可以带来超过100倍的片上存储空间的优势。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

由此,论文7.5基于该算法的特殊性,提出了精度可变的FFT和2维数据复用的MAC阵列,并优化了片上存储器的读写模式以提高吞吐率。但是,CirCNN究竟可以适用多少实际网络,仍然值得继续关注。

另一个例子是来在密歇根大学的论文7.3,是一款面向双目SLAM导航而实现的专用处理器,但是在庞杂的SLAM体系中,该芯片仅考虑了如何提取特征以及如何通过跟踪特征来计算距离。换言之,其仅仅实现了SLAM前端的专用芯片。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

该芯片的核心包括,基于CNN-SLAM(Triplet)的算法,检测特征。在电路实现上接近经典的CNN加速器。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

除了特征点提取,在SLAM中的特征点跟踪这一核心功能里,该芯片设计了为Perspective-n-Point (PnP)算法优化的专用硬件,核心就是在解各种线性方程:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

由于两者都极度专用,因此,该芯片的性能,相比于NV Jetson TX系列等瓦级功耗要小的多,仅用240mW,就可以实时处理80帧每秒的数据。

此外,AI Session常客的KAIST Yoo教授组,针对强化学习(Reinforcement Learning)中,存储带宽的高要求,在论文7.4提出了专用的浮点压缩硬件,根据数据的出现频率,对高频数据进行压缩,类似Huffman Coding,以解决其中的带宽,存储空间的问题:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

但,可以吐槽的是,强化学习不仅带宽、存储空间要求高,并且需要实时的高精度训练,但是论文7.4对此并无涉及。

有多少模拟计算可以重来?

Machine Learning的另一个流派就是电路,主要包括session 14和session 24 存内计算的部分。而讲到电路,实际上数字部分能做的事情毕竟非常有限,高性能乘法加法的坑已经被synthesizer挖完了。所以这一部分全部被模拟计算电路占据了,而且模拟计算在低精度上的高能效也是有目共睹的。(不过更多的时候,大家喜欢把模拟计算披上存算一体非冯的外衣。)

首先,介绍由东南大学杨军教授和清华大学尹首一教授合作的论文24.4。其是基于脉冲宽度调制的二进制系数网络的存内计算实现。二进制系数网络,即其系数只有+/- 1和0三种可能,此时乘加单元就会退化为加减或者不操作单元。这类操作在时间域上,就是将一个脉冲的宽度增加或者减少,如下所示:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

很显然,相比于传统数字电路设计,该方法的能效会高很多。不过,该方法如其名称,仅支持系数为一位精度的网络,对于高性能网络,该电路过于专用,并不合适。

另一个设计来自佐治亚理工大学,论文14.1。采用数字与混合信号时域混合的方法实现高性能计算。这个组在去年的ISSCC上提出了时间域的混合信号方法,就是将一个频率和一个脉冲作与即可得到乘法结果,

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

但是,该方法能功耗与计算结果强相关,乘积接近0时功耗很低,乘积越大功耗越高,甚至远远超过数字电路的计算。为此,他们将该方法作为高位宽计算的LSB乘法电路,而高位采用标准数字计算,实现数字混合信号的混合乘法。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

下图比较了纯时域方法和混合方法,随着位数的升高,计算能量的幅度变化缩小了很多。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

但是,基于时间域的乘法计算,线性度非常“感人”,并不适用与一般网络,但是针对能自校准的系统使用而言却是不错的低功耗选择。该电路应用在一个仅有全链接网络的多层感知机中,由联合强化学习的方法可以自校准。可见,这个精度上的创新,仍然停留在专用的领域。

还有台湾清华大学与电子科大合作的基于开关电容的多比特乘法,应用于存内计算中:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

但与上述计算一样,模拟计算的精度限制很难超过4位,因此智能适用与相对低精度的应用需求中。不过,模拟计算到底能不能被工业界买单,体系结构和算法大佬们总有点不太看好:大佬级的观点不仅有Bill Dally,现在的英伟达首席科学家,

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

本次开会邀请的Lecun Yann大佬也在keynote怒怼了一波,(exotic也是个神奇的英语单词,字典上的翻译是具有异国情调的。)

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

他自狠来他自恶,我自通用冲销量

相比于漫天遍地的专用AI设计,仍然有不少灵活性强的通用AI设计,虽然也是为了特定场景定制,但是其专用性仍然仅仅限制到了某个程度。而此类设计,多来自于真正要卖钱的大公司,比如如下这款Intel的面向机器人的专用处理器芯片。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

与上述的CNN-SLAM类似,该芯片也专注于机器人的导航,然后其目标更加明确,要完整覆盖整个SLAM算法和运动,从里程计odemetry,到多传感器融合的扩展卡尔曼滤波器,到路径规划等等一系列计算:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

然而纵观其系统架构,除了路径规划Path Planner和运动控制外,其他的SLAM都是基于Tensillica的DSP实现,神经网络加速器也是标准的CNN架构,不做过多优化。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

类似的策略也出现在Toshiba的车规级自动驾驶芯片中,整个芯片可以说是中规中矩,即使新设计的DNN加速器,也涵盖了可能的各种DNN操作,比如已经很久没看到的Sum/Average层:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

另外,在灵活的电路层面上,密歇根大学的论文14.2提出了一种存内计算的电路结构,通过bit serial的串型微指令操作,可以实现任意精度的整点和浮点MAC等一系列的ALU计算。其在每个存储器entry的行中设计了一个串行的计算逻辑小单元,计算其中A和B的常见逻辑结果。通过每个bit的操作,实现对应的乘法、加法或其他运算。

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

该设计中,传统的指令集并不作用于每个数据,而且单独地作用在每个bit上,bit和bit之间相互作用由微指令。通过微指令间不同的整合方式,实现不同位宽的操作。下表体现了该设计在不同精度情况下的算力:

更专用还是更灵活,AI处理器的选择 | ISSCC 2019数字篇

但是,可以从测试结果看出,支持不同精度的灵活性会导致其计算性能的下降。该设计用28nm,但是8位乘法的能效值仅有0.55TOPS/W,甚至低于一般的综合结果。当然,这个损失是可以理解的。(相比于其他电路上的革新,未来几年,个人认为bit serial是会优先被大公司采纳的DNN计算电路新技术,因为这可能是目前唯一个灵活支持不同精度计算的硬件方法。只有bit serial的硬件,才会使这两年来漫天发展的低精度DNN算法真正硬件落地。第一篇和DNN搭上关系的bit seria硬件计算l是ISSCC 2018的UNPU。)

更专用,还是更灵活

纵观ISSCC 2019的AI处理器paper,简而言之,就是追求极端性能的都是都是专用设计,无论从体系结构还是从电路上,针对专用场景的优化总是能带来性能上的提升。ISSCC这种唯性能论的会议,对学校来说做专用总是更有希望一点。

然而能落地的最终还是更通用的方案,从eyeriss到今天,data flow已经成为AI处理器的标准技能,然而大量商用的设计仍然只考虑矩阵运算加速就可见一斑。一颗能赚钱的芯片可是要出货千万的,即使以性能为代价,高灵活度仍然是芯片定义的第一原则。

向左走,还是向右走,To be or not to be,总是一个问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web界面设计

Web界面设计

Bill Scott、Theresa Neil / 李松峰 / 电子工业出版社 / 2015-3 / 108.00

当前的Web已经进入崭新的时代!《Web界面设计》涵盖了在基于独一无二的Web环境下、在创建丰富体验的过程中设计Web界面的最佳实践、模式和原理。UI专家Bill Scott和Theresa Neil在他们多年实践经验和不懈探索的基础上,总结提炼出了Web界面设 计的六大原理——直截了当、简化交互、足不出户、提供邀请、巧用变换和即时反应,并以这六大原理为依托,以当今Web上各类开风气之先的流行网站......一起来看看 《Web界面设计》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码