您的位置:首页 > 其它

干货分享 | 清微智能首席科学家尹首一教授在智源大会上演讲实录

2020-01-11 13:23 621 查看

10月31日,由北京智源人工智能研究院主办的2019北京智源大会在国家会议中心开幕,会期两天。清微智能首席科学家尹首一作为智源研究员受邀在大会上做《可重构智能计算架构》主题报告。

在这里我们将尹教授的演讲实录做了整理。

人工智能的快速发展,已经让我们在日常生活中享受到大量AI应用,例如图像识别,自然语言翻译,在线医疗保健,语音转文本等。目前大部分AI应用程序都依赖于云计算。但是由于通信延迟问题,带宽问题,隐私问题等,在许多情况下,限制了我们将所有数据上传到云中。因此,我们需要一个分布式的分层级的AI计算系统。

我们看一些全球信息产业巨头,例如移动计算巨头ARM、互联网巨头Google等,大家对未来有着同样的共识:从云、到网络边缘、到终端设备,不管大小,都必须具有AI计算能力。

这种分布式的AI计算系统预示着AI芯片未来将有一个很大的市场。我们看到美国咨询公司给出的报告:从2016年到2025年AI芯片组的市场不断增长,将呈现一个700亿美元的AI芯片市场,其中有一半以上是针对边缘和物联网设备的,包括手机,智能相机,机器人,物联网,消费电子产品等。

当我们试图将AI功能部署到所有设备上时,一个必然的矛盾就会出现,那就是算力与功耗。我们进行一下划分,可以看到功耗对算力的约束也分不同的场景。在某些便携式和移动应用中,例如可穿戴设备的身份识别和智能传感器的模式识别,因为它们的电池非常小,所以功耗必须非常低,要求小于1毫瓦。在另外一些应用中,电池可能会更大一点,像手机或者一些玩具,功率限制可以放宽到数十毫瓦。再往上,例如工业或农业的一些应用,功耗达到几瓦都没问题。但对于这些应用,尽管电源不是问题,但由于散热限制,功率仍不能大于几瓦。

因此,为了能够让AI芯片可以应用到各个领域,在芯片设计上有3方面的挑战。首先,它必须可编程以适应不同的算法,因为我们都知道现在并没有出现一种终极算法,能够满足满足不同的AI应用需求。第二,从计算的角度来讲,完整的AI任务不仅包括神经网络,还包括很多经典信号处理算法,因此该体系结构必须能同时很好地支持这两种算法。第三,就是我们提到的能效问题,对于边缘和IoT设备,AI芯片必须具有很高的能效比,我们要求它至少能够达到TOPS/W水平,绝对功耗要在毫瓦甚至微瓦量级。

为了实现高能效的AI计算,我们看到,目前大家主要从算法和架构两维度努力。

从算法的角度来看,我们正在尝试建立一个紧凑的神经网络模型,例如网络剪枝,压缩,量化和低位宽神经网络,这就能带来计算量的下降,对算力的要求自然就下降了,所需的功耗自然也就下降了。

我这里专门提一下二值和三值的神经网络,它的好处是能够将神经网络的权重压缩至1比特或2比特。随着训练技术的进步,从2016年到2018年,二值/三值神经网络,它的识别精度是在持续上升。目前以ResNet-18在ImageNet上的效果为例,可以看到三值神经网络准确性已经非常接近全精度网络。这说明超低位的神经网络已经可以在很多真实的场景中应用了。

另一方面,就来自于架构方面的探索。大家都在不断探索领域专用的架构,例如寒武纪、MIT Eyeriss、Google TPU,都在探索不同的优化方案。

不过尽管已经有了这么许多不同的探索,我们仍然需要一些更具通用性的可编程和高能效的架构。

我们看到从2015年开始,学术界和工业界都开始对一种新的计算架构表现出了极大的关注,2015年的国际半导体计算路线图提到CGRA,粗粒度可重构计算架构技术,被看作是未来最有前景的新型计算架构。

斯坦福大学的Kuns Olukotun教授在ISCA 2018的主题演讲中对CPU、GPU、FPGA、CGRA等几种架构从能效比和可编程性上进行了比较,CGRA可以很好的平衡能效和灵活性,可以在未来提供灵活、高效,可编程的通用计算平台。

我们在清华是从2006年开始就在开始探索可重构计算架构,已经将这一架构应用到图像处理、信息安全、多媒体处理、无线通信等领域,从2015年开始将CGRA应用于AI芯片。

这里介绍一下CGRA的基本架构。本质上,它是一种分布式的、空间并行的计算架构。它在计算时,不采用指令驱动的方式来,而是采用计算任务内在的Dataflow的形式去实现计算。因此CGRA具有很高的能效比。这也是CGRA近几年受到很大关注的原因。

