Aug 14, 2020

边缘计算:物联网“草根”的崛起


如今,我们每个人都置身于一个基于互联网的世界并对此习以为常。可你是否认真思考过,互联网对我们生活最大的改变是什么?要我说,应该是人们对信息的消费模式的改变——在互联网世界,人们对于信息的获取和分发,不再依赖于有限的渠道,每个“草根”用户都可以成为一个独立完成信息接收、处理、传播的更有价值的个体;传统的那种依赖单一意见权威的模式已经被打破,一种“去中心化”的“草根时代”已然形成。可你是否注意到,这种与互联网世界“去中心化”类似的进程,也正在物联网世界发生呢?这一进程的推手就是“边缘计算”。

边缘计算的缘起

十多年前,云计算的概念开始兴起。那时的人们意识到,通过将以往分散的计算资源集合起来,交给一个远在“云端”的数据中心集中处理,是一种更高效的方式,且可以转化为灵活可定制的服务远程分发给分布在各处的客户。之后物联网应用的快速扩张,在很大程度上也是得益于这种云计算的加持——网络边缘端的设备只需负责采集数据和执行指令等简单的工作,而将复杂的计算任务传输到云端去完成,这让物联网边缘节点的设计和部署大为简化。 
但随着应用的发展和需求的变化,这种单一的、集中化的云计算模式也遇到了挑战,其固有的一些弱点也逐渐显现出来:

  • 物联网中急剧增加的数据量,对于网络传输资源的消耗极其巨大。如果所有数据都要被送到云端做处理,再大的带宽也会难堪重负。
  • 云计算这种远程数据处理模式,不可避免会有延时。这对自动驾驶和工业控制这类实时性要求非常严苛的物联网应用而言,显然不能接受。
  • 信息在传输的过程中会有安全风险,而且一些用户也不希望自己的敏感数据在云端异地存储。这些关乎安全和隐私的问题日渐突出。
  • 在能耗方面,有研究表明,云计算中数据传输所消耗的能量比数据处理所需能量高一个数量级。从整个计算架构来看,这显然是不经济的。

解决所有这些云计算问题的答案,就是“边缘计算”。所谓边缘计算,就是将以往在云端完成的计算任务,下放到网络边缘端或靠近边缘端的设备中去完成,这样一方面可以对来自边缘端的数据进行更及时的处理和响应,另一方面也可以对数据进行“初加工”后再传输到云端做进一步的深加工处理,有效缓解网络传输和数据中心的工作负荷,达到一个最优的计算资源配置。

可见,边缘计算可以就近直接处理来自现实世界的数据,减少需要搬移传输的数据量,避免了延迟,提高了隐私和安全性,即使在网络故障时也可以提供服务,在可靠性和用户体验上也会有加分……作为传统云计算模式的完善和补充,边缘计算可谓是“真香”。


在边缘上实现AI
认识到了边缘计算的价值之后,人们进一步考虑的就是,我们可以赋予边缘计算哪些能力? 随着思考和实践的深入,这个答案无疑是令人兴奋的。 而其中最大的“兴奋点”,就是“在边缘计算上实现人工智能(AI)”,这会让我们身边的边缘设备变得更“聪明”,能够从数据中洞察出有价值的信息,真正读懂用户的“心思”,提供更完美的用户体验。 
实现一个完整的AI应用需要两个步骤:训练(Training)和推理(Inference)。训练是指将大量的数据代入神经网络运算并反复迭代,最终训练出一个人工智能模型,这个过程就像是我们通过已知知识的学习获得一个技能或工具;而推理则是利用这个训练出来的模型,对新的输入数据进行处理并做出正确判断,可以将此过程看做是学以致用,利用掌握的技能或工具去解决未知世界的新问题。
其中,模型训练所需的计算量是巨大的。以百度的一个语音识别模型为例,一个训练周期需要4TB的训练数据,以及20 EFLOPS的计算能力,相当于每秒2x1019的数学运算,因此这个过程通常是在云端的数据中心完成的。而推理过程,是每次针对一个输入项进行处理并做出决策,这个过程对计算资源的要求相对没有那么高,完全可以放在网络的边缘端来完成,从而形成一个“训练在云端、推理在边缘”的计算架构。这样一来,网络边缘产生的数据,经过边缘端的推理,处理的结果直接输出给用户,这对于提升服务质量和用户体验大有好处。
如果你觉得上面的描述还有些抽象,那就试想一下自动驾驶的汽车对于路面交通状况作出及时恰当的反应,或者是一个支持离线处理的本地化人脸/声音识别系统带给你的便利,这些被赋予了AI能力的新概念边缘应用都将使我们的生活为之一变。

