查看原文
其他

【墙裂推荐】引发全世界广泛开发者关注的国产AI芯片

大老王 是说芯语 2021-01-18

分享嘉宾


嘉楠科技芯片设计工程师

黄锐


文字记录



大家好!我介绍一下勘智K210,勘智这个名字是有特殊含义的,勘物+探智,物是指物联网,智是指人工智能。


接下来我来介绍一下这个芯片的工作原理,它首先是一颗SOC集成了普通单片机所具有的功能,并且上面还带有一个卷积加速器。



它上面最重要的核心部分就是KPU,使用特殊的计算架构,并且具有非常高的能效比。它里面可以支持16位的定点乘法和8位定点乘法,并且在人脸检测场景,能跑到120帧每秒。支持8路麦克风阵列预处理,在语音识别领域里非常有用,而且无需外置DSP处理器对麦克风阵列进行处理,内置的这个硬件加速就可以完成一系列的处理过程。除此以外,还具有512点定点FFT加速,具有非常高的吞吐能力,硬件的FFT加速比软件算要快100倍。



它还具有高性能的浮点运算处理单元,每个核都具有一个,像我们传统算法里面只要使用浮点的话,有它还是非常有优势的。


接下来介绍一下KPU的工作原理,我们没有使用类似于脉动阵列这种传统计算方式,我们使用一种特殊的计算单元叫KLU,具有超宽的576比特内存的带宽,在吞吐率上有非常非常高的优势,并且把卷积运算拆解成若干个KLU,来进行批量卷积运算,这样做的话,计算性能将会非常好。


这是它进行卷积计算的计算原理,输入的数据和输入的卷积参数在每一个KLU中进行卷积运算,卷积完了之后求和,输出卷积的计算结果,这么一个KLU的单元可以在CPU不干预的情况下就可以做到这些事情,整个过程可以把CPU空闲出来,让用户能做其他的事情,比如说跑他的应用。



这个芯片的定位是在嵌入式领域,尤其是在MCU领域,给MCU赋能,使它能够做到机器视觉的目标检测和目标识别。内部的神经网络加速器,不仅可以处理视觉的信息,还能处理声觉的信息,还能处理音频的前处理,比如麦克风阵列的前处理。我们这个芯片主要做的事情,其实就是物联网的市场里面的AI应用,简而言之,就是边缘计算领域。


接下来我来介绍一下K210在边缘计算中是如何做数据抽象的,实际上在后摩尔定律时代,物联网的计算能力和海量的数据增长速度其实是不匹配的。计算的能力增长的速度是越来越慢,但是数据的增长速度一直都没有变慢,这个时候物联网的计算中心将会承担着比之前更高的计算压力,这个时候必须得把计算中心的负荷由边缘上的计算设备来承担,这就是K210的使命之一。



我来解释一下,为什么需要边缘计算,主要是在带宽需求提升,就是说我们现在物联网的网速并没有提升得特别多,但是数据量一直在增长,带宽的提升跟不上数据量的增长,并且由于计算中心越来越复杂,做这些计算中心的同步以及运维的成本也会越来越高,已经不是小的公司可以做的事情了,会非常的难。并且它的计算能力也会捉襟见肘,原因是数据量越来越多,如果你把每一字节视频、每一字节音频的信息全部传输到服务器上的话,会带来非常大的带宽开销,以及计算压力。还有就是延迟严重,如果你的数据不能在本地处理完,而是全部在服务器上处理,你会走一遍上传到服务器的网络延迟,以及由服务器返回的网络延迟。



举个例子,比如说我们做语音识别应用的时候,假设我们用传统的方法去做的话,在本地去采集那个语音数据,经过第一次网络延迟,服务器上再处理,经过第二次网络延迟,结果才能返回给用户,用户要等待两次网络延迟。如果直接用K210,直接实时处理离线语音处理的话,用户将会有更好的体验,而且这个网络延迟可以对用户无感知,数据同样能被服务器收集的。



