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上运行模型。整个开发使用流程如下所示。

image-20201004205847255

其主要应用领域就用手机AI、IoT领域等。

优势:

  • 有完整的软件+硬件方案
  • 模型建立后部署方便
  • 支持AI的晓龙芯片性能强大,因为是SOC,一个芯片实现了非常多的功能

不足:

  • Data Center支持有限
  • 目前国际形势可能导致不方便购买其解决方案(还未详细了解)

    Cambricon 寒武纪

寒武纪是国内的一家目前在智能芯片市场上很出名的企业。是一家国内提供智能芯片,满足:有终端硬件+云平台的需求。寒武纪 LINK

寒武纪同样也有几款主打的AI加速芯片。同时他也有一个云平台——寒武纪人工智能开发平台(Cambricon NeuWare)是寒武纪专门针对其云、边、端的智能处理器产品打造的软件开发平台, Neuware采用端云一体的架构,可同时支持寒武纪云、边、端的全系列产品。寒武纪终端IP、边缘端芯片及云端芯片共享同样的软件接口和完备生态,可以方便地进行智能应用的开发,迁移和调优。

开发者可以借助云端丰富的计算资源进行算法模型的解析与调试,利用Neuware生成离线模型,并能够在任意搭载寒武纪智能终端IP的设备运行,解决了终端调试手段受硬件资源限制的问题。

下图为其端云一体业务部署流程。

image-20201004211854078

下图为其软件栈。

image-20201004211515460

优势:

  • 国内的方案,购买、实施、使用相对方便
  • 有专门的云平台

不足:

  • 真实性能和效果未知
  • 其云端的重点好像是主要用于调试和部署

NVIDIA Jetson 系列

NVIDIA Jetson 系列。GPU大厂的解决方法,据我所知,在机器人领域使用很多。其Jetson系列都有GPU,且可运行Linux操作系统。比如:我原来所在北邮机器人队,需要摄像头进行一些较大运算量算法时,就使用的是Jetson系列的TX2。

其主打:适用于新一代自主机器的嵌入式系统;NVIDIA Jetson:适用于一切自主机器的 AI 平台。Jetson系统所提供的性能和能效可提高自主机器软件的运行速度,而且功耗更低。每个系统都是一个完备的模块化系统 (SOM),具备 CPU、GPU、PMIC、DRAM 和闪存,可节省开发时间。自然也具有可扩展性,比如:支持USB,串口,HDMI等接口(不同的型号不太一样)。

其主要有四个如下的产品,从左至右性能依次提升。(当然价格和功耗也会提升)

image-20201005210658302

例如:广泛用于智能小车、比较需要计算量的智能产品中的Jetson Nano。

Jetson Nano 模块是一款低成本的 AI 计算机,具备超高的性能和能效,可以运行现代 AI 工作负载,并行运行多个神经网络,以及同时处理来自多个高清传感器的数据。这使其成为向嵌入式产品中添加高级 AI 的理想的入门级选项。

下图为Jetson Nano的照片,可以看到其支持多种外设接口。淘宝链接

image-20201005210954346

而且其另一大优势时都是NVIDIA一家的,其GPU支持CUDA,这样例如:pytorch等可以很方便的部署。

Jetson 平台由 Jetpack SDK 提供支持,包括板级支持包 (BSP)、Linux 操作系统、NVIDIA CUDA(R),并且兼容第三方平台。开发者可以利用 DeepStream SDK 在 Jetson 上快速构建和部署高效的视频分析管线。

下面是其软件栈:

image-20201005211204653

优势:

  • 产品种类多,可选择空间大
  • 模型部署方便
  • 购买比较方便(淘宝即可)
  • 教程和应用实例比较多

不足:

  • 加速性能由于不同的GPU架构可能差距很大

TODO: Data Center 调研

Google TPU

Cloud TPU

张量处理单元 (TPU) 是专门设计用于处理机器学习应用计算需求的 ASIC 设备。有着很完善的文档,教程等。链接

Edge TPU

作为Cloud TPU的补充,目前Edge TPU主要作用于推理,专为在边缘运行TensorFlow Lite ML模型而设计。

AIY Edge TPU 加速器是一个适用于现有系统的神经网络协处理器,一个加速棒。

image-20201005214027249

AIY Edge TPU Dev开发板 是一个带搭载Edge TPU的单板计算机。类似于NVIDIA Jetson Nano。下图左边为树莓派,中间为Google Edge TPU Dev,右边为NVIDIA Jetson Nano

image-20201005214053059

其Edge TPU是对于TensorFlow Lite有专门优化的,在计算速度上强于Jetson Nano。

优势:

  • 云端非常强大
  • 文档支持良好
  • 对于TensorFlow有专门优化

不足:

  • 国内可能不支持

瑞芯微电子

国内的一家提供相关解决方案的厂家。主要为为高端智能硬件、手机周边、平板电脑、电视机顶盒、工控等多个领域提供专业芯片解决方案。

目前许多门禁系统的人脸识别部分,有许多使用的是瑞芯的RK3288或者RK3399(性能更强)系列。均使用arm内核。

image-20201020114444744

Others

AI加速计算,如:Intel Movidius神经计算棒(可以结合树莓派使用,即支持Linux操作系统)

华为旗下的高端芯片企业。主打AI处理器。也提供了许多领域的解决方案:如:IoT,Face Cam,门禁系统等的解决方法。主要偏向于高端市场。