0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用开源Glow编译器优化神经网络加速边缘计算的机器学习能力

电子设计 来源:贤集网 作者:IOT感应者 2021-03-01 14:31 次阅读

机器学习深度学习技术如何快速发展,这为需要寻求方法来优化运行在具有功耗,处理和内存限制的微型边缘设备上,进行ML应用程序的开发人员带来了新的挑战。

易于使用的开源开发工具,将简化在嵌入式平台上创建ML /深度学习项目的过程。

正文:

物联网IoT)已将数十亿台互联设备带入到我们的家庭、汽车、办公室、医院、工厂和城市中。物联网先驱者设想了庞大的无线传感器节点网络,这些网络将数万亿字节的数据传输到云中进行聚合、分析和决策。但是,近年来,基于物联网的,基于云的智能愿景正在被一种新的模式所取代:边缘智能。

利用机器学习(ML)技术的最新进展,嵌入式开发人员正在将人工智能AI)的功能扩展到更靠近网络边缘的地方。当今的低功耗IoT设备现在能够在本地运行复杂的ML和深度学习算法,而无需云连接,从而最大程度地减少了对延迟,性能,安全性和隐私性的担忧。新兴的ML /神经网络边缘应用包括智能个人助理、工厂机器人、联网汽车中的语音和面部识别、支持AI的家庭安全摄像头以及对白色家电和工业设备的预测性维护。

机器学习市场正在迅速扩展,智能边缘应用的用例正在呈指数增长。根据TIRIAS Research的调查,到2025年,将有98%的边缘设备使用某种形式的机器学习。根据这些市场预测,到那时,预计将有18-25亿的设备包括ML和深度学习功能。2021年初,随着越来越多的嵌入式开发人员可以访问精简ML项目所需的低功耗设备、开发框架和软件工具,ML /深度学习应用程序将成为主流。

适应主流开发人员需求的ML Dev环境

直到最近,ML开发环境仍主要用于支持在ML和深度学习应用程序方面具有丰富专业知识的开发人员。但是,为了大规模地加速ML应用程序的开发,必须使ML支持变得更易于使用,并且对于主流的嵌入式开发人员来说,其支持范围越来越广。

与经典的基于云的AI系统相比,ML的出现相对较新,具有独特的需求。嵌入式设计的IC电源和系统级资源受到更多限制,需要新的和不同的软件工具。ML开发人员还为智能边缘应用程序设计了全新的开发流程,包括模型训练,目标设备上的推理引擎部署以及系统集成的其他方面。

在对ML模型进行训练,优化和量化之后,下一阶段的开发涉及将模型部署在目标设备(例如MCU或应用处理器)上,并允许其执行推理功能。

在进一步介绍之前,让我们仔细研究一下用于ML应用程序的新型目标设备:跨界微控制器(MCU)。术语“分频器(Crossover)”是指结合了基于应用处理器的性能、功能,但具有易用性,低功耗和实时操作且具有MCU的中断和低延迟等特点。典型的Crossover MCU,例如NXP的i.MX RT系列设备,包含一个Arm Cortex-M内核,其运行速度为300 MHz至1 GHz。这些MCU具有足够的处理性能以支持ML推理引擎,从而无需额外的ML加速,以及功耗受限的边缘应用所需的低功耗。

理想情况下,嵌入式开发人员可以使用全面的ML开发环境(包括软件工具,应用程序示例和用户指南)在目标设备上部署开源推论引擎。例如,恩智浦的eIQ环境为Arm NN,ONNX运行引擎,TensorFlow Lite和Glow神经网络编译器提供推理支持。开发人员可以遵循简单的“自带模型”(BYOM)流程,使他们能够使用基于公共或私有云的工具来构建经过训练的模型,然后将模型转移到eIQ环境中,以为适当的芯片优化推理引擎。

如今,许多开发人员当前及将来的嵌入式项目都需要ML和深度学习工具和技术。同样,对于这些开发人员中的大多数,ML必须变得更加全面并且易于使用。全面的支持包括端到端的工作流程,使开发人员能够导入他们的训练数据,为他们的应用选择最佳模型,训练模型,执行优化和量化,完成目标配置文件,然后进行最终生产。

对于大多数主流开发人员来说,易用性意味着可以访问简化的,优化的用户界面,这些界面隐藏了底层细节并管理ML开发过程的复杂性。理想的用户界面允许开发人员勾选一些选项,然后轻松导入训练数据并将模型部署在目标设备上。

可用于帮助开发人员构建和部署ML应用程序和神经网络模型的处理平台,框架,工具和其他资源的数量正在不断增加。让我们研究几种开发工具和框架,以及它们如何帮助开发人员简化ML开发项目。

使用机器学习工具套件简化工作流程