接着解释一下数据抽象的意义,比如说我们做一个人类图像的数据,如果我们用传统的方法,要向网络上传自己1G的带宽,但是如果经过K210信息的提炼,我们就可以把数据压缩到10千字节就能表达的程度,这样我们是省了几个数量级的带宽。再比如说在语音识别应用的时候,我们可能采集了很长一段的话,采集了大概10兆字节,当然我们是通过麦克风阵列采集,会有多路的声音,但是如果在本地离线识别之后,把识别的结果传到服务器上的话,1千字节就可以表达它的含义了。也就是说,原始的数据有用的信息和我们不需要的信息是混杂的,它的价值是比较低。但是浓缩的信息,只包含用户感兴趣的信息它的价值是高的,边缘计算和数据抽象可以提升数据的价值。

    


接着讲一下边缘计算的优势,我们一直在讲去中心化,因为云服务器再这么膨胀下去,它已经很难胜任数据的处理任务,而且如果一个节点坏掉之后,就会形成多米诺骨牌的效应,本来它该承受的流量全部打到其他的节点上。这样的话,即使是一个数据中心也很容易一坏全坏,而且它是需要海量的算力去处理原始数据,成本特别的高。而新的一种模式,就是边缘计算节点去承担运算任务,这样的话,我们坏几个节点其实是不影响整个系统的,而服务器的部署也可以变得特别的轻量化,这样对于节约成本是很有意义的。


 

接下来我来介绍一下K210是怎么实现边缘智能的,我们是把机器视觉和机器听觉融合到一起,进行统一的处理。如果一个硬件没有视觉,只有听觉的话,它就像瞎子一样,只能通过声音来进行判别,它能做的事情很有限。如果一个硬件听不到声音,只能看到的话,它就是聋子,只能通过视觉去进行判断。一个健全的硬件是能够同时处理机器听觉和机器视觉,并且进行多模态的融合,这就是我们定义的边缘计算的智能。

   

 

我们举一个例子,由于里面有加速器,可以以非常快的速度在一瞬间捕捉出人脸,这个是做一个人脸检测+人脸识别的例子,我们记录出人脸以后,可以在人类还没有反应过来的一瞬间迅速地识别它,比起要卡帧的人脸识别来讲,它很快,而且可以装到各种各样的设备上。

 

  

比如说有人用屏幕视频进行攻击,有人用A4彩色打印纸进行攻击,这是双录摄像头的一个活体检测的应用案例,如果拿着一个假人是能立刻知道这是一个假人,如果是真人的话,它就会知道这是真的人,可以提高人脸识别的安全性。

    


这些计算性能都是由KPU带来的,而且CPU可以空闲出来留给用户做其他更有价值的应用。比如这是一个人脸关键点的识别,可以对人的姿态进行感知,做一些有意思的事情。

 

  


除此以外,还可以跑一些传统的算法,去做一些机器视觉的任务,可以实时把四个点的图形全部框出来。

 


 

这是K210做的一个通用机器视觉的另外一个案例,主要是AGV的读码器,这个方案将会特别有优势。

    



这是K210硬件FFT加速引擎,主要是做数字图像处理,和音频处理会非常有优势。原因是如果用CPU软件去算的话,很多东西是算不过来的,如果用硬件FFT的话,能够提升两个数量级的加速能力。

    


这个是K210麦克风阵列,主要是依赖于内部集成的APU来进行加速的,现在展示的是声场成像的一个应用,在声源定位的时候,可以在3D的一个空间锥中指向声源的位置,并且给出声源的场强与方向,我们可以把若干个麦克风同时打到那个方向上,采集到那个方向的声音。

 

  

这是一个语音采集的例子,录制每个人的声音,识别出来他到底说的是什么。

    


这个是对它的运算能力的一个展示,现在展示的是一个3D初音未来实时跳舞的一个视频,是由CPU软件计算出来的,可以达到非常高的帧率。

 

  

这是对运算能力的另外一个展示,展示是K210直接跑雷神之锤1。它还能提供出额外的计算能力,让用户去做一些更有意思的事情,而且是在非常低的成本和功耗之下。

 

  

当然,这是另外一个应用。我们只要用了K210的话,有各种各样的想象空间,比如这是一个恐龙的游戏,各个浏览器连不上网的时候经常会遇到的一个游戏,当然这个是实时把人像从背景中分割出来,并且进行互动的,K210是可以做这件事情的。

    