当然,实现这样的能够支持AI的边缘计算,还是有一些技术挑战需要去克服的,其中最为关键的有两条:如何实现更强的边缘计算能力,以及如何在资源受限的边缘设备部署AI应用。


优化边缘硬件的算力
更高的计算性能,可以说是云端数据中心追求的首要目标,而边缘设备面临的情况则截然不同。在边缘节点工作的嵌入式设备,往往是用有限的计算资源完成特定的工作,会受到功耗、成本、外形等很多因素的制约。因此,要在边缘设备中实现更高的计算性能,特别是要支持AI推理,就需要经过优化的硬件处理架构,以满足边缘端特定的要求。 
在确定边缘计算硬件处理架构时,FPGA是一个不错的选择。由于具有硬件可编程的特性,FPGA可以摆脱冯·诺依曼架构的束缚,无需指令就可完成工作,无论是实现数据并行,还是实现流水线并行处理,它都可以胜任。这种灵活性在适应不断迭代的AI算法,提供最优加速性能方面,特别有价值。近些年发展起来的集成了Arm处理器的FPGA SoC,更是将处理器的软件可编程性与FPGA的硬件可编程性完美整合,非常适合性能受限、功耗苛刻、实时性要求高的网络边缘端的AI推理计算。

图1:Xilinx推出的全系列FPGA SoC产品(图源:Xilinx)
扫码获取详情


当然,在应对边缘计算方面,FPGA不是唯一选择。通过在应用处理器中添加专门的神经网络计算引擎,形成一个异构计算平台,来应对AI应用中相关机器学习算法的要求,也是一条技术路径。在针对特定应用方面,这样的设计显然更具有性能和功耗方面的优势。

图2:NXP i.MX 8M Plus处理器中集成了神经网络处理单元(NPU),以应对边缘计算中的AI应用(图源:NXP)
人们对边缘计算架构的优化并没有就此止步。基于MCU的边缘设备数量巨大,能否在这些性能更“低”的通用MCU上实现AI,也是这些年芯片厂商竞争的一个新赛道。比如NXP Semiconductors(NXP)这两年力推的i.MX RT跨界MCU,就是一个非常成功的尝试。所谓“跨界”,是指i.MX RT采用了MCU的内核(Arm Cortex-M7),但基于MPU的架构,因此可以在实现比肩MPU的高性能和丰富功能同时,兼具传统MCU的易用性、低功耗、低成本的特性,在传统的MPU和MCU之间,让开发者多了一种选择。
前不久NXP展示了一款基于i.MX RT106F的人脸识别解决方案,其在硬件上完全替代了传统的“MPU+PMIC”的架构,无需昂贵的DDR,大大降低最终商用产品的成本,配合优化的软件推理引擎,使这个方案极具性价比优势。目前,NXP这个基于MCU的人脸识别方案已经被智能门锁产品所采用,未来类似i.MX RT的这种通用MCU在边缘计算上的“表演”,十分让人期待。

图3:基于i.MX RT106F的商用人脸识别智能门锁(图源:深岚视觉科技)

图4:NXP Semiconductors i.MX RT106F交叉处理器


