MAX78000卷积神经网络的硬件转换
扫描二维码
随时随地手机看文章
AI应用程序需要大量的能源消耗,通常是以服务器储存所或昂贵的现场可编程门阵列的形式出现。挑战在于提高计算能力,同时保持低能耗和低成本。现在,人工智能的应用正在看到强大的智能边缘计算带来的巨大变化。与传统的基于硬件的计算方法相比,基于硬件的卷积神经网络加速度正以其令人印象深刻的速度和功率,为计算性能开创一个新的时代。通过使传感器节点能够自己做出决定,智能边缘技术极大地降低了5G和Wi-Fi网络的数据传输速率。这正在为以前不可能的新兴技术和独特应用提供动力。例如,偏远地区的烟雾/火灾探测器或传感器层面的环境数据分析都已成为现实--所有这些都随着电池的使用年限而发生变化。为了检验这些功能是如何实现的,本文探索了一个CNN的硬件转换,一个专用的人工智能微控制器。
人工智能微控制器与超低功率卷绕神经网络加速器
MAX78000 是一个人工智能微控制器与超低功率CNN加速器,在芯片上的先进系统。它使神经网络能够在资源受限的边缘设备或iot应用超低功率。这些应用包括目标检测和分类、音频处理、声音分类、噪声消除、面部识别、心率/健康信号分析的时序数据处理、多传感器分析和预测维护。
MAX78000由一个ARM提供高达100兆赫的动力。 带有浮点单元的M4F芯。为了给应用程序提供足够的内存资源,这个版本的微控制器配备了512kb的闪存和128kb的SRAM。包括多个外部接口,例如,对音频应用来说很重要的ICS,SPIS,UART,以及IVOS。此外,还有一个集成的60兆赫RSCV核心。RSCS-V从/向单个外围块和内存(闪存和SRAM)复制数据,使其成为一个智能的直接内存访问(DMA)引擎。RSCS-V核心为人工智能加速器预处理传感器数据,因此ARM核心在此期间可以处于深度睡眠模式。必要时,推理结果可以通过中断触发ARM核心,ARMCPU随后在主应用程序中执行操作,无线传递传感器数据,或通知用户。
用于执行卷绕神经网络推理的硬件加速器单元是MAX7800X系列微控制器的一个显著特点,它使它与标准微控制器体系结构和外围设备不同。这个硬件加速器可以支持完整的CNN模型架构以及所有所需的参数(权重和偏差)。CNN加速器配备了64个并行处理器和一个集成存储器,该存储器有442kb,用于存储参数,并用于输入数据。由于模型和参数存储在SRAM内存中,可以通过固件进行调整,网络可以实时适应。根据模型中是否使用1-、2-、4-或8位权重,这个内存足以容纳350万个参数。由于存储能力是加速器不可或缺的一部分,因此不需要在每次连续的数学操作中通过微控制器总线结构提取参数。由于延迟时间长和耗电量高,这项活动成本高昂。神经网络加速器可以支持32或64层,取决于池功能。每层可编程图像的输入/输出尺寸可达1024x1024像素。
CNN硬件转换:能耗和推理速度比较
CNN推理是一个复杂的计算任务,它包含了矩阵形式的大型线性方程组.利用ARM cortex-M4F微控制器的力量,CNN在嵌入式系统固件上的推理是可能的;然而,有一些缺点需要考虑。由于基于固守器的推理运行在微控制器上,能量和时间被大量消耗,因为计算所需的命令,以及相关的参数数据,需要从内存中检索,然后才能将中间的结果写回去。
表1给出了使用三种不同解决方案的CNN推理速度和能耗的比较。这个例子模型是利用一个手写的数字识别训练集MPERE开发的,它将数字和字母从视觉输入数据中分类,以获得一个准确的输出结果。测量了每种处理器类型所需的推理时间,以确定能耗和速度之间的差异。
在第一个方案中,使用了一个ARM皮质M4F处理器集成到以96兆赫运行的MAX32630,用于计算推理。在第二种情况下,为了处理计算,使用了MAX78000的基于硬件的CNN加速器。推理速度--即在网络输入中显示视觉数据与结果输出之间的时间--在使用带有硬件加速器的微控制器(MAX78000)时降低了400倍。此外,每个推论所需的能量是一个低1100系数。在第三个比较中,每个推理的最小能耗优化了MPERE网络。结果的准确性从99.6%下降到95.6%.然而,网络速度要快得多,每次推断只需要0.36MS。每一个推论的能量消耗量减少到只有1.1秒。在使用两个AA碱性电池(共6小时能量)的应用中,500万推论是可能的(省去电路其余部分的电源)。
这些数据说明了硬件加速计算的力量。硬件加速计算是无法利用连接或连续电源的应用程序的宝贵工具。MAX78000支持边缘处理,不需要大量的能源、宽带互联网接入或长时间的推理。
MAX78000人工智能微控制器用例
MAX78000支持大量潜在的应用程序,但是让我们以下面的用例为例来研究。要求是设计一个电池驱动的相机,它可以检测到猫在图像传感器的视野中,从而能够通过猫门的数字输出进入房子。
发展环境和评价包
开发边缘应用程序的过程可分为以下几个阶段:
第一阶段:人工智能-网络的定义、培训和量化
第2阶段:ARM固件--将第1阶段生成的网络和参数纳入C/C++应用程序,并创建和测试应用程序固件
开发过程的第一部分涉及建模、培训和评估AI模型。在这个阶段,开发者可以利用开源工具.该数据库提供了全面的资源,以帮助用户在考虑到该系统硬件规格的情况下,在使用PYOTUB开发环境建立和培训AI网络方面规划自己的旅程。 MAX78000 .存储库中包含了一些简单的AI网络和应用程序,如面部识别(AMAXID)。
首先,对网络进行建模。必须注意的是,并非所有MAX7800X微控制器都有硬件,支持在PIOTO环境中可用的所有数据操作。由于这个原因,由模拟设备提供的文件像8X.PY必须首先包括在项目中。这个文件包含使用MAX78000所需的PUTR模块和操作员。基于此设置,可以建立网络,然后使用培训数据进行培训、评估和量化。这个步骤的结果是一个检查点文件,其中包含最终合成过程的输入数据。在这个最后的过程中,网络及其参数被转换成适合于CNN硬件加速器的形式。这里应该提到的是,网络训练可以用任何个人电脑完成(笔记本电脑,服务器等)。然而,如果不支持海关数据自动化系统的图形卡,这可能需要很多时间--即使对于小型网络,几天甚至几周都是完全现实的。
在开发过程的第二阶段,利用将数据写入CNN加速器并读取结果的机制创建了应用固件。在第一阶段创建的文件通过#包含指令被集成到C/C++项目中。开源工具,如EXEXESTI和GNU工具链也被用于微控制器的开发环境。工业发展署提供一套软件开发工具包作为已经包含所有必要组件和配置的安装程序。软件开发包还包括外围驱动程序以及示例和指令,以方便开发应用程序的过程。
结论
以前,人工智能的应用程序需要大量的能源消耗,如服务器储存所或昂贵的FPGA。现在,有了MAX78000,它有可能从单个电池上为AI应用程序提供长时间的动力。在能源效率和电力方面的这种突破使得Edge AI比以往任何时候都更容易获得,并释放出以前不可能的新的和令人兴奋的Edge AI应用的潜力。