Running Neural Networks On Embedding Systems
我检索资料时,核心的关键词是:云平台+边缘计算、IoT、AI加速。所以主要看的是有GPU或者有ASIC(专用集成电路)的方案。
经过资料的查找之后,我发现许多做硬件的大公司比如:高通、NVIDIA,Google、海思都有自己的解决方案。
以下为我找到的一些资料。资料来源:各个公司的官网;淘宝,论坛、博客。
同时给出一些我个人的简易分析,这些分析可能不是很准确,因为只是根据网上资料所得的结果。
TODO:
- 各个芯片的加速程度对比
Qualcomm 高通
高通的优势之一就是其提供了一整套完整的硬件和软件的解决方案。高通AI LINK
其中Qualcomm NPE(Neural Processing Engine) 使用Caffe or tensorflow写好模型后,用Qualcomm NPE SDK添加到晓龙CPU/GPU上运行模型。整个开发使用流程如下所示。
其主要应用领域就用手机AI、IoT领域等。
优势:
- 有完整的软件+硬件方案
- 模型建立后部署方便
- 支持AI的晓龙芯片性能强大,因为是SOC,一个芯片实现了非常多的功能
不足:
寒武纪是国内的一家目前在智能芯片市场上很出名的企业。是一家国内提供智能芯片,满足:有终端硬件+云平台的需求。寒武纪 LINK
寒武纪同样也有几款主打的AI加速芯片。同时他也有一个云平台——寒武纪人工智能开发平台(Cambricon NeuWare)是寒武纪专门针对其云、边、端的智能处理器产品打造的软件开发平台, Neuware采用端云一体的架构,可同时支持寒武纪云、边、端的全系列产品。寒武纪终端IP、边缘端芯片及云端芯片共享同样的软件接口和完备生态,可以方便地进行智能应用的开发,迁移和调优。
开发者可以借助云端丰富的计算资源进行算法模型的解析与调试,利用Neuware生成离线模型,并能够在任意搭载寒武纪智能终端IP的设备运行,解决了终端调试手段受硬件资源限制的问题。
下图为其端云一体业务部署流程。
下图为其软件栈。
优势:
- 国内的方案,购买、实施、使用相对方便
- 有专门的云平台
不足:
- 真实性能和效果未知
- 其云端的重点好像是主要用于调试和部署
NVIDIA Jetson 系列
NVIDIA Jetson 系列。GPU大厂的解决方法,据我所知,在机器人领域使用很多。其Jetson系列都有GPU,且可运行Linux操作系统。比如:我原来所在北邮机器人队,需要摄像头进行一些较大运算量算法时,就使用的是Jetson系列的TX2。
其主打:适用于新一代自主机器的嵌入式系统;NVIDIA Jetson:适用于一切自主机器的 AI 平台。Jetson系统所提供的性能和能效可提高自主机器软件的运行速度,而且功耗更低。每个系统都是一个完备的模块化系统 (SOM),具备 CPU、GPU、PMIC、DRAM 和闪存,可节省开发时间。自然也具有可扩展性,比如:支持USB,串口,HDMI等接口(不同的型号不太一样)。
其主要有四个如下的产品,从左至右性能依次提升。(当然价格和功耗也会提升)
例如:广泛用于智能小车、比较需要计算量的智能产品中的Jetson Nano。
Jetson Nano 模块是一款低成本的 AI 计算机,具备超高的性能和能效,可以运行现代 AI 工作负载,并行运行多个神经网络,以及同时处理来自多个高清传感器的数据。这使其成为向嵌入式产品中添加高级 AI 的理想的入门级选项。
下图为Jetson Nano的照片,可以看到其支持多种外设接口。淘宝链接
而且其另一大优势时都是NVIDIA一家的,其GPU支持CUDA,这样例如:pytorch等可以很方便的部署。
Jetson 平台由 Jetpack SDK 提供支持,包括板级支持包 (BSP)、Linux 操作系统、NVIDIA CUDA(R),并且兼容第三方平台。开发者可以利用 DeepStream SDK 在 Jetson 上快速构建和部署高效的视频分析管线。
下面是其软件栈:
优势:
- 产品种类多,可选择空间大
- 模型部署方便
- 购买比较方便(淘宝即可)
- 教程和应用实例比较多
不足:
- 加速性能由于不同的GPU架构可能差距很大
TODO: Data Center 调研
Google TPU
Cloud TPU
张量处理单元 (TPU) 是专门设计用于处理机器学习应用计算需求的 ASIC 设备。有着很完善的文档,教程等。链接
Edge TPU
作为Cloud TPU的补充,目前Edge TPU主要作用于推理,专为在边缘运行TensorFlow Lite ML模型而设计。
AIY Edge TPU 加速器是一个适用于现有系统的神经网络协处理器,一个加速棒。
AIY Edge TPU Dev开发板 是一个带搭载Edge TPU的单板计算机。类似于NVIDIA Jetson Nano。下图左边为树莓派,中间为Google Edge TPU Dev,右边为NVIDIA Jetson Nano
其Edge TPU是对于TensorFlow Lite有专门优化的,在计算速度上强于Jetson Nano。
优势:
- 云端非常强大
- 文档支持良好
- 对于TensorFlow有专门优化
不足:
- 国内可能不支持
瑞芯微电子
国内的一家提供相关解决方案的厂家。主要为为高端智能硬件、手机周边、平板电脑、电视机顶盒、工控等多个领域提供专业芯片解决方案。
目前许多门禁系统的人脸识别部分,有许多使用的是瑞芯的RK3288或者RK3399(性能更强)系列。均使用arm内核。
Others
AI加速计算,如:Intel Movidius神经计算棒(可以结合树莓派使用,即支持Linux操作系统)
华为旗下的高端芯片企业。主打AI处理器。也提供了许多领域的解决方案:如:IoT,Face Cam,门禁系统等的解决方法。主要偏向于高端市场。