Au-Zone Technologies的DeepView ML工具套件是直观的图形用户界面(GUI)和工作流程的一个很好的示例。它使从嵌入式设计人员到数据科学家再到ML专家的所有技能水平的开发人员,都可以导入数据集和神经网络模型,然后在各种目标设备上训练和部署这些模型和工作负载。



恩智浦最近增强了其eIQ开发环境,使其包括DeepView工具套件,以帮助开发人员简化其ML项目(图1)。新的eIQ ML工作流程工具为开发人员提供了高级功能,可以在NXP器件上进行修剪,量化,验证和部署公共或专有神经网络模型。目标上的图形级概要分析功能为开发人员提供了运行时见解,以优化神经网络模型架构,系统参数和运行时性能。

2. Glow编译器使用计算图为ML应用程序生成优化的机器代码。

像Glow编译器这样的ML工具可以简化ML /神经网络开发,并增强低功耗MCU的边缘处理性能。 GitHub上的Glow的现成标准版本与设备无关,使开发人员可以灵活地为领先的处理器架构(包括基于Arm Cortex-A和Cortex-M内核的架构)编译神经网络模型。

为了帮助简化ML项目,恩智浦将Glow与eIQ开发环境及其MCUXpresso SDK集成在一起。它将Glow编译器和量化工具组合到易于使用的安装程序中,并附有详细的文档以帮助开发人员快速运行其模型。这种经过优化的Glow实施针对Arm Cortex-M内核和Cadence Tensilica HiFi 4 DSP,并为i.MX RT系列MCU提供了特定于平台的优化。

恩智浦使用CIFAR-10数据集作为神经网络模型基准,最近测试了i.MX RT1060 MCU,以评估不同Glow编译器版本之间的性能差异。恩智浦还在i.MX RT685 MCU上进行了测试,i.MX RT685 MCU是目前唯一具有针对处理神经网络操作员进行了优化的集成DSP的i.MX RT系列设备。

i.MX RT1060包含600 MHz Arm Cortex-M7、1 MB SRAM,以及针对实时应用优化的功能,例如高速GPIO,CAN-FD和同步并行NAND / NOR / PSRAM控制器。 i.MX RT685包含一个600 MHz的Cadence Tensilica HiFi 4 DSP内核,一个300 MHz的Arm Cortex-M33内核和4.5 MB的片上SRAM,以及与安全相关的功能。

恩智浦的Glow实施与Cadence的神经网络库NNLib紧密结合。尽管RT685 MCU的HiFi 4 DSP内核旨在增强语音处理能力,但与NNLib库一起用作Glow的LLVM后端时,它也能够加速各种神经网络。尽管NNLib与CMSIS-NN类似,但它提供了一组针对HiFi4 DSP优化的更全面的手动调谐运算符。基于相同的CIFAR-10基准示例,与标准的Glow编译器实现相比,HiFi4 DSP将神经网络操作的性能提高了25倍。

使用PyTorch进行基于MCU的ML开发

PyTorch是一个开放源代码的机器学习框架,主要由Facebook的AI研究实验室开发,并基于Torch库,已被开发人员广泛用于创建ML /深度学习项目和产品。PyTorch是MCU目标的不错选择,因为它对处理平台的限制极小,并且能够生成ONNX模型,该模型可以由Glow进行编译。

由于开发人员可以通过PyTorch直接访问Glow,因此他们可以在同一开发环境中构建和编译模型,从而省去了步骤并简化了编译过程。开发人员还可以直接从Python脚本生成捆绑包,而无需先生成ONNX模型。

直到最近,ONNX和Caffe2还是Glow支持的唯一输入模型格式。 PyTorch现在可以将模型直接导出为ONNX格式以供使用。由于以其他格式(例如TensorFlow)创建了许多知名模型,因此可以使用

开源模型转换工具将其转换为ONNX格式。流行的格式转换工具包括MMdnn和tf2onnx,MMdnn是Microsoft支持的工具集,可帮助用户在不同的深度学习框架之间进行互操作;tf2onnx用于将TensorFlow模型转换为ONNX。

结论

机器学习和深度学习技术继续快速发展。同时,我们看到能够运行ML /深度学习算法并无需云干预就能做出自主决策的IoT和其他边缘设备的强劲市场势头。尽管将信息从云迁移到网络边缘是不可阻挡的趋势,但随着开发人员寻求优化ML应用程序以使其在具有功耗,处理和内存约束的微型边缘设备上运行的方法,挑战也随之而来。

