比特大陆发力边缘计算,详解终端AI芯片BM1880
作者 | 中国科学院微电子研究所 剑白
前不久比特大陆推出其云端人工智能芯片--SOPHON(算丰)BM1682芯片,BM1682是比特大陆设计,并对图像、视频等处理给予额外辅助支持的人工 智能硬件 加速芯片,其峰值运算速度为3TFLOPs,可提供给用户强大的硬件加速支持。近日,比特大陆又将推出其边缘计算芯片BM1880,用于前端图像、视频、语音、自然语言等等深度学习硬件加速。
边缘计算与云计算
想必云计算大家都不陌生,云计算又可称之为“集中式”计算系统。在云计算系统当中必会构建一个具有强大运算处理能力的云端中心,用户们可以将自己的本地的复杂数据通过网络传输到云端,借助云端强大的运算执行能力来快速完成数据的处理任务。然而,云端计算并不是时时处处都“奏效”的,云端处理延时大、依赖于网络通畅度的好坏,因此对于实时性要求高、数据隐私性高的应用,将数据传至云端进行处理就十分的不合适。
边缘计算的概念就因运而生,边缘计算又可称之“前端计算”。对于实时性要求高、数据保密性强、网络资源不充足等情况下,边缘计算可以近水楼台先得月,及时的将数据处理完毕,只将必要的信息传递给云端即可。此种方式,对于本地采集的数据,端设备可以及时处理,并响应一些特殊的警报信息,及时的通知用户做出应对反应。可以说,边缘计算与云计算是局部与整体的关系,云计算负责“统筹”全局、处理复杂但实时性要求不高的信息,边缘计算则负责守好自己的“一亩三分地”,对信息进行预处理并及时抛出异常警报,应对突发状况。
比特大陆边缘计算--BM1880芯片概览
从BM1880最新披露的技术资料显示,BM1880是聚焦于边缘应用的深度学习推理人工智能芯片。其主要应用方向为图像、视频、以及其他类型的深度学习推理。产品支持丰富的AI功能:如人脸检测、识别与表情分析;人体属性与姿势分析;物体检测与识别;车牌识别;声纹识别等等方面。
从功能模块图上看,BM1880是一块对视频、图像进行人工智能处理有额外支持的人工智能芯片。
核心部分,BM1880包含一块TPU(Tensor Processing Unit,张量计算单元),该TPU包含512个MAC,支持Winograd卷积运算。TPU用于人工智能深度学习推理的硬件加速,可以极大的提高运算速度,加速系统的推理学习之星速度。同比特大陆的其余人工智能智能芯片相同,BM1880的TPU也配备了调度引擎以给张量处理器核心提供极高的带宽数据流,对于8位数据宽度的数据,其计算速度高達1TOPs, 而在Wingorad卷积加速运算下,提供高达2TOPs 的算力。值得注意的一点是,BM1880的典型功耗仅仅有2.5W,却能提供1TOPs的运算能力,对于边缘计算已经足够。TPU中同时配置了2MB SRAM用于系统性能优化、数据重用以提供最佳的编程灵活性。
BM1880同时提供CPU用于人工智能深度学习算法的编程操作。BM1880的CPU共有2部分,一个是应用处理器,由双核ARM A53构成,工作在1.5GHz;另一部分是精简指令的RSIC-V处理器,由工作在1.0GHz的单核RISC-V构成。
BM1880人工智能深度学习系统的运算结构配置可谓恰到好处各司其能,双核CPU用于执行深度学习算法,TPU用于深度学习算法的硬件加速,单核CPU可以用于处理外设相关信息。该配置能够很方便的实现满足外设实时性、深度学习算法执行流畅性的要求。
专属功能上,BM1880配备了视频处理子系统的硬件模块,该模块算是十分贴心了,在图像视频处理方面,用户基本无需再添加外围设备,可以大大减少产品开发成本。该视频子系统位于功能图的右半部分,包含MJPEG编/解码器、H.264解压器、视频后处理器(Video Post Processor)三个部分。MJPEG编/解码器、H.264解压器的配备也十分符合当前网络视频资源的类型情况,视频监控设备最常用的视频格式就是MJPEG和H.264,其中MJPEG作为监控厂商最初采用的视频编码压缩格式,网络上和监控视频存档资源中MJPEG占据中坚比例。H.264格式为有损压缩格式,其压缩算法相比于MJPEG更加先进,并且具有更高的压缩比、更清晰的画质同时具有更快的传输速度。H.264是目前网络、视频监控中常用的压缩格式。视频后处理器(Video Post Processor)部分可以给进入BM1880的视频流进行预处理,该模块支持深度学习中常用到视频的操作,比如颜色空间转换、尺寸剪裁、缩放等操作,通过硬件流水线的执行视频预处理,无需软件部分的参与,极大的减少了CPU的工作量。
内存方面BM1880配备了支持DDR3/DDR4,LPDDR3和LPDDR4四种规格的内存的功能,用户的程序和数据流均可存放在内存当中,加速其算法执行。
本地存储方面BM1880同样配备了常用的存储设备接口,结合相应的设备,BM1880可以在本地读取、存储数据流,如当需要深度学习处理的数据存储在本地的时候,系统就可以直接从本地中读取图像、视频、或其他数据流进入内存进行推理学习处理。存储设备接口包括SD/SDIO、eMMC、SPI NOR闪存、NAND Flash等。SD/SDIO配备了高速功能,支持最高187.5MHz的工作速率,接口除了用于SD卡的读写之外还可以通过添加外设的情况下来增加蓝牙、摄像头、GPS、以及802.11 a/b/g/n无线等功能,高速的接口速度可以满足大数据流的传输要求。eMMC最大支持32GB闪存,用户可以根据需求选择合适的闪存接入系统,进行存储/读取等操作。同时,BM1880可以支持NAND Flash 也可以支持SPI NOR Flash。
BM1880还配备了2个以太网接口和USB接口。以太网接口支持百兆和千兆速率。USB接口配备了一个高速USB3.0接口和一个支持主/从的OTG2.0的接口。BM1880除了可以从本地存储设备读取数据流信息之外,还可以通过以太网接口和USB接口接收来自外设或主机传输的图像、视频、以及其他类型的流数据进行深度学习推理运算或其他视觉处理任务。
调试接口配备了通用的JTAG接口,同过JTAG接口用户可以方便、快捷的下载程序以及调试程序。
BM1880在功能性外设接口方面也提供的充足的支持:BM1880配备了4个通用串行接口UART、5个I2C接口、通用GPIO口以及16路PWM输出。UART接口以及I2C接口也可以提供低速通信功能,与外设进行交互。数量上UART为4路,I2C为5路,用户可以根据开发需求方便的连接足够多的外置传感器,这点可以看出BM1880在设计上还是很贴心的,用户在开发上基本上无需为接口不足而烦忧。通用GPIO口和16路PWM可以提供强大的反馈控制功能,在深度学习边缘计算当中,对于需要及时处理的突发警报情况,BM1880核心程序可以通过直接驱动GPIO口或PWM接口来及时的对外界设备进行应急处理或进行警报提醒。
BM1880是重点面向图像、视频深度学习处理的边缘计算人工智能芯片,除了对图像/视频的强力支持意外,还配备了2路音频信号I2S接口。该接口可以支持音频信号的输入和输出功能,芯片本身只提供了接口,并未配备响应的硬件编码解码,相关的编码/解码工作可以由软件部分完成。
BM1880的软件支持和开发生态链
在人工智能深度学习产品开发的过程中,用户选定人工智能深度学习硬件芯片以后,由于硬件往往是固定不可调节的,此时软件支持将是用户更为关心的点。强大的软件支持意味着流畅的开发速度、稳定的产品性能以及较低的时间、投入成本。恰恰比特大陆在其开发生态链上具有完善的开发体系,给与其人工智能芯片完整的支持。同其余款深度学习人工智能芯片BM1680/BM1682一样,官方对于BM1880同样也由强大的软件支持。比特大陆对BM1880用户提供了强大的深度学习模型编译器以及软件SDK开发包,用户无需为程序算法移植花费太多精力——主流的深度学习架构,如Caffe和Tensorflow,都可以轻松的移植到BM1880平台上。同时,常见的神经网络模型,如CNN/RNN/DNN等模型也均可以在BM1880上被执行。
BM1880应用模式
通过上述软硬件部分的解析可以看出,BM1880具有不俗的深度学习硬件加速能力。显然除了让BM1880作为协处理器进行边缘计算以外,在非巨大运算量的场合,如局部视频监控等方面,BM1880作为主处理器也是完全可以胜任的。BM1880具有丰富的外设和高速的通信接口,配合其1TFLOPs的巅峰算力,作为前端处理非常合适了。下图为BM1880的常见应用方式有3种:
第一种是“云端-边缘”计算系统,即“边缘计算”的方式。在“云-端”方式中,系统不仅要对四面八方涌来的数据做处理,还要对异常情况进行监测,一旦监测到异常情况,“端”部分就需要及时的抛出异常并给出处理方案以保证端系统的安全性。在系统中,云部分主要负责前端通过通信链路(如网络)发送的复杂数据流的处理,以及统筹整个人工智能深度学习系统;而在端部分,如在视频监控中,结合传感器端系统可以通过本地的简单处理,就可以及时发现火灾、结合人脸识别/动静物等操作也可以及时发现盗窃等情况;BM1880处于系统的前端,中心云处理部分负责系统的调度和深度学习中复杂数据的推理学习。同时该方式可以减轻系统对网络资源的依赖性。由于BM1880处于本地位置最接近原始数据流的源头,可以率先对进入系统的数据流进行初步分析,发现异常情况,并将前期处理在前端部分完成,然后将压缩、精简后的数据传至云端,再由云端进行处理。
第二种应用方式是BM1880作为协处理器进行工作。BM1880可以很容易开发成为一个协处理器,运行人工智能深度学习程序的主机将需要进行深度学习推理的图像、视频、以及其他类型的数据流传输给BM1880,BM1880借助其自身强大的推理学习能力进行快速计算,然后结果返回给主机,主机再进行处理。
第三种应用方式就是BM1880可作为主处理器进行工作。BM1880具有强大的深度学习运算能力,高达1TFLOPs的运行速度加上高速的CPU,在很多情况下,是完全可以胜任做为主处理器进行人工智能深度学习推理的任务的。下图就是其应用框架图。BM1880作为主处理器直接接收图像、视频、以及其他类型的数据流进行深度学习推理运算,根据推理结果可直接通过控制接口对外部设备进行实时调控。
BM1880官方产品
在BM1880的基础上,比特大陆还推出了部分以BM1880为核心的人工智能产品。简单介绍一下各款产品。
USB人工智能算力棒:该款产品对于广大开发者来说可谓是溜溜溜了!USB轻轻一插,PC摇变算力王!单从外观上看,铝合金的外壳,精致的散热外盒, 科技 感十足。此时USB人工智能算力棒中BM1880就是一个协处理器的应用方式了,用户在PC或者是其余支持USB接口的设备上运行深度学习算法时,往往碍于自身设备的性能算法导致执行缓慢,换设备费钱费时不划算,有此USB人工智能算力棒,只要轻轻接入用户主设备,大量的深度推理过程统统交给算力棒,释放主设备资源,助力系统流畅度。
USB人工智能模块:该产品为集成了BM1880的PCB人工智能算力模块。由图可以看到,这是一个最小化的系统。客户在需要深度学习推理的产品中可以直接采用添加此模块,无需重新绘制电路板。结合该模块,任何产品都可以轻轻松松实现AI功能。
BM1880开发板:该部分无需多做说明了。对于人工智能深度学习的初学者和研究者,一块开发板是其入门进阶的最好选择。集成的硬件系统,体系完善的学习资料,充足的代码示例无疑是开发学习人员的最佳选择。