在CGRA架构的基础之上,我们设计的了名为Thinker的AI计算架构,基本架构是一个二维的计算阵列。在硬件设计层面上,实现了三个层次的可重构:在运算部件层次上,计算位宽度是可配置的;在处理单元层面上,每个PE的功能都是可配置的;在芯片级,数据路径是可配置的。

基于这样的结构,我们设计出了第一颗Thinker芯片,其功耗在500毫瓦左右。当我们想进一步降低功耗时,就需要考虑软硬件协同设计,例如我们刚才提到的低位宽的网络神经设计。

二值/三值神经网络,本身具有很好的特点,需要的存储量很小,在这样的网络里其实已经没有乘法运算,在很多场景下满足使用需求,可以称之为足够硬件友好的算法。

进一步来看,二值/三值神经网络,还给一些基本运算,例如卷积运算提供了优化的可能。例如,一个三值网络神经运算,里面只有1、0,-1三种权重,因此,在扫描运算的过程中,存在许多冗余操作。如果我们可以消除冗余操作,则可以节省大量能耗,获得更高的能量效率。

因此我们设计了一种机制:kernel transformation feature reconstruction(KTFR)。简单来讲就是对原始的卷积核做一次变换,在新的卷积核中出现了大量的零,就是说它变得更稀疏了,用这种卷积核去做卷积,用这种方法可以节省大量计算。卷积后可以方便的重建出输出特征图。

增加了这种优化后,我们做了第二颗芯片Thinker-II,这颗芯片的峰值功耗只有几十毫瓦,去处理二值神经网络时,能效比可以达到几十个TOPS/W。用这颗芯片做人脸检测加识别的这个应用时,它的功耗只有10毫瓦,几乎可以嵌入任何的设备中去,这就解决了功耗约束在几十毫瓦的应用的问题。

当然,还有几毫瓦、1毫瓦、甚至几百微瓦的这种应用场景,这就需要结合具体的应用场景再去做进一步的处理。

例如语音识别的这种场景,以最近大火的全无线耳机为例,需要always-on工作,随时能被唤醒,那这个功耗就要求不能超过1毫瓦。

分析这中间的算法,可以看到还有很大优化空间,这里的数据有着很典型的时域计算特性,因此存在很多的重叠、交叠的卷积结果。我们可以在计算时把这些重叠给滤除掉。

除了在算法上的优化,我们还在电路上做了一些优化,比如这种语音处理在做加法时,实际上,它有一个特点,就是大量的+1的累加,只有大概4%是在做两个16bit数的相加,这时候就可以考虑去设计一种新的加法器,一种近似加法器,保证+1时永远是精确的,但在做16bit加法时可以有一点儿近似,这样不会对最终的识别结果产生影响,但却能显著的降低功耗。我们做出来后发现它的功耗降低了48%。

基于这些优化,我们设计了第三颗芯片,它的工作电流只有400微安,可以工作在0.6V的电压下,做语音识别时,功耗只有200多微瓦,几乎所有需要用到语音交互的可穿戴设备都可以用。

我们回顾AI芯片的发展历程,大概可以分成两个阶段,从2016年开始,大家都是在从芯片架构创新的角度去探索,可重构架构不止清华在做,韩国的KAIST也在做,欧洲这边也在做,大家都是看到了CGRA不仅功耗低,而且这种可编程性,在未来颇具竞争力,是公认的一个架构方向。但另一方面,纯数字架构仍面临存储墙的问题,所以从2018年开始,国际上的一些顶级会议,大家都开始讨论这种In-memory computing(存内计算)的方式,去进一步的提升能效比,大家做的一些工作,也显示了这种存内计算确实有很高的效率。但存内计算也有很严重的不足,本质上只能做向量或者矩阵的乘法运算,不能像数字逻辑去做丰富的基础的算术和逻辑运算。

因此,我认为AI芯片的未来一定是在架构层面上的可重构计算提供的这种灵活可编程性,与存内计算在某些运算上的高能效的融合,构成一种混合的架构,从计算的电路层面来说是一种数模混合运算,从硬件的架构层面来看,是一种可重构架构和存内计算的结合,这样的方向将是AI芯片未来继续提升算力、降低能耗、提高能效比的必然趋势。

智源大会定位于“内行的AI盛会”,以国际性、权威性、专业性和前瞻性为特色,回归AI技术本身,开展深入研讨,切实探索人工智能前沿科技发展趋势,旨在打造成为北京乃至中国人工智能发展的“学术名片”,持续扩大北京在人工智能领域的全球影响力。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
清微智能 发布了4 篇原创文章 · 获赞 0 · 访问量 637 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: