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

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

3天内不再提示

如何采用带专用CNN加速器的AI微控制器实现CNN的硬件转换

analog_devices 来源:未知 2023-05-16 01:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文重点解释如何使用硬件转换卷积神经网络(CNN),并特别介绍使用带CNN硬件加速器的人工智能(AI)微控制器物联网(IoT)边缘实现人工智能应用所带来的好处。

AI应用通常需要消耗大量能源,并以服务器农场或昂贵的现场可编程门阵列(FPGA)为载体。AI应用的挑战在于提高计算能力的同时保持较低的功耗和成本。当前,强大的智能边缘计算正在使AI应用发生巨大转变。与传统的基于固件的AI计算相比,以基于硬件的卷积神经网络加速器为载体的智能边缘AI计算具备惊人的速度和强大的算力,开创了计算性能的新时代。这是因为智能边缘计算能够让传感器节点在本地自行决策而不受5GWi-Fi网络数据传输速率的限制,为实现之前难以落地的新兴技术和应用场景提供了助力。例如,在偏远地区,传感器级别的烟雾/火灾探测或环境数据分析已成为现实。这些应用支持电池供电,能够工作很多年的时间。本文通过探讨如何采用带专用CNN加速器的AI微控制器实现CNN的硬件转换来说明如何实现这些功能。

采用超低功耗卷积神经网络加速器的人工智能微控制器

MAX78000是一款有超低功耗CNN加速器的AI微控制器片上系统,能在资源受限的边缘设备或物联网应用中实现超低功耗的神经网络运算。其应用场景包括目标检测和分类、音频处理、声音分类、噪声消除、面部识别、基于心率等健康体征分析的时间序列数据处理、多传感器分析以及预测性维护。

图1为MAX78000的框图,其内核为带浮点运算单元的Arm Cortex-M4F内核,工作频率高达100 MHz。为了给应用提供足够的存储资源,MAX78000还配备了512 kB的闪存和128 kB的SRAM。该器件提供多个外部接口,例如I2C、SPI、UART,以及用于音频的I2S。此外,器件还集成了60 MHz的RISC-V内核,可以作为一个智能的直接存储器访问(DMA)引擎从/向各个外围模块和存储(包括闪存和SRAM)复制/粘贴数据。由于RISC-V内核可以对AI加速器所需的

90f36a82-f342-11ed-90ce-dac502259ad0.svg

图1.MAX78000的结构框图

传感器数据进行预处理,因而Arm内核在此期间可以处于深度睡眠模式。推理结果也可以通过中断触发Arm内核在主应用程序中执行操作,通过无线传输传感器数据或向用户发送通知。

具备用于执行卷积神经网络推理的专用硬件加速器单元是MAX7800x系列微控制器的一个显著特征,这使其有别于标准的微控制器架构。该CNN硬件加速器可以支持完整的CNN模型架构以及所有必需的参数(权重和偏置),配备了64个并行处理器和一个集成存储器。集成存储器中的442 kB用于存储参数,896 kB用于存储输入数据。不仅存储在SRAM中的模型和参数可以通过固件进行调整,网络也可以实时地通过固件进行调整。器件支持的模型权重为1位、2位、4位或8位,存储器支持容纳多达350万个参数。加速器的存储功能使得微控制器无需在连续的数学运算中每次都要通过总线获取相关参数——这样的方式通常伴有高延迟和高功耗,代价高昂。CNN加速器可以支持32层或64层的网络,具体层数取决于池化函数。每层的可编程图像输入/输出大小最多为1024 × 1024像素。

CNN硬件转换:功耗和推理速度比较

CNN推理是一项包含大型矩阵线性方程运算的复杂计算任务。Arm Cortex-M4F微控制器的强大能力可以使得CNN推理在嵌入式系统的固件上运行。但这种方式也有一些缺点:在微控制器上运行基于固件的CNN推理时,计算命令和相关参数都需要先从存储器中检索再被写回中间结果,这会造成大量功耗和时延。

表1对三种不同解决方案的CNN推理速度和功耗进行了比较。所用的模型基于手写数字识别训练集MNIST开发,可对视觉输入数据中的数字和字母进行分类以获得准确的输出结果。为确定功耗和速度的差异,本文对三种解决方案所需的推理时间进行了测量。

911a6e3e-f342-11ed-90ce-dac502259ad0.png

表1.手写数字识别的CNN推理时间和推理功耗,基于MNIST数据集

方案一使用集成Arm Cortex-M4F处理器的MAX32630进行推理,其工作频率为96 MHz。方案二使用MAX78000的CNN硬件加速器进行推理,其推理速度(即数据输入与结果输出之间的时间)比方案一加快了400倍,每次推理所需的能量也仅为方案一的1/1100。方案三对MNIST网络进行了低功耗优化,从而最大限度地降低了每次推理的功耗。虽然方案三推理结果的准确性从99.6%下降到了95.6%,但其速度快了很多,每次推理只需0.36 ms,推理功耗降也低至仅1.1 µW。两节AA碱性电池(总共6 Wh能量)可以支持应用进行500万次的推理(忽略系统其它部分的功耗)。

这些数据说明了硬件加速器的强大计算能力可以大大助益无法利用或连接到连续电源的应用场景。MAX78000就是这样一款产品,它支持边缘AI处理,无需大量功耗和网络连接,也无需冗长的推理时间。

MAX78000 AI微控制器的使用示例

MAX78000支持多种应用,下面本文围绕部分用例展开讨论。其中一个用例是设计一个电池供电的摄像头,需要能检测到视野中是否有猫出现,并能够通过数字输出打开猫门允许猫进入房屋。

图2为该设计的示例框图。在本设计中,RISC-V内核会定期开启图像传感器并将图像数据加载到MAX78000的CNN加速器中。如果系统判断猫出现的概率高于预设的阈值,则打开猫门然后回到待机模式。

9130d598-f342-11ed-90ce-dac502259ad0.svg

图2.智能宠物门框图

开发环境和评估套件

边缘人工智能应用的开发过程可分为以下几个阶段:

第一阶段:AI——网络的定义、训练和量化

第二阶段:Arm固件——将第一阶段生成的网络和参数导入C/C++应用程序,创建并测试固件

开发过程的第一阶段涉及建模、训练和评估AI模型等环节。此阶段开发人员可以利用开源工具,例如 PyTorch 和 TensorFlow。MAX78000的GitHub网页也提供全面的资源帮助用户在考虑其硬件规格的同时使用PyTorch构建和训练AI网络。网页也提供一些简单的AI网络和应用,例如面部识别(Face ID),供用户参考。

图3显示了采用PyTorch进行AI开发的典型过程。首先是对网络进行建模。必须注意的是,MAX7800x微控制器并非都配置了支持所有PyTorch数据操作的相关硬件。因此,必须首先将ADI公司提供的ai8x.py文件包含在项目中,该文件包含MAX78000所需的PyTorch模块和运算符。基于此可以进入下一步骤构建网络,使用训练数据对网络进行训练、评估和量化。这一步骤会生成一个检查点文件,其中包含用于最终综合过程的输入数据。最后一步是将网络及其参数转换为适合CNN硬件加速器的形式。值得注意的是,虽然任何PC(笔记本、服务器等)都可用于训练网络,但如果没有CUDA显卡,训练网络可能会花费很长的时间——即使对于小型网络来说也有可能需要几天甚至几周的时间。

开发过程的第二阶段是通过将数据写入CNN加速器并读取结果的机制来创建应用固件。第一阶段创建的文件通过#include指令集成到C/C++项目中。微控制器的开发环境可使用Eclipse IDE和GNU工具链等开源工具。ADI公司提供的软件开发套件(Maxim Micros SDK (Windows))也已经包含了所有开发必需的组件和配置,包括外设驱动以及示例说明,帮助用户简化应用开发过程。

9147db76-f342-11ed-90ce-dac502259ad0.svg

图3.AI开发过程

成功通过编译和链接的项目可以在目标硬件上进行评估。ADI开发了两种不同的硬件平台可供选用:图4为 MAX78000EVKIT ,图5为 MAX78000FTHR ,一个稍小的评估板。每个评估板都配有一个VGA摄像头和一个麦克风。

915eb2ba-f342-11ed-90ce-dac502259ad0.jpg

图4.MAX78000评估套件

91700948-f342-11ed-90ce-dac502259ad0.jpg

图5.MAX78000FTHR评估套件

结论

以前,AI应用必须以昂贵的服务器农场或FPGA为载体,并消耗大量能源。现在,借助带专用CNN加速器的MAX78000系列微控制器,AI应用依靠单组电池供电就可以长时间运行。MAX78000系列微控制器在能效和功耗方面的性能突破大大降低了边缘AI的实现难度,使得新型边缘AI应用的惊人潜力得以释放。


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

    关注

    6

    文章

    4680

    浏览量

    16592

原文标题:如何采用带专用CNN加速器的AI微控制器实现CNN的硬件转换