正如建筑师和建筑商需要专门的工具来建造未来的房屋和城市一样,主流开发商也需要优化,易于使用的软件工具和框架,以简化在嵌入式平台上创建ML /深度学习项目的过程。 DeepView ML工具套件,Glow ML编译器和PyTorch框架例证了不断增长的开发资源浪潮,这些资源将帮助嵌入式开发人员创建下一代智能边缘应用程序。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98716
  • 物联网
    +关注

    关注

    2867

    文章

    41600

    浏览量

    358297
  • 机器学习
    +关注

    关注

    66

    文章

    8116

    浏览量

    130546
  • 深度学习
    +关注

    关注

    73

    文章

    5236

    浏览量

    119896
  • pytorch
    +关注

    关注

    2

    文章

    760

    浏览量

    12825
收藏 人收藏

    评论

    相关推荐

    FPGA芯片用于神经网络算法优化的设计实现方案

    前言 AI芯片(这里只谈FPGA芯片用于神经网络加速)的优化主要有三个方面:算法优化编译器优化
    的头像 发表于 09-29 11:36 4466次阅读
    FPGA芯片用于<b class='flag-5'>神经网络</b>算法<b class='flag-5'>优化</b>的设计实现方案

    使用稀疏计算和Facebook Glow进行神经网络优化

      修剪神经网络正迅速成为神经网络开发人员的一种常见做法,因为他们试图在不牺牲准确性的情况下提高性能。与此同时,Facebook Glow 正在解决处理器碎片化问题,以免阻碍人工智能的采用。
    发表于 07-06 14:37 770次阅读
    使用稀疏<b class='flag-5'>计算</b>和Facebook <b class='flag-5'>Glow</b>进行<b class='flag-5'>神经网络</b><b class='flag-5'>优化</b>

    Glow神经网络编译器首次应用于MCU,面向边缘机器学习

    率先开发PyTorch的Facebook推出了开源社区项目Glow(Graph Lowering神经网络编译器),其目的是提供优化,提高一系
    发表于 08-05 14:32 1440次阅读

    粒子群优化模糊神经网络在语音识别中的应用

    一定的早熟收敛问题,引入一种自适应动态改变惯性因子的PSO算法,使算法具有较强的全局搜索能力.将此算法训练的模糊神经网络应用于语音识别中,结果表明,与BP算法相比,粒子群优化的模糊神经网络
    发表于 05-06 09:05

    超低功耗FPGA解决方案助力机器学习

    IoT应用。通过提供结合了灵活、超低功耗FPGA硬件和软件解决方案、功能全面的机器学习推理技术,Lattice sensAI将加速网络边缘
    发表于 05-23 15:31

    发布MCU上跑的轻量神经网络包 NNoM, 让MCU也神经一把

    神经网络包。AIoT那么火,为何大家却止步于科普文?因为现成的机器学习框架都太复杂太难用。NNoM从一开始就被设计成提供给嵌入式大佬们的一个简单易用的神经网络框架。你不需要会Tens
    发表于 05-01 19:03

    机器学习神经网络参数的代价函数

    吴恩达机器学习笔记之神经网络参数的反向传播算法
    发表于 05-22 15:11

    ETPU-Z2全可编程神经网络开发平台

    )EEP-TPU算法编译神经网络算法的开发工作通常在X86架构的服务上完成,而EEP-TPU则是一种与X86完全不同的计算架构。因此,上述训练所得的神经网络结构和权重参数文件,需要按
    发表于 05-18 17:13

    基于带NNIE神经网络海思3559A方案边缘计算主板开发及接口定义

    (4GB/8GB可选) ,eMMC(8GB/16GB/32GB/64GB/128GB可选)-双核NNIE@840MHz 神经网络加速引擎-四核 DSP@700MHz,32K I-Cache /32K
    发表于 06-20 11:32

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反
    发表于 07-12 08:02

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达
    发表于 09-07 07:43

    边缘计算的相关资料推荐

    面向边缘计算的嵌入式FPGA平台卷积神经网络的构建 通过设计卷积神经网络函数中的网络层间可复用的加速器
    发表于 12-23 07:26

    恩智浦eIQ® Neutron神经处理单元

    的支持。将恩智浦开发的硬件加速和软件支持相结合,用户能够利用恩智浦边缘处理产品组合的优势,并保证即使在部署了设备并投入实地使用之后,也能更高效地支持新兴机器学习
    发表于 02-17 13:51

    卷积神经网络简介:什么是机器学习

    抽象人工智能 (AI) 的世界正在迅速发展,人工智能越来越多地支持以前无法实现或非常难以实现的应用程序。本系列文章解释了卷积神经网络 (CNN) 及其在 AI 系统中机器学习中的重要性。CNN 是从
    发表于 02-23 20:11

    基于神经网络优化计算实验

    掌握连续Hopfield神经网络的结构和运行机制,理解连续Hopfield神经网络用于优化计算的基本原理,掌握连续Hopfield神经网络
    发表于 05-31 17:02 43次下载