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

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

3天内不再提示

基于AI微控制器的CNN的硬件转换

要长高 来源:embedded 作者:Ole Dreessen 2023-09-29 15:11 次阅读

作者:Ole Dreessen

人工智能应用需要大量的能源消耗,通常以服务器群或昂贵的现场可编程门阵列(FPGA)的形式出现。挑战在于提高计算能力,同时保持较低的能耗和成本。现在,人工智能应用正在看到强大的智能边缘计算所带来的巨大转变。与传统的基于固件的计算相比,基于硬件的卷积神经网络加速以其惊人的速度和功能开创了计算性能的新时代。通过使传感器节点能够做出自己的决策,智能边缘技术大大降低了5GWi-Fi网络的数据传输速率。这为新兴技术和独特的应用提供了动力,这在以前是不可能的。例如,远程位置的烟雾/火灾探测器或传感器级别的环境数据分析成为现实 - 所有这些都在电池电源上使用多年。为了研究这些功能是如何实现的,本文探讨了带有专用AI微控制器的CNN的硬件转换。

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

MAX78000是一款具有超低功耗CNN加速器的AI微控制器,这是一种先进的片上系统。它支持超低功耗的神经网络,适用于资源受限的边缘设备或物联网应用。此类应用包括对象检测和分类、音频处理、声音分类、噪声消除、面部识别、心率/健康信号分析的时间序列数据处理、多传感器分析和预测性维护。

图1显示了MAX78000的框图,该由带有浮点单元的ArmCortex-M100F内核供电至4 MHz。为了给应用提供足够的存储器资源,此版本的微控制器配备了512 kB闪存和128 kBSRAM。包括多个外部接口,如I²C、SPI和UART,以及I²S,这对于音频应用非常重要。此外,还有一个集成的60 MHzRISC-V内核。RISC-V将数据从/复制到各个外设模块和存储器(闪存和SRAM),使其成为智能直接存储器访问(DMA)引擎。RISC-V内核预处理AI加速器的传感器数据,因此Arm内核在此期间可以处于深度睡眠模式。如有必要,推理结果可以通过中断触发 Arm 内核,然后 ArmCPU在主应用程序中执行操作,无线传递传感器数据或通知用户。®®

wKgZomUFVJ6ADQnaAAFNgEb3YQY727.png

图 1。MAX78000模块原理图。

用于卷积神经网络推理的硬件加速器单元是MAX7800x系列微控制器的一个显著特点,使其有别于标准微控制器架构和外设。该硬件加速器可以支持完整的CNN模型架构以及所有必需的参数(权重和偏差)。CNN 加速器配备 64 个并行处理器和一个集成存储器,其中 442 kB 用于存储参数,896 kB 用于输入数据。由于模型和参数存储在SRAM存储器中,因此可以通过固件进行调整,并且可以实时调整网络。根据模型中使用的是 1 位、2 位、4 位还是 8 位权重,此内存足以容纳多达 3 万个参数。由于存储器功能是加速器的一个组成部分,因此不必在每次连续的数学运算中通过微控制器总线结构获取参数。由于高延迟和高功耗,此活动的成本很高。神经网络加速器可以支持 5 或 32 层,具体取决于池化函数。每层可编程图像输入/输出大小高达 64 × 1024 像素。

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

CNN推理是一项复杂的计算任务,由矩阵形式的大型线性方程组成。利用 Arm Cortex-M4F 微控制器的强大功能,可以在嵌入式系统的固件上进行 CNN 推理;但是,有一些缺点需要考虑。在微控制器上运行基于固件的推理时,需要从内存中检索计算所需的命令以及相关的参数数据,然后才能写回中间结果,因此会消耗大量精力和时间。

表 1 比较了使用三种不同解决方案的 CNN 推理速度和能耗。该示例模型是使用手写数字识别训练集MNIST开发的,该训练集对视觉输入数据中的数字和字母进行分类,以得出准确的输出结果。测量每种处理器类型所需的推理时间,以确定能耗和速度之间的差异。

表 1.利用MNIST数据集进行手写数字识别的三种不同场景

wKgZomUFVKqAZi7aAABzd91nJ9U074.png

