【大咖Live】 人工智能与芯片专场第三期,我们邀请到了清微智能CTO欧阳鹏,带来了关于《可重构计算芯片的技术原理及实现难点》的主题直播分享。目前,本期分享音频及全文实录已上线,「AI投研邦」会员可进雷锋网(公众号:雷锋网)「AI投研邦」页面免费查看。
本文对这期分享进行部分要点总结及PPT整理,以帮助大家提前清晰地了解本场分享重点。
分享提纲
一、 什么是可重构芯片;
二、 可重构芯片的特点及实现原理;
三、 关键技术及设计难点;
四、 目前的产品成果。
以下为清微智能CTO欧阳鹏的部分直播分享实录,【AI投研邦】在不改变原意的基础上做了整理和精编。完整分享内容请关注【AI投研邦】会员内容。
大家好!非常开心能够来到这里受雷锋网的邀请,然后来给大家做一个技术的讲座。我是清微智能CTO欧欧阳鹏。清微智能科技有限公司,它是一家立志让智能无处不在的这么一家公司,公司的定位是做全球领先的这种高能效人工智能芯片及解决方案的一个提供商。
我们的核心技术其实就是可重构计算技术,这个技术是来源于清华大学,也就是来源于清华大学的可重构计算实验室,应该是从2006年我们开始做技术,到现在差不多已经做大概13年的的积累,然后我们也是说想基于可重构计算技术本身去搭建这种高能效的,然后通用的这种人工智能芯片。在原先我们主要是在清华大学做研究积累,然后直到去年我们出来和产业化的朋友一起成立了这么家公司,所以公司技术团队来于清华大学微电子所。然后这个团队本身也包括一些上市公司的CTO,还有来自MVD联发科华为阿里等等平均大概有十余年的这种软件算法和硬件经验的一些研发骨干组成。
大家其实可以看这张图,从2015年我们获得国家技术发明二等奖,到2016年至2018年我们连续推出了think系列的芯片,从think一代到二代,还有think S和think M应该是说做了整个think系列的这种芯片,然后从2018年7月我们成立清微科技,然后到今年6月份,也就是不到一年的时间,我们完成了其中一款产品的量产。
下面我们可能就给大家介绍一下我们核心的一个技术,本次直播有很多同学可能还有很多同行,所以说尽可能的以简明的方式去再去给大家讲清楚可重构计算技术以及跟同类的一个对比。更重要的是说在做可重构计算的时候,它存在一些什么样的难点?为什么这个难点我们研究了将近十余年,其实可以看就是人工智能芯片,其实它的发展其实是已经是不可阻挡。从这张图也可以看出来,人工智能计算其实正从云端逐渐下沉到边缘设备和物联网节点。也就是说无论是在云端还是在边缘端,其实都需要到人工智能都需要要有一个能具有人工智能计算的一个硬件载体。一个下沉带来的是市场规模急剧的扩大。
从上面这张图也可以看出来深度学习芯片,其实也就是目前代表人工智能芯片出货量从2018年的1.649亿,这个可以到2015年的29亿以上,然后到了2025年规模可以达到726亿美金。所以说人工智能芯片的发展,带来了对深度学习芯片的一个需求,我们来看一下人工智能芯片, 从目前来看,既然它的市场很大,它的规模会不断的发展,那它到底有什么样的一些需求?
我觉得主要是分三点,第一点就是它的灵活性和可编程性的这样一个需求。因为很多的网络都会出来,已经出现了,而且不断的在涌现这种网络不同的连接关系,不同的网络结构,你不可能对每一款芯片去做定制化的实现,你也不可能说对新出现的东西你能够做提前的预知,所以说你的芯片是应该具有灵活性和可编程性的。
第二个就是神经网络本身它其实不仅仅是神经网络,所谓的CN层,第N层等,它其实还有很多非神经网络部分,比如像人脸检测和识别里面,它其实有左边这部分我们常用的这种神经网络,但是右边部分还有很多其实是非神经网络部分,也就是说对神经网络和非神经网络的高效处理,才能够使得整个人工智能算法处理达到一个很好的效果,原先的方案是说对非神经网络部分要么用定制化的实现,要么用CPU来实现,其实你的短板还是在你的非神经网络部分。
所以说人工智能芯片应该对神经网络和非神经网络都能够进行高效的处理。这个能效从原先CPU、GPU到IPGA这些能效其实取决于他们本身的这样一个应用场景或本身的一个架构,它能效值是不高的。当从芯片当从人工智能从云端迁移到边缘端的时候,我们可以发现在云端它其实有高算力,高能效的需求在这个边缘端,它其实有低功耗高能效的需求。
所以说随着人工智能的需求的发展,人工智能芯片高能效的需求,比如说能够到TOPS/W这样一个以上的这么一个性能,也是成为了越来越关键的一个需求。我们可以看到人工智能的芯片的需求,其实就是灵活性和高能效,到底我们需要一个什么样的一个系统架构?
这张PPT讲述了是说横坐标是一个灵活性或者是通用性,他们其实是可以等价的,然后纵坐标是一个能效,我们可以看到CPU其实具有很好的灵活性,但是它能效率很低,而ASIC的能效非常高,但是它几乎没有通用性,没有灵活性。而FPGA、GPU和现在比如说永信的NPU,其实是在这个能效上有提升,但其实他灵活性其实是在变差的,如果我有新的需求,我才重新的进行设计。
其实我们也看到在这个领域,在这个图里面,左上角部分有这么一个区域,这个区域是说软件和硬件可编程在执行的时候,它可以接近S的这样一个执行效率。在这里面我们做的研究其实就做的研究做的技术积累,其实就是我们讲的可通过计算可成果计算,就是能够打能够想去达到CPU的这样一个接近CPU的灵活性和达到一个接近ASIC的这样一个执行效率。
这个技术本身其实是最近美国的DARPA,他们也提出了软件定义硬件,目的也是说软件可编程、硬件可编程,同时想去获得接近专用电路所谓的ASIC的这样一个性能。包括国际半导体的发展路线图,他也讲CGRA就是所谓的可重构计算,然后合在一起列为核心关键技术,美国把这个技术是列为他们的这样一个电子复兴计划的核心技术。他们认为接下来他们技术在电子行业领导做领导地位的话,这一块是他们重中之重。这是他们2017年提出这么一个计划,其实我们做这个技术其实是到现在,就是说反过头来看,我们这个技术其实是比他们早做了十年。
这是一个可重构的一个基础计算系统。其实我们也可以看到可重构计算本身它有自己的一套工具链,我们叫做CGRA的一个工具链, 包括我们自己内部用的时候,我们是有一套可以兼容用户,比如说在Tensorflow去开发,然后能够直接下沉到编译到我们芯片上的这样一套工具。
再一个就是从右图来看可重构这样计算系统其实包含了比如说像控制单元、可通过计算阵列,还有一些存储和输入输出设备,这是一个非常基础的这么一个计算系统。
这里本来是有一个动画的,能够演示一个基本的一个过程,但是动画现在放不了,我大致说一下,比如说这里面有配置、数据,其实最右边其实列了一个流程,也就是说可重构计算,其是在正列配置的驱动下进行数据的加载,进行循环的计算,最后将结果导出是这么一个过程,在这里面其实是可以做到一次配置、多次数据计算。一旦配置完成,它是在数据流的驱动下去完成计算。我们可以进一步再讲细节一点,左边这个其实是可重构架构的一个基础架构,它包含了这样一个比如说存储部分,它包含一个核心的一个阵列计算部分,阵列计算有阵列的基本单元,这些单元你是可以去设计的,它可以是一些粗粒度的,也可以是一些细粒度的。
我们看右边其实就是一个程序,一个非常简单的N次迭代的循环,我们其实可以把这个循环转成数据流图,这数据流图我这里面只是列了四次迭代,比如说红色用不同的颜色表示。我们再往右边看,右边其实是一个从上到下的一个时间轴表示的这么一个计算过程。在第一个T时刻我再配置一下,我可以完成一个加法运算,然后在下一时刻,他和原着它一代关系往下走,从而完成一个或运算和一个减法运算。然后此时下一次迭代的加法运算,它又可以启动。
然后所以在这里面你可以看右边其实是配置了。原第一次T时刻它是配置的一个单元,到T加一时刻它已经配建了三个单元,然后到T加20克的时候,第三次迭代的加法又已经开始运算,然后第一次迭代的乘法开始启动,到了第四次以后其实整个电路已经配置完成,所有的执行过程其实在数据的驱动下去完成,也就是说只要在我配置完成以后,它已经是一个ASIC的一个执行方式。所以你可以看到到T+30其实是已经没有配置,其实是展示了和传统计算架构的一个对比,传统是只能指令驱动的方式,比如说左边这个图它有自己的指令, 所以这是一种指令驱动的一个实用计算模式。
我们看右图,右图是一个可重构的计算模式,可能够是说我通过配置我可以在正面上我配置不同的功能区域,一旦配置完成以后,它可以实现数据流的驱动,而到了下一个时刻,我又可以把我的这个单元快速的配置成不同的功能,在这个功能下我又可以去进行数据流的驱动,所以它是一个数据驱动动态重构的一个空间计算模式,他没有指令,它执行效率非常高,而且它充分利用了这种数据的这种局部性,然后能够快速地对数据进行计算。它是一种接近ASIC电路的这样执行方式。
前面讲了一下可重构计算的一个大致的一个基础系统,以及它一个基本的一个执行方式,还有和传统的计算架构的一个对比,我们来看一看可重构计算本身它有哪些挑战?来有哪些难点?
其实我们可以看左边是个程序,比如客户的程序或者开发程序,然后怎么在我们的可重构的这样一个计算架构上去执行。总的来说其实挑战主要有三个方面。
第一个就是说动态配置下的这样一个数据驱动的执行,如何去充分的去提高阵列的利用率,这是一个问题。
第二就是说我们是一个规则的阵列,但是其实很多运动它是非规则的,它可能有条件,有跳转,还有控制等等,如何让它执行的时候能够提高计算能效,这是他的一个挑战。
第三个就是你的硬件资源肯定是有限的,但是你的应用其实是无限的,或者说是一个很大的一个规模应用,如何让大规模的应用在有限的应用资源上能够很好地运行起来,这其实是映射的一个过程,如何去优化映射的一个效率就变得非常关键。
所以说可通过计算它这个挑战,我认为主要在以上三个方面,基本是做了这么多年的这样一个研究, 我大概举两个例子,这个例子其实是非常具有代表性,它是一个非常复杂的一个程序。从自身的角度来说,它其实是一个非完美的一个嵌套循环。所谓非完美是说这个程序它有比如有单条语句,然后横插在循环体当中,嵌套是说它有多层的循环嵌套,其实我们去把这个程序去往可乘过阵列上去做的时候,其实可以看到每一个循环体它有自己的一个迭代间隔,迭代间隔其实影响执行时间,不同的嵌套的循环都有自己的间隔,他们间隔的效率都会对本循环起作用,但是从总的多层的循环来说,有个总的一个间隔,就是说如何协调调配总的间隔,让整体的执行时间最快就变得非常关键。
这里面我们其实做了一个工作,我们其实可以看把不同的子循环,我们去把它内层的循环,我们去把它间隔,把它循环体给抽出来以后,建立了一个如图B所涉家数据流图,然后我们把多层的循环,然后融合在一起,形成一个大的一个循环体,就是由C所示,从这个层面上我们去优化调配每个子循环的迭代执行时间和以及总的一个迭代时间。其实大家可以看到这个数据流图其实存在很多依赖关系的,如何让循环体总的这样一个嵌套的循环体高效的执行,这就是优化技术的这样一个东西,然后这里面涉及到怎么去调配间隔。
另外是说我们在这个里面我们做了一个压缩技术,如果循环多了以后,它会带来配置信息的冗余,我们通过这样一个压缩的技术,我们可以极限化的把配置压缩到这样一个非常小的一个片面一个片上去,从而可以让配置的效率非常高。我们需要说在CGRA上执行时间相比说别的,我们可以减少70%的这么一个执行时间。再一个就是在可重构计算本身的时候,其实你不同的这样一个程序的分割,然后在正面上去做映射,哪个单元负责哪个逻辑,他们之间的数据通信,传输路径的长与短都会影响到能耗,所以说我们其实又做了这在能耗约束下的这么一个模型。
这个模型是说我们在CGRA上去做,我们可以将能耗减少50%。上面其实提到了就是说可重构计算的难点,其实可通过计算我总结了三个方面,但它其实还是有很多的这种关键点在里面,我上面也举了两个例子,这是两我们做两个优化的技术,也其实一直围绕CGRA从计算架构到工具链的映射还有优化。其实一路下来,我们以前的实验,我们的可通过计算实验室,这个也是做将近这么多年的积累,从所以说其实很多技术其实都体现在的我们的论文当中,我们专利当中包括我们申请了将近120多个专利,还有我们发表的这一系列顶级的论文,还有我们出版的可重构计算的这样一个专注,还就是获得了一系列奖励,所以说可重构计算难点,今天只是用两个例子来讲,当然还有很多的挑战.
技术是为应用服务的,我们说做了这么多年研究以后,我们要想的是说将可通过计算技术去做产业化落地。所以接下来我来介绍一下我们从公司层面上做的两款产品。
其中一款产品叫做智能语音芯片,他代号是TX210,这是我们刚才给大家介绍的已经量产的一个低功耗的一款语音芯片。这款芯片今年出货大概有几百万,然后未来两年我们应该可以出货大概4000万颗左右。其实看左边TX210它的面积非常小,它功耗非常低,可以在两毫瓦左右执行。然后它支持主流的一些神经网络,包括你不同的位宽的1到16比特它都支持,所以说它可以应用在比如像手机可穿戴设备,还有这种LT设备,还有这种智能家居方面,右边其实我们已经做的一些方案,包括我们做的一些像智能开关,智能耳机,智能摄像头,还有智能手机,应该是有些产品很快大家都可以买到相应的产品,目前这款芯片其实是在市场上还是比较属于认可的。
下一款芯片就是我们的智能视觉芯片,我认为它是一款多模芯片,它不仅仅是给视觉用,它是也可以做语音,它也支持比如像声纹比如说语音识别,它可以去做,这款芯片里面有用到我们的可重构计算引擎,它的AI的算力可以达到十个TOPS/W这么一个性能。然后他内嵌了一个3D引擎,可以比如说像支持结构光,还有TOF,还有包括双目立体,整体功耗大概在350毫瓦左右,这款芯片应该今年可以量产。这款芯片其实是这可以用在很多场景,比如像智能家居场景,比如说你这个门锁都可以用,它还有智能安防,还有智能支付,因为它是有一款3D加AI,所以说它的安全性可以做得非常高。第二是说智能机器人,这样这款芯片它有能够提供深度信息,所以在比如像导航这方面他可以去提供支持。这款芯片其实就是定位就是说更智能更安全,还有更高的一个计算能效,这是我们TX510的芯片。
本文为部分内容和PPT,完整内容和PPT查看可进入雷锋网(公众号:雷锋网)(公众号:雷锋网)「AI投研邦」查看;(AI芯片研究报告即将出炉,会员可免费观看)
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/66163.html