接下来,我介绍一下开源的生态以及如何和我们合作。

 

  

我们会坚定地走开源路线,目前我们已经整合了大部分的软件和工具,并且这些东西都是开源的。

    


我们之所以这么做,是因为考虑到了AI市场里有一些问题,传统的AI市场人工智能解决方案成本比较高,而且开发难度比较大,小的厂商很难买到门票。他们首先难以招到合适的AI算法工程师,而且市场上现有芯片比较昂贵。

 

第二个是系统庞大复杂,传统人工智能系统庞大、功耗高、电路复杂,难以应用IOT市场。

    

第三,资料和信息封闭,各家AI芯片资料封闭,普通开发者难以获取信息,难以参与开发,对开源社区不友好。

    

第四个问题,是PPT芯片过多,很多芯片只能看到宣传资料,但却没有购买渠道。我们把所有的K210放到网上,连淘宝上都可以买到。

    

这是我们完善的工具集支持,软件开发包、硬件开发包已经全部开源,而且模型转换格式非常多,全都是可以转换的。还有一个是一个工具包,可以供第三方进行开发,而且我们有跨平台的烧写软件,不管你用什么操作系统都可以对K210进行开发。而且我们还做了专门的集成开发环境,图像打标工具,以及支持包。总之,它对开发者是友好的。



我们是零门槛的AI开发流程,快速落地产品。从训练网络到准备数据,以及模型编译、转换和调优,只需要把图像打标框出来,训练一下,按照我们的API一步一步操作下去,这些事情就完成了。


降低应用的门槛对于AI工程师特别重要,因为现在很多算法工程师不想搞嵌入式的开发,而很多嵌入式的工程师是停留在MCU的水平,为了消除这个鸿沟,必须有一些零门槛自动化的软件。



这是我们对TensorFlow Lite的支持,可以快速投入使用。这是我们的模型编译器,是开源的,在这个上面可以看到支持各种模式,全部都可以完美地支持。



并且集成开发环境,我们和开源社区合作得很深,像Arduino这是最大的开源社区,已经可以直接开发K210,并且是PlatfomIO现在也支持K210。



这个是对OpeMV IDE的支持,可以实时获取K210的图像,并且可以支持各种各样的数据分析。



这是K210支持的各种实时操作系统,无论是FreeRTOS、RTThread等等全部都有移植。并且我们所有的东西都开源,在这个上面可以看到我们各种各样的开源工具。




而且我们的芯片和开发板非常容易买到,在淘宝上以极低的价格就可以买到。



这是我们的一个开发板,这是K210的模组,当然也可以选配wifi支持。这是K210开发板MAIX的全家桶,只要开发者喜欢的东西,总有一件是他适用的。





这是RISC-V基金会官方网站的core-list,在这个列表上K210是唯一一颗国产IC。



而且在全世界K210有广泛的开发者关注,所有的AI国产芯片里面,K210在海外开发者使用的数量是最多的,连卷积神经网络之父都提及了我们的芯片。



我们是非常期待和大家合作的,因为我们的芯片足够低价、简单,并且我们开源,我们的团队务实。这是一颗已经量产的,可以轻松买到的AI芯片,不是PPT芯片。


谢谢大家!



分享嘉宾简介



黄锐嘉楠科技芯片设计工程师

勘智K210芯片设计的主要人员之一,主要从事神经网络算法在芯片上的优化,以及芯片硬件电路对神经网络算法的优化。同时研究系统层面上人工神经网络芯片如何解决物联网与边缘计算应用的实际问题。本次将就勘智K210讨论人工智能芯片在数据浓缩与边缘计算的应用。




本文内容来自“2019世界半导体大会中国IC独角兽论坛”会议资料,经嘉宾允许,作者将内容进行整理发布,原创版权所有,转载必须授权。


—— END ——

是说芯语原创,欢迎关注分享



推荐阅读:

国研国造中国芯才是我们的首重之重

5G牌照发放的十问十答

自动驾驶要求车载元器件零缺陷,怎么破?




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存