在第一个场景中,集成到MAX4中的Arm Cortex-M32630F处理器(运行频率为96 MHz)用于计算推理。在第二种情况下,为了处理计算,使用了MAX78000基于硬件的CNN加速器。当使用带有基于硬件的加速器 (MAX400) 的微控制器时,推理速度(即在网络输入处呈现视觉数据与结果输出之间的时间)会降低 78000 倍。此外,每次推理所需的能量要低 1100 倍。在第三个比较中,MNIST网络针对每次推理的最小能耗进行了优化。在这种情况下,结果的准确性从 99.6% 下降到 95.6%。但是,网络速度要快得多,每次推理只需要 0.36 毫秒。每次推理的能耗降至仅 1.1 μW。在使用两节AA碱性电池(总能量为6 Wh)的应用中,可以进行《》万次推理(省略电路其余部分消耗的功率)。

这些数据说明了硬件加速计算的强大功能。硬件加速计算对于无法利用连接或连续电源的应用程序来说是一种宝贵的工具。该MAX78000支持边缘处理,而无需大量能源、宽带互联网接入或延长推理时间。

MAX78000 AI 微控制器的示例用例

该MAX78000支持多种潜在应用程序,但让我们以以下用例为例。要求是设计一个电池供电的摄像头,检测猫何时在其图像传感器的视野中,从而能够通过猫门的数字输出进入房屋。

图2描述了这种设计的示例框图。在这种情况下,RISC-V内核定期打开图像传感器,并将图像数据加载到由MAX78000供电的CNN中。如果猫识别的概率高于先前定义的阈值,则启用猫门。然后,系统将返回到待机模式。

wKgZomUFVLuAYlzNAAC2xU1B-gw768.png

图2.智能宠物门的框图。

开发环境和评估套件

开发边缘 AI 应用程序的过程可以分为以下几个阶段:

第 1 阶段:人工智能——网络的定义、训练和量化

第 2 阶段:Arm 固件 – 将第 1 阶段生成的网络和参数包含在 C/C++应用程序中,并创建和测试应用程序固件

开发过程的第一部分涉及 AI 模型的建模、训练和评估。在这个阶段,开发人员可以利用开源工具,如PyTorch和TensorFlow。GitHub 存储库提供了全面的资源,帮助用户规划他们使用 PyTorch 开发环境构建和训练 AI 网络的旅程,同时考虑MAX78000的硬件规格。存储库中包含一些简单的AI网络和应用程序,例如面部识别(Face ID)。

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

wKgZomUFVMeAfRfrAAEschWs7w0757.png

图 3。人工智能开发过程。

在开发过程的第 2 阶段,使用将数据写入 CNN 加速器并读取结果的机制创建应用程序固件。在第一阶段创建的文件通过 #include 指令集成到 C/C++ 项目中。Eclipse IDE和GNU工具链等开源工具也用于微控制器的开发环境。ADI提供软件开发套件(MaximMicrosSDK (Windows))作为安装程序,其中包含所有必要的组件和配置。软件开发套件还包含外设驱动程序以及示例和说明,以简化开发应用程序的过程。

一旦项目被编译和链接而没有任何错误,就可以在目标硬件上对其进行评估。为此,ADI开发了两种不同的硬件平台。图 4 显示了MAX78000EVKIT,图 5 显示了MAX78000FTHR,这是一个稍小的羽毛外形板。每块板都配有一个VGA摄像头和一个麦克风。

wKgaomUFVNyAf-34AAvFn8k76YA889.png

结论

以前,人工智能应用需要服务器场或昂贵的FPGA形式的大量能源消耗。现在,借助带有专用 CNN 加速器的 MAX78000 系列微控制器,可以使用单块电池长时间为 AI 应用供电。能源效率和功耗的这一突破使边缘 AI 比以往任何时候都更容易获得,并释放了以前不可能实现的令人兴奋的全新边缘 AI 应用的潜力。

编辑:黄飞

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

    关注

    48

    文章

    7270

    浏览量

    149525
  • FPGA
    +关注

    关注

    1620

    文章

    21471

    浏览量

    597976
  • 神经网络
    +关注

    关注

    42

    文章

    4716

    浏览量

    99790
  • AI
    AI
    +关注

    关注

    87

    文章

    28468

    浏览量

    265752
  • cnn
    cnn
    +关注

    关注

    3

    文章

    349

    浏览量

    21817