文章出处:【微信号:analog_devices,微信公众号:analog_devices】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    边缘计算中的AI加速器类型与应用

    人工智能正在推动对更快速、更智能、更高效计算的需求。然而,随着每秒产生海量数据,将所有数据发送至云端处理已变得不切实际。这正是边缘计算中AI加速器变得不可或缺的原因。这种专用硬件能够直
    的头像 发表于 11-06 13:42 414次阅读
    边缘计算中的<b class='flag-5'>AI</b><b class='flag-5'>加速器</b>类型与应用

    一些神经网络加速器的设计优化方案

    特征图保留不变,完成和所有相关卷积核点积以后再加载,最多复用 R*R*M 次。 3.不同网络模型的效果 如图所示,后者相对于前者,减少了连线资源和复杂度。 4.DNN加速器空间架构片上存储
    发表于 10-31 07:14

    STEVAL-DPSG474数字电源控制套件深度解析与技术实践

    编程的适配器板。STM32G4混合信号微控制器 (MCU) 结合了运行频率为170MHz的32位Arm® Cortex®-M4内核(FPU和DSP指令)。这些特性还结合了三种不同的硬件加速器:ART Accelerator™、
    的头像 发表于 10-30 10:56 324次阅读
    STEVAL-DPSG474数字电源<b class='flag-5'>控制</b>套件深度解析与技术实践

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    CNN算法简介 我们硬件加速器的模型为Lenet-5的变型,网络粗略分共有7层,细分共有13层。包括卷积,最大池化层,激活层,扁平层,全连接层。下面是各层作用介绍: 卷积层:提取特征。“不全
    发表于 10-29 07:49

    HXS320F28035数字信号控制器

    RISC-V架构,提供高效指令执行能力,同时3.3V供电降低功耗。专用硬件加速器:CLA(控制加速器)支持浮点运算,可独立处理复杂控制算法
    发表于 10-22 09:05

    Microchip AVR64EA28/32/48微控制器:高性能与低功耗的完美融合

    Microchip Technology AVR® EA系列微控制器 (MCU) 采用硬件乘法器的AVR® CPU,时钟运行速度高达20MHz。这些
    的头像 发表于 10-11 14:50 322次阅读
    Microchip AVR64EA28/32/48<b class='flag-5'>微控制器</b>:高性能与低功耗的完美融合

    PIC16F13145微控制器技术解析:CLB架构与低功耗设计

    PIC16F13145微控制器采用可配置逻辑块(CLB),其中包含32个独立逻辑单元,并带有可自定义的查找表(LUT),用于基于硬件的自定义逻辑。 如此可以实现独立于CPU的运行,从
    的头像 发表于 10-09 16:05 353次阅读
    PIC16F13145<b class='flag-5'>微控制器</b>技术解析:CLB架构与低功耗设计

    Analog Devices / Maxim Integrated MAX78002人工智能微控制器数据手册

    AI处理与超低功耗微控制器相结合。该款基于硬件CNN加速器支持电池供电应用在仅消耗毫伏能量的同时执行A
    的头像 发表于 06-18 15:19 637次阅读

    MAX7800X AI 微控制器开发人员资源

    加速器。 使用 MAX78000 和 MAX78002 超低功耗 AI 微控制器。MAX78000 和 MAX78002 是带有 RISC-V 协处理和基于
    的头像 发表于 05-14 15:09 1181次阅读
    MAX7800X <b class='flag-5'>AI</b> <b class='flag-5'>微控制器</b>开发人员资源

    MAX78000采用超低功耗卷积神经网络加速度计的人工智能微控制器技术手册

    的Maxim超低功耗微控制器相结合。通过这款基于硬件的卷积神经网络(CNN)加速器,即使是电池供电的应用也可执行AI推理,同时功耗仅为微焦耳
    的头像 发表于 05-08 11:42 711次阅读
    MAX78000<b class='flag-5'>采用</b>超低功耗卷积神经网络<b class='flag-5'>加速</b>度计的人工智能<b class='flag-5'>微控制器</b>技术手册

    MAX78002带有低功耗卷积神经网络加速器的人工智能微控制器技术手册

    的Maxim超低功耗微控制器相结合。通过这款基于硬件的卷积神经网络(CNN)加速器,即使是电池供电的应用也可执行AI推理,同时功耗仅为微焦耳
    的头像 发表于 05-08 10:16 597次阅读
    MAX78002带有低功耗卷积神经网络<b class='flag-5'>加速器</b>的人工智能<b class='flag-5'>微控制器</b>技术手册

    在STM32微控制器实现数据加密的方法

    在STM32微控制器实现数据加密,可以通过多种方法和技术来确保数据的安全性。以下是一些常见的方法和步骤: · 使用内置加密库: · · STM32提供了专门的加密库STM32Cryptolib
    发表于 03-07 07:30

    ADI 新型AI微控制器 # MAX78000 数据手册和芯片介绍

    MAX78000是一款新型的AI微控制器,使神经网络能够在互联网边缘端以超低功耗运行,将高能效的AI处理与经过验证的ADI/Maxim超低功耗微控制器相结合。通过这款基于
    的头像 发表于 02-08 16:50 1390次阅读
    ADI 新型<b class='flag-5'>AI</b><b class='flag-5'>微控制器</b> # MAX78000 数据手册和芯片介绍

    STM32G474RCT6 STM32G0B1VET6 微控制器 IC MCU 32BIT FLASH LQFP

    STM32G474RCT6 混合信号微控制器 (MCU) 结合了运行频率为170MHz的32位Arm® Cortex®-M4内核(FPU和DSP指令)。另外还结合了3种不同的硬件加速器:ART
    发表于 12-31 11:59

    意法半导体发布新一代微控制器,集成NPU加速器推动边缘AI

    全球领先的半导体公司意法半导体(STMicroelectronics,简称ST)近日宣布推出全新系列微控制器,这是其首款集成机器学习(ML)加速器的产品。此举标志着意法半导体在推动边缘人工智能(AI
    的头像 发表于 12-23 18:13 1198次阅读