作者:刘建伟,爱芯元智联合创始人
随着5G的落地,物联网的成本效益显现,工业数字化、城市智慧化等演进趋势日益明显,越来越多的企业和城市开始在物联网创新中加入数字孪生这种颠覆性的概念,来提高生产力和生产效率、降低成本,加速新型智慧城市的建设。值得一提的是,数字孪生技术已被写进国家“十四五”规划,为数字孪生城市建设提供国家战略指引。
关于数字孪生,我们可以举个例子,前几年亚马逊和京东推过的无人零售概念型实体店,将线下零售店变成了线上淘宝店,人们去店里购物前只需打开APP,在设置中完成刷脸登录,脸部认证成功后,在刷脸开门时即可自动关联账户,购物后不用排队手动结账,只靠刷脸即可离开。看似无人管理,但背后却是人工智能的全程跟踪,消费者的一举一动都被摄像头捕捉了下来,比如你把什么商品拿起来看了又看,意味着你对这个商品很有兴趣,但是出于某种顾虑又没买,最终买了另外的商品,这样的数据会被抓取下来,进行深层次的分析,形成基础数据库,之后就可以根据你所有的购物记录和消费习惯进行周期性的推送等。
通过这个例子,我们可以看到将物理世界数字化带来的便利性。而视觉是人类感知世界的一个重要手段。人类进入智能社会的基础是数字化,感知是将物理世界数字化的前提,而前端视觉感知的种类、数量和质量决定了我们这个社会智能化程度的高低。由此可见,智能化未来的基础是“感知 + 计算”,AI视觉在智能化的进程中会起到非常关键的作用,具备非常广阔的应用前景。有行业分析师认为,数字孪生技术即将超越制造业,进入物联网、人工智能和数据分析等整合领域。这也就是我们选择了这个创业方向的原因。
而视觉芯片作为物理世界到数字孪生世界最重要的入口,正受到广泛关注,尤其是能够对物理世界进行80%-90%还原的AI视觉感知芯片。
那么什么是AI视觉感知芯片呢?从需求端的角度来看,AI视觉感知芯片需要具备两大功能:一是看得清,二是看得懂,其中AI-ISP负责的就是看得清,AI-NPU负责看得懂。
图 | AI视觉芯片的技术特点
事实上,从广义上来讲,在人工智能应用中能实现AI加速的芯片都可以被称为AI芯片,而其中用来提高AI算法运行效率的模块往往被称为NPU(神经网络处理器)。目前,使用NPU加速的AI视觉芯片已被广泛地应用于大数据、智能驾驶和图像处理领域。
根据IDC发布的最新数据显示,2021年加速服务器市场规模达到53.9亿美元,同比增长68.6%。其中,GPU服务器以90%的市场份额占据主导地位,ASIC和FPGA等非GPU加速服务器以43.8%的增速占有了11.6%的市场份额,达到6.3亿美元。这意味着神经网络处理器NPU的应用已走出早期试点阶段,正成为人工智能业务中的关键需求。所以,今天我们就来聊聊负责“看得更清”以及“看得懂”的AI-NPU。
为什么会说看得更清和AI-NPU也有关系呢?从人们直观感受的角度出发,“看得清”很好理解,比如在夜间我们想要把东西看得比较清楚,但传统摄像头拍摄出的图片往往会出现过曝、色彩细节被淹没的现象,同时走动的人和远处的建筑物周围会布满噪点。那么,在类似这种情况下,如何才能更好地实现“看得清”呢?事实上,视觉芯片要“看得清”离不开的正是AI-NPU大算力的支撑。
图 | 夜间视频效果对比图
以智慧城市为例,我们已经使用500万像素的摄像头在做智能分析。传统的视频画质的改善使用的是传统的ISP技术,在暗光的场景下,会有大量的噪声,使用AI-ISP可以解决此问题,在暗光场景下依然可以给出清晰的画面,但是使用AI-ISP的技术,就必须用AI算法全分辨率、全帧率地对视频进行处理,而不能采用投机取巧的缩小分辨率或者跳帧的方式进行,因为人眼对于画质的闪烁非常敏感。而500万像素的视频码流,要做到全分辨率、全帧率的处理,就会对NPU的算力提出非常高的要求。
在智能分析的场景中,比如车辆检测和车牌识别的应用,目前常见的是采用500万的摄像头来录制30fps帧率的视频,然后每3/5帧做一次检测,在做检测的时候分辨率降到720P的方法,对于在视频画面中远处的车牌就会识别不出来,对于高速行驶的车辆就可能会漏检,解决方法也是尽量采用全分辨率、更高帧率检测的方式进行处理,而这种做法对NPU的算力同样提出了非常高的要求。
此外,如同前面提到的,除了看得清之外,我们还需要看得懂,所谓看得懂就是要做智能分析,要做智能分析也需要AI-NPU大算力的支撑,我们可以从两个角度来看这个问题。
首先,我们知道AI本身是一个提高效率的工具,它最终还是要落入到场景里面去,这也就是早期的AI+和最近的+AI的概念。那么,当AI落到行业里面去时,它能做些什么事情呢?事实上,AI能做的事情很多,比如可以把一些行业的专家系统用神经网络的方式做一些替代,这就相当于我们要把这样一个“专家”装到我们的AI芯片里,这个专家系统要足够聪明,对应的就是一个比较聪明或者比较大的网络,网络比较大就相当于脑容量比较大,它能够维持存储更多的权重值,这就会对NPU算力提出很高的要求。
其次,从部署的角度来看,目前我们模型的训练大都是在大算力的Server上跑出来的,而部署是在算力有限的端侧设备上,只有将模型或算法的计算量降到端侧能跑起来的程度,才能在应用侧更好的落地。因此需要模型压缩的过程,而模型压缩对技术人员的技术要求很高。如果我们端侧的算力比较高,其实这个过程是可以缩短的。这类似于做嵌入式软件开发的过程,早期受限于算力瓶颈,为了能够跑更多的功能,我们需要非常认真地来压榨硬件的性能,所以用汇编来写程序,但如果算力比较高,我们就可以用C语言来做开发。换言之,用一部分算力来换取开发效率的提升、AI落地的加速是可行的,但这种做法又反过来提高了对NPU算力的要求。
以上,我们分析了AI视觉感知芯片公司为什么要开发高性能大算力NPU的驱动力,但要真正实现大算力的芯片开发难度是非常大的。
众所周知,算力是NPU性能的重要指标,然而很多早期AI芯片的算力其实是标称值,真正使用时并不能达到标称的性能。比如号称1T的算力,结果实际跑下来发现只能用到200G或者是3~400G的水平。所以,大家现在使用更加实用的FPS/W或FPS/$作为衡量先进算法在计算平台上运行效率的评价指标。
图 | AI-NPU的设计难点和驱动力
在自动驾驶领域,2017年特斯拉发布FSD芯片时,马斯克用FSD和此前在特斯拉上应用的英伟达Drive PX2相比,表示:“从算力的角度来看,FSD是Drive PX2的3倍,但在执行自动驾驶任务时,其FPS是后者的21倍。”
在AI视觉芯片领域,爱芯元智发布的第一款高性能、低功耗的人工智能视觉处理器芯片AX630A,在公开数据集下的不同神经网络运行速度对比,每秒处理帧数分别为3116和1356,远超其他同类芯片产品,且功耗仅约3W。
图 | AX630A产品框图
到底是什么拉开了这些NPU利用率的差距?这背后其实是内存墙和功耗墙的问题。所谓内存墙就是当我们通过堆MAC单元来拉高算力指标的同时,数据带宽一定要跟上,否则数据供应能力不足,就会带来MAC单元不断等待数据的现象,处理性能就会下降。而功耗墙的问题主要来自两个方面:MAC单元和DDR。当我们通过堆MAC单元来拉高算力指标时,MAC单元本身的耗电总量会提升,同时还需要高带宽的支撑,在服务器侧可以使用比较贵的HBM,如此一来DDR所需的功耗势必会拉升上去,而在端侧,出于成本的考量,还没有特别好的DDR方案。
为了解决阻碍AI落地的内存墙和功耗墙这两个共性问题,业界常用的方法有两种,一种是存算一体,但会受到工艺节点瓶颈的限制,距离量产还有一定的距离;另外一种是减少数据搬运。爱芯元智就是通过混合精度技术减少了数据搬运,从而在一定程度上减小了内存墙和功耗墙的阻碍,提高了整个NPU的效率。
那么,混合精度是如何减少数据搬运的呢?首先我们要明确混合精度的概念——混合精度就是将不同精度的浮点数/定点进行数值计算。
图 | 神经网络示意图(简化版)
如上图所示,其每一数列被称为一个layer层,最左边的是输入层,最右边的是输出层,中间的部分是隐藏层。图中的每个圆圈代表一个神经元,每一个神经元上都有很多链接,链接上的数字是权重,它是参与计算的重要组成。如果权重是小数的话,则代表着其为浮点数。
在整个神经网络中,权重系数比较复杂,传统NPU的数据表示格式一般是8比特、16比特和浮点数,才能达到AI算法的精度,所以运算量繁重。但爱芯元智发现,在实际应用中,AI网络中有的信息是有冗余的,这意味着并不是所有的计算都需要高精度的浮点或是高精度的16比特,而是采用8比特或者4比特等低精度混合运算就足够了。
在爱芯元智的AI-ISP应用中,就是基于混合精度技术,网络中许多中间层都是采用INT4精度。相比原来的8比特网络,数据搬运量可能就变成原来的1/2,计算量缩减为1/4。由此便可以提升NPU的使用率和效率,在单位面积内提供数倍于传统NPU的等效算力,同时还能把成本和功耗降下来,更有利于端侧和边缘侧AI落地。
当然,在AI落地的过程中,除了要解决内存墙和功耗墙问题以外,还需要考虑算法和硬件的结合问题。尤其是在端侧和边缘侧,芯片天生就和场景有一种弱耦合的关系,所以爱芯元智在设计AI视觉芯片时,采用了从应用到算法再到NPU的联合优化设计。
图 | 算法与NPU的协同设计
具体来讲,在传统的AI方案中,算法和硬件通常是相互独立的两部分。但爱芯元智的算法团队会在NPU设计早期就将算法网络的结构、量化需求/算子需求、内存访问的需求等很多详细信息提供给NPU设计的架构师,硬件架构师可以根据这些算法的需求来调整或优化整个NPU的设计,从而使算法跑起来的效率达到优化后的水平。与此同时,硬件工程师也会把算子硬件加速条件,例如数据流优化、存储优化、量化限制等硬件限制提供给算法工程师,如此算法工程师在设计算法时,可以考虑到硬件限制,从算法的角度来规避一些硬件上的短板。两者结合,便可以兼顾NPU的硬件和软件开发,加快AI开发的落地效率。
基于以上优势与积累,爱芯元智先后推出了AX630A、AX620A、AX620U、AX170A两代四颗端侧、边缘侧AI视觉感知芯片。其中,AX170A针对手机应用场景,可对4K 30fps的影像进行实时画质优化,配合主控芯片可实现超级夜景视频和优秀的暗光拍摄功能,实现夜晚低照度下高清影像的细腻呈现;AX620A针对智慧城市、智能家居等应用,不仅能实现暗光环境下优异的画质效果,同时还能兼顾约1W的低功耗优越性能,满足电池应用方案的功耗需求,兼顾IoT、智能运动相机、手机等应用场景;AX630A针对智慧城市、智慧交通等密集场景,以强大的暗光图像视频处理能力和20路1080p 30fps的解码能力,能将高画质、全智能、全感知和实时分析的能力优势发挥到极致,可轻松满足客户“全天候”和“看得清”的核心诉求。
图 | AX170A
爱芯元智深知垂直化生态是AI芯片的归途,所以在提供芯片的同时,还提供demo板等开发套件、开源软件包,降低用户的开发难度,缩短用户的开发周期。
而从用户的角度来讲,采用第三方的NPU芯片除了能够降低自身研发难度,获得充足的有效AI计算能力以外,还能降低开发成本,这是AI-NPU使用量越大越好用的优势。
就像爱芯元智创始人兼CEO仇肖莘博士曾在2021世界人工智能大会上所说的:“希望尽我们的一些努力,能够为世界的数字化和智能化新基建,提供更多在边缘侧和端侧的支持,给社会带来更多深刻的变化。”