探索MicroFlow:开源TinyML推理引擎的新突破

原创 电子工程世界 2024-10-10 08:02
在物联网设备和嵌入式系统逐渐普及的今天,TinyML 作为一种新兴的机器学习技术,越来越受到研究者和开发者的关注。TinyML 旨在将智能模型部署到资源受限的嵌入式设备中,从而在本地进行推理和计算,减少对云计算资源的依赖。这种本地化的计算方式不仅减少了延迟,还增强了数据隐私保护,使其在智能家居、医疗设备和工业自动化等领域拥有巨大的应用潜力。然而,由于嵌入式设备的计算能力和内存资源极为有限,传统的机器学习推理引擎往往无法满足需求,因此开发适用于资源受限环境的高效推理引擎成为了关键课题。
日前,由 Matteo Carnelos 等人提出的新型 TinyML 推理引擎——MicroFlow。这款基于 Rust 编程语言的推理引擎在实现内存安全的同时,采用了编译器优化技术,极大地提升了推理效率。我们将从 MicroFlow 的设计目标、架构特点、与现有解决方案的对比,以及它在实际应用中的表现等方面进行详细探讨。(https://github.com/matteocarnelos/microflow-rs)

 MicroFlow 的设计目标与架构 

MicroFlow 的主要设计目标是为资源受限的嵌入式设备提供一种轻量、高效且安全的 TinyML 推理解决方案。为了实现这些目标,MicroFlow 采用了 Rust 作为编程语言,这为推理引擎带来了内存安全的特性。Rust 通过所有权和借用机制在编译期确保内存的正确管理,有效避免了如空指针解引用、缓冲区溢出等常见的内存问题,使得 MicroFlow 特别适用于对稳定性和安全性要求较高的关键环境。

在架构设计上,MicroFlow 采用了编译器驱动的推理引擎,而非传统的解释器驱动方法。具体来说,MicroFlow 的编译器在编译期间解析和优化神经网络模型,将推理所需的代码嵌入到固件中。这种方法有别于解释器需要在运行时动态解析模型,显著减少了推理过程中的内存开销和计算负担。此外,MicroFlow 的推理引擎在运行时仅执行核心推理任务,避免了不必要的动态内存分配,从而提高了整体效率。

 Rust 编程语言的优势 

传统的嵌入式推理引擎通常使用 C 或 C++ 编写,这些语言虽然能够提供对硬件资源的低级控制,但缺乏内存安全机制,极易导致内存泄漏、缓冲区溢出等问题。而这些问题在资源受限的嵌入式设备上尤为致命,因为这些设备通常没有操作系统提供的保护机制。因此,MicroFlow 选择使用 Rust 编写,该语言通过严格的内存管理机制提供了内存安全性,并且无需像垃圾回收(GC)那样的额外开销。

Rust 的所有权机制是其实现内存安全的重要特性。在 Rust 中,每个值都有一个明确的所有者,且在所有者超出作用域时,内存会被自动释放,这样就避免了手动管理内存的复杂性。此外,Rust 还通过不可变和可变借用的限制,确保在同一时间要么有多个不可变借用,要么只有一个可变借用,防止了数据竞争和内存损坏的风险。这些特性使得 Rust 成为开发高可靠性嵌入式软件的理想选择。

 编译器驱动的推理架构 

MicroFlow 的编译器在主机上运行,并对神经网络模型进行解析和静态优化。模型的解析过程涉及使用 FlatBuffers 反序列化工具对 TensorFlow Lite 格式的模型进行解析,并生成相应的内存结构和代码。这种静态编译的方式确保了所有的内存分配在编译期就已确定,避免了运行时的动态分配,从而提升了推理过程的稳定性和效率。

在推理过程中,MicroFlow 的运行时模块会加载编译生成的代码并执行神经网络的推理任务。由于模型的所有信息(如操作符、权重等)都已经在编译期解析并嵌入代码,MicroFlow 的运行时几乎没有额外的内存开销,这使得它能够在只有 2kB RAM 的 8 位微控制器上成功运行。此外,MicroFlow 引入了一种基于分页的方法来管理内存,允许神经网络的部分内容按需加载到 RAM 中,从而在内存极为有限的设备上实现大型模型的推理。

 MicroFlow 与现有方案的对比 

当前市场上已经有一些成熟的 TinyML 推理引擎,例如 Google 的 TensorFlow Lite for Microcontrollers(TFLM)、Microsoft 的 Embedded Learning Library(ELL)等。然而,这些引擎大多基于解释器,并且通常为 32 位架构设计,无法在更为受限的硬件平台上有效运行。此外,大多数现有方案使用 C 或 C++ 语言开发,缺乏内存安全机制。

与这些方案相比,MicroFlow 具备显著的优势。首先,MicroFlow 使用 Rust 编写,提供内存安全保障,特别适用于对安全性要求高的关键环境。其次,MicroFlow 采用编译器驱动的架构,使得推理代码在运行时不需要额外的解析步骤,从而减少了内存占用和推理延迟。实验结果表明,MicroFlow 在中小型神经网络上的推理速度明显快于 TFLM,并且在 RAM 和 Flash 的占用上也更加高效。例如,在 ESP32 微控制器上,MicroFlow 的内存占用比 TFLM 减少了 65% 以上。

此外,MicroFlow 采用模块化的设计,代码完全开源并可在 GitHub 上获得。这种开放性不仅促进了嵌入式和物联网社区的广泛使用和改进,也为未来的优化和新功能的集成提供了可能。

 实验与应用表现 

为了验证 MicroFlow 的性能,作者进行了多项实验,使用了三种不同复杂度的模型,包括简单的正弦预测器、语音命令识别器和人脸检测器。实验结果显示,MicroFlow 的推理速度在小型模型上大约是 TFLM 的十倍,而对于更复杂的模型,如基于 MobileNet 的人脸检测器,MicroFlow 的推理时间也保持在一个可接受的范围内,仅比 TFLM 慢 6% 左右。这表明,MicroFlow 在处理大量卷积操作时,性能差距会逐渐缩小。

在内存使用方面,MicroFlow 相比 TFLM 显著减少了 RAM 和 Flash 的占用。在实验中,MicroFlow 能够成功运行在只有 2kB RAM 的 ATmega328 微控制器上,而 TFLM 则由于内存需求过高而无法运行。此外,由于 MicroFlow 的编译器在编译期对模型进行预处理,许多常量计算被提前完成,从而减少了运行时的计算负担。

在能源消耗方面,MicroFlow 的表现也优于 TFLM。由于推理时间的减少,MicroFlow 的平均能耗显著降低,非常适合需要长时间低功耗运行的嵌入式设备应用,例如环境监测传感器和可穿戴设备。

 结语 

MicroFlow 作为一款基于 Rust 的轻量级 TinyML 推理引擎,凭借其内存安全性、高效的编译器优化和极低的内存占用,为资源受限的嵌入式设备提供了可靠的推理解决方案。它在与现有解决方案的对比中展现出了显著的性能优势,特别是在小型模型的推理速度和内存管理方面。未来,MicroFlow 可以进一步扩展其支持的神经网络操作符类型,并优化卷积操作,以提升在大型模型中的推理性能。此外,随着 Rust 生态系统的不断成熟,更多针对嵌入式开发的工具和库也将进一步促进 MicroFlow 的改进。

· END ·





欢迎将我们设为“星标”,这样才能第一时间收到推送消息。
扫码关注:汽车开发圈,回复“Auto

免费领Autosar入门与实践资料包!



扫码添加小助手回复“进群”

和电子工程师们面对面交流经验

电子工程世界 关注EEWORLD电子工程世界,即时参与讨论电子工程世界最火话题,抢先知晓电子工程业界资讯。
评论
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 167浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 125浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 98浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 66浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 40浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 113浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 141浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 63浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 83浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 103浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 77浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