收藏 人收藏

    评论

    相关推荐

    深度探索AI微控制器CNN硬件转换方案

    MAX78000是一款具有超低功耗 CNN加速 AI 微控制器,这是一种先进的片上系统。它能够以超低功耗为资源受限的边缘设备或物联网应用提供神经网络。
    发表于11-24 09:22 374次阅读
    深度探索<b class='flag-5'>AI</b><b class='flag-5'>微控制器</b>对<b class='flag-5'>CNN</b>的<b class='flag-5'>硬件</b><b class='flag-5'>转换</b>方案

    电梯的基础原理:微控制器

    微控制器
    jf_10480160
    发布于 :2022年12月14日 07:20:15

    什么是微控制器

    使 微控制器的线路可以尽量优化, 硬件结构更加简单,从而可以实现较低的成本和功耗,当然完成相同的工作可能需要更多的指令。所以,二者取舍之间没有绝对优势,只能说根据应用的不同需求和侧重来进行选择
    发表于11-14 14:30

    微控制器MCU是什么

    在开发嵌入式系统时,其中一个选择是将计算 硬件基于 微控制器,而不是微处理 MPU。这两种方法都有其吸引力,但通常它们将在不同的应用中找到。通常, 微控制器MCU可用于大小,低功耗和低成本是
    发表于11-03 06:45

    AT32微控制器硬件设计指南及抗EMC设计要点

    本应用笔记为使用AT32系列 微控制器芯片的 硬件设计人员提供参考设计,包括供电电源要求、时钟管理、复位管理、调试接口的管理。它说明了使用AT32系列 微控制器芯片所需的最低 硬件资源。文中介
    发表于10-25 07:54

    微控制器硬件抗干扰技术

    介绍干扰的形成过程, 并从实用角度介绍 微控制器 硬件抗干扰的基本原理,给出设计微 控制系统所应采取的基本方法。
    发表于05-14 14:35 16次下载

    微控制器到底是什么?微控制器有怎么样的应用

    微控制器的使用已渗透入生活各方面,为增进大家对 微控制器的了解,本文将对 微控制器微控制器应用予以介绍。如果你对 微控制器具有兴趣,不妨继续往下
    的头像 发表于06-27 10:25 1.1w次阅读

    什么是微控制器?如何编程微控制器

    微控制器进行编程或刻录意味着“将程序从编译 传输到 微控制器的存储 ”。 微控制器的程序通常是用C或汇编语言编写的,最后编译
    的头像 发表于08-21 15:40 9776次阅读

    微控制器中各式各样的编程语言

    在上一篇文章中,我们探索了 微控制器中的软件与 硬件,并分析了为何 微控制器的软件和 硬件相辅相成缺一不可。我们知道, 微控制器
    的头像 发表于05-19 19:58 2454次阅读

    微控制器布局

    有效 的,其他则需要适当的留心一下 PCB 设计。 因此,很容易地理解噪声的来源主要由 NEC CMOS 微控制器的内部躁声和它传播到外面的躁声组成。 3.1典型的 微控制器布局 在以下章节将详细讨论半导体,一些技术术语用以下的图片简要的说明一下。 除 AD
    的头像 发表于08-15 19:59 1078次阅读
    <b class='flag-5'>微控制器</b>布局

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

    本文重点解释如何使用 硬件 转换卷积神经网络( CNN),并特别介绍使用带 CNN 硬件加速器的人工智能( AI
    的头像 发表于05-16 01:05 644次阅读

    先楫系列微控制器硬件设计指南

    德赢Vwin官网 网站提供《先楫系列 微控制器 硬件设计指南.pdf》资料免费下载
    发表于09-19 14:20 2次下载
    先楫系列<b class='flag-5'>微控制器</b><b class='flag-5'>硬件</b>设计指南

    AT32微控制器硬件设计指南及抗EMC设计要点

    德赢Vwin官网 网站提供《AT32 微控制器 硬件设计指南及抗EMC设计要点.pdf》资料免费下载
    发表于09-19 15:53 0次下载
    AT32<b class='flag-5'>微控制器</b><b class='flag-5'>硬件</b>设计指南及抗EMC设计要点

    在软硬件设计方面,微控制器的PWM功能有何具体差异?

    硬件架构:不同的 微控制器可能采用不同的 硬件架构,这会影响PWM模块的设计和实现方式。例如,一些 微控制器可能使用专用的PWM模块,而另一些 微控制器
    的头像 发表于12-13 10:03 410次阅读

    新唐科技宣布推出基于微控制器的终端AI平台,加速AI应用普及

    新唐科技宣布推出基于 微控制器的终端 AI平台,使 AI生态系扩展至 微控制器领域。
    的头像 发表于04-23 09:58 518次阅读