作者 | 中国科学院微电子研究所 剑白

前不久比特大陆推出其云端人工智能芯片--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开发板:该部分无需多做说明了。对于人工智能深度学习的初学者和研究者,一块开发板是其入门进阶的最好选择。集成的硬件系统,体系完善的学习资料,充足的代码示例无疑是开发学习人员的最佳选择。

关于比特大陆的第二代云端AI芯片BM1682,请查看《比特大陆二代AI芯片性能跃升,专注安防视频》。

比特大陆发力边缘计算,详解终端AI芯片BM1880相关推荐

  1. flink大数据处理流式计算详解

    flink大数据处理 文章目录 flink大数据处理 二.WebUI可视化界面(测试用) 三.Flink部署 3.1 JobManager 3.2 TaskManager 3.3 并行度的调整配置 3 ...

  2. 大数据实时流计算详解

    开篇词-攻克实时流计算难点,掌握大数据未来 我曾任职于华为 2012 实验室高斯部门,负责实时分析型内存数据库 RTANA.华为公有云 RDS 服务的研发工作.目前,我专注于移动反欺诈解决方案的研发. ...

  3. 音视频开发(28)---流媒体并发量与宽带、码率计算详解

    流媒体并发量与宽带.码率计算详解 码率计算公式     基本的算法是:[码率](kbps)=[文件大小](字节)X8/[时间](秒)*1000     音频文件专用算法:[比特率](kbps)=[量化 ...

  4. PS调整边缘工具详解

    转载地址 : http://www.360doc.com/content/15/1129/12/4127803_516682427.shtml *"调整边缘"工具详解 (ps教程) ...

  5. 大数据发展规划及技术详解

    大数据发展规划及技术详解 1.BI的流程:主要是阐述一下BI的流程:第一,需求分析阶段,要搞清楚用户需求,就本例用户想要的是volte业务使用情况的月报表,必须要搞清楚月报表中包括哪些指标(包括维度指 ...

  6. 大数据平台作业调度系统详解-理论篇

    大数据开发平台的核心组件之一:作业调度系统. 作业调度系统是一个相对复杂的系统,涉及的内容繁杂,针对的场景多种多样,实现的方案千差万别,是一个需要理论和实践并重的系统. 本文先从大的场景划分的角度对市 ...

  7. 内存虚拟化、内存复用、大页内存作用及详解

    内存虚拟化.内存复用.大页内存作用及详解 1. 内存虚拟化 2. 内存复用 2.1. 内存共享 2.2. 内存置换 2.3. 内存气泡 3. 大页内存 3.1. 大页内存原理 3.2. 大页内存配置 ...

  8. <Zhuuu_ZZ>大数据技术之Flume详解

    大数据技术之Flume详解 一 Flume配置 Flume安装地址 环境配置 验证 二 Flume基础架构 1.定义 2.Flume组成架构 3.Flume组件 Agent Source Channe ...

  9. Java stream流式计算详解

    Java stream流式计算详解 1. Stream概述 1.1 Stream简介 1.2 Stream分类 2. Stream操作 2.1 Stream创建 2.2 Stream无状态操作 2.3 ...

最新文章

  1. python基础 while循环练习
  2. webservice-概念性学习(一)
  3. 【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )
  4. github托管代码
  5. boost::intrusive::treap_set用法的测试程序
  6. C语言高级编程:指针变量p指向的地址与p自身的地址
  7. mapperscan注解_SpringBoot 遗忘后的简单快速回忆之环境搭建与常见注解
  8. 【java】多线程控制(一)---Semaphore、Exchanger、CyclicBarrier、CountDownLatch
  9. 模板类出现外部符号无法解析错误
  10. nginx实现动态分离,解决css和js等图片加载问题
  11. 拓端tecdat|R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
  12. 1030: [JSOI2007]文本生成器
  13. 【UVA1599】Ideal Path理想路径--两种约束条件(!!双向bfs+非简单图的最短路+无向图邻接记录法)
  14. SSCOM的模拟连接测试及服务器连接
  15. SecureCRT+SecureFX 7.1.1.264整合版 - SSH和SFTP客户端
  16. 8086CPU寄存器
  17. python 微信图文消息接口_用Python实现微信公众号API素材库图文消息抓取
  18. android下拉水波纹,RecyclerView实现水波纹点击效果
  19. ipad iphone开发_如何从iPhone或iPad连接到Windows远程桌面
  20. python中init函数详解_Python 中__init__函数以及参数self

热门文章

  1. Python最大堆排序实现方法
  2. 华为巨资收购为云计算趟平道路?
  3. DOS批处理高级教程精选(六)
  4. 在WinXP上通过Virtual PC安装WinCE
  5. Cisco网院成立10周年-未来三年在蓉增50所
  6. Pycharm+Anacond安装完成后的Python文件创建以及No module named 'bs4'.
  7. Java(三):序列化
  8. cf792b循环链表
  9. 第三阶段 10_JavaWeb基础_
  10. html css 布局知识概况