不可或缺的软件工具
优化的计算架构和芯片产品,让边缘计算获得了可靠的硬件支撑,而要将AI应用快速高效地部署在这个硬件平台上,还需要软件工具来帮忙,这个软件工具的作用,就是对AI模型进行优化,使其移植到特定的硬件推理引擎上,在资源受限的边缘设备上完成部署。
我们以Xilinx推出的VitisAI开发环境为例,对此类软件工具的概貌做个了解。Vitis AI由优化的IP、工具、库、模型和示例设计组成,其目的就是在Xilinx硬件平台上部署AI推理功能。
在Vitis AI的架构中,主要的模块包括:

  • AI模型库(Module Zoo) 
    提供一系列预先优化、可在Xilinx 器件上部署的模型,支持主流框架和最新的模型,完成深度学习任务。
  • AI优化器(AI Optimizer) 
    利用模型压缩技术,在对精度影响极小的情况下,将模型的复杂性降低5至50倍,适应边缘计算的要求。
  • AI量化器(AI Quantizer)
    通过将32位浮点权值和激活量转换为INT8这样的定点,降低计算复杂度,减少内存带宽占用,提高速度,减低功耗。
  • AI编译器(AI Compiler)
    将AI模型映射至高效指令集及数据流。
  • AI配置器(AI Profiler)
    有助于程序员深入分析AI推断实现方案的效率和利用率的性能分析器。
  • AI库(AI Library)
    提供一系列轻量级C++及Python API,其可实现便捷的应用开发。


图5:Xilinx推出的Vitis AI开发环境(图源:Xilinx)
从上述的介绍我们不难看出,Vitis AI这类边缘计算软件工具的核心作用就是:为开发者提供支持主流NN架构的可用模型;对模型进行压缩和优化以适应边缘计算的要求;提供完整的软件工具和开发环境,支持模型在硬件平台上的部署;集成相关更丰富的设计资源。
与Xilinx的Vitis AI有异曲同工之妙的,还有NXP推出的eIQ机器学习软件开发环境,它包括推理引擎、神经网络编译器和优化库,支持在包括通用MCU、i.MX RT跨界MCU和i.MX应用处理器等NXP广泛的硬件产品上部署机器学习模型。而且eIQ已经被集成到了NXP的MCUXpresso软件开发套件和Yocto开发环境中,成为边缘应用嵌入式开发工具链中不可或缺的一部分。

图6:eIQ机器学习软件平台支持的NXP硬件产品(图源:NXP)

值得一提的是,NXP还特别推出了针对汽车领域应用的eIQ Auto工具包,专门用于NXP的S32V处理器和ADAS开发。eIQ Auto工具包的推理引擎包括一个后端,可自动选择给定神经网络模型的工作负载的最佳分区,涵盖器件中的所有不同计算引擎。这种针对垂直领域的产品细分,也代表了边缘计算软件工具的一个发展趋势。


图7:NXP S32V视觉和传感器融合处理器


物联网的“草根”时代

总之,有了优化的硬件作为基石,再通过不断完善的软件工具让强大的AI功能在边缘应用上“落地”,由此打造出的边缘设备将被赋予更多的可能性。这些以往遍布我们周围,默默工作着的物联网边缘设备,其形态、作用和价值也将被重新定义。



如果说与云端高大上的数据中心相比,物联网边缘设备显得有些“草根”,那么边缘计算的兴起无疑宣示着一个物联网的“草根”时代的到来。根据IDC的预测,到2021年,43%的物联网计算将发生在边缘。这是一个不低的起点,边缘计算的未来可期!



联系我们



宽泛科技专注为人工智能、边缘计算、影视后期、动漫设计、商务应用等领域,

提供基于人脸识别、深度学习、视觉计算、VR/AR/MR、桌面虚拟化、

数据存储及数据可视化、视讯会议等信息化解决方案及服务。

如果您有合作需求或宝贵建议,欢迎来信。

邮箱:hezuo@kuanfans.com

合作热线:(021) 5415 5559


官方网站:www.kuanfans.com