MicroFlow:一种高效的基于Rust的TinyML推理引擎

news2024/10/11 8:08:21

英文论文标题:MICROFLOW: AN EFFICIENT RUST-BASED INFERENCE ENGINE FOR TINYML

中文论文标题:MicroFlow:一种高效的基于Rust的TinyML推理引擎

作者信息:

  • Matteo Carnelos,意大利帕多瓦大学,Grepit AB, Sweden,matteo.carnelos@studenti.unipd.it
  • Francesco Pasti,意大利帕多瓦大学,pastifranc@dei.unipd.it
  • Nicola Bellotto,意大利帕多瓦大学,nbellotto@dei.unipd.it

论文出处:arXiv:2409.19432v1 [cs.LG] 28 Sep 2024

主要内容概述:

摘要
MicroFlow 是一个开源的 TinyML 框架,旨在将神经网络 (NNs) 部署在嵌入式系统上,使用 Rust 编程语言,特别注重效率和鲁棒性,适合在关键环境中应用。MicroFlow 采用基于编译器的推理引擎方法,并结合 Rust 的内存安全和特性。该解决方案能够在资源极其有限的设备上成功部署 NN,包括仅有 2kB RAM 的裸机 8 位微控制器。此外,与部署 NN 参考模型的其他最新解决方案相比,MicroFlow 能够使用更少的 Flash 和 RAM 内存,并且在中等大小的 NN 上实现更快的推理,对更大的 NN 实现类似的性能。实验结果证明了 MicroFlow 在资源特别有限的关键环境中部署 TinyML 模型的效率和适用性。

第1节 引言
TinyML 是机器学习 (ML) 的一个领域,专注于小型和低功耗嵌入式设备。TinyML 的目标是使这些设备能够在不依赖基于云的服务器或高性能计算系统的情况下执行智能任务。随着对能够执行智能实时任务的智能设备的需求不断增加,这一领域近年来越来越受欢迎。TinyML 的一个显著优势是其能够在低功耗设备上运行,使其非常适合资源受限的环境。

第2节 相关工作
TinyML 指的是在小型、低功耗嵌入式设备上部署 ML 模型。TinyML 应用的一个典型例子是唤醒词检测,也称为关键词检测或热词。这涉及到训练一个 NN 来识别特定的声音或短语,如“Hey Siri”或“OK Google”,触发设备开始监听用户命令。训练后的模型随后被压缩并部署到边缘设备上,执行始终在线的推理。

第3节 系统设计和组件
MicroFlow 的高级结构包括两个主要组件:位于主机机器上的 MicroFlow 编译器和位于目标微控制器上的 MicroFlow 运行时。目标是尽可能多地将工作委托给编译器,创建一个轻量级运行时进程,该进程在程序执行期间仅执行必要的计算。

a7945d0a00744bb485f2e7fb368ab483.png

b231c7b2a290438b99a448ae1345956d.png

b0238976e3a04df485fefd98a919a8dd.png

6d3ea6670134445eb111fe6448034783.png

第4节 内存管理
内存管理是在资源受限的微控制器上执行推理的关键方面。高效的内存利用对于确保最佳性能、最小化内存占用以及避免内存泄漏和崩溃等问题至关重要。

第5节 MicroFlow 操作符
NN 进程通常由计算图中一系列操作表示。MicroFlow 提供了实现 FNN 和 CNN 的最常见操作,包括 FullyConnected、Conv2D、DepthwiseConv2D、AveragePool2D、Reshape、ReLU、ReLU6 和 Softmax 操作符。

81bcd3c25f67468480c6329d9088aeeb.png

第6节 实验评估
MicroFlow 在三个不同大小和复杂度的模型上进行了评估,所有模型都量化为 8 位有符号整数。实验包括评估准确性、内存使用情况、运行时性能和能源消耗。

第7节 结论
本文介绍了 MicroFlow,这是一个针对资源受限微控制器的 TinyML 推理引擎,使用 Rust 实现以实现内存安全和效率。实验结果证明了其在多项 ML 任务中的有效性和出色的性能,在准确性、内存使用、执行时间和能源消耗之间取得了良好的平衡。MicroFlow 已作为开源项目发布,以便研究和工业界能够根据最终用户的需求扩展其功能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么软件可以晚上睡觉录音

什么软件可以晚上睡觉录音,在日常生活中,我们常常忽略夜间的声音,然而这些声音有时可能会揭示重要信息,比如打鼾情况、说梦话、甚至是潜在的睡眠问题。因此,一款适合夜间录音的软件对于关注健康及生活细节的人来说至关…

在IDEA中配置Selenium和WebDriver

前言: 在当今自动化测试和网络爬虫的领域,Selenium是一个被广泛使用的工具。它不仅能够模拟用户与浏览器的交互,还能进行网页测试和数据抓取。而为了使用Selenium与谷歌/Edge浏览器进行自动化测试,配置合适的WebDriver至关重要。本…

【时时三省】(C语言基础)指针笔试题8

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 笔试题8 c是个数组 它的每个元素是char* 它初始化了四个字符串 把这四个字符串的首字符的地址 传到了c里面 cp有四个元素 每个元素的类型是char** 所以c3指向FORST c2指向POINT c1指向NE…

数学建模算法与应用 第9章 支持向量机及其方法

目录 9.1 支持向量机的基本原理 核函数的种类: 9.2 支持向量机的Matlab命令及应用 Matlab代码示例:二分类支持向量机 9.3 乳腺癌的诊断案例 Matlab代码示例:乳腺癌数据分类 9.4 支持向量回归(SVR) Matlab代码示…

uibot发送邮件:自动化邮件发送教程详解!

uibot发送邮件的操作指南?uibot发送邮件的两种方式? 在现代办公环境中,自动化流程的引入极大地提高了工作效率。uibot发送邮件功能成为了许多企业和个人实现邮件自动化发送的首选工具。AokSend将详细介绍如何使用uibot发送邮件。 uibot发送…

【AIGC】寻找ChatGPT最佳推理步骤:CoT思维链技术的探索与应用

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯CoT思维链概述💯CoT思维链在大型语言模型中的应用💯CoT思维链改变对模型推理能力的理解和改进方式多样化应用场景挑战与未来发展总结 &#x1f4a…

鸿蒙NEXT开发-动画(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

用FPGA做一个全画幅无反相机

做一个 FPGA 驱动的全画幅无反光镜数码相机是不是觉得很酷? 就是上图这样。 Sitina 一款开源 35 毫米全画幅 (3624 毫米) CCD 无反光镜可换镜头相机 (MILC),这个项目最初的目标是打造一款数码相机,将 SLR [单镜头反光] 相机转换为 DSLR [数码…

探索Semantic Kernel:开启AI编程新篇章(入门篇)

文章目录 一、引言二、什么是Semantic Kernel?三、为什么选择Semantic Kernel?四、Semantic Kernel的核心特性4.1企业级4.2 自动化业务流程4.3 模块化和可扩展性 五、Semantic Kernel入门5.1 安装SDK5.2 编写控制台应用1. 配置2.实例3.示例一&#xff1a…

【漏洞复现】某知识付费纯净发卡小程序系统存在SQL注入漏洞

漏洞描述 知识吾爱纯净版小程序源码,附详细视频+文字教程【小白可0基础搭建】跟随教程步骤即可简单搭建属于自己的知识付费小程序,实现支付变现+流量主收益,快速建立自己的IP知识付费小程序源码包括以下功能:会员管理:支持用户注册、登录、个人信息管理等功能,以及会员等…

《系统架构设计师教程(第2版)》第18章-安全架构设计理论与实践-01-安全架构概述

文章目录 1. 信息安全面临的威胁2. 安全架构的定义和范围2.1 安全架构的概念2.2 安全架构的范围2.3 安全架构应具备的特性2.4 安全技术2.5 过程 3. 与信息安全相关的国内外标3.1 国外标准3.2 国内标准3.2.1 标准缩写含义3.2.2 主要技术标准1)国家标准2)特…

安全网络架构

网络安全解决方案是指通过一系列技术和措施来保护网络系统和数据的安全。它涉及多个方面,包括网络设备的防护、数据的加密和备份、安全策略的制定和执行等。以下是一些常见的网络安全解决方案: 防火墙:防火墙是一种硬件或软件设备&#xff0c…

怎么将视频原声提出来?视频原声提取,让创作更自由

在数字媒体时代,视频已成为我们日常生活和工作中不可或缺的一部分。有时,我们可能想要提取视频中的音频部分,无论是为了制作音频素材、学习语言,还是为了其他创意用途。那么,怎么将视频原声提出来呢?本文将…

ChatTTS 本地安装和测试

Ubuntu 22服务器,3.9/3.10都可以,但是 3.11不可以 sudo apt install python3.10 apt install python3.10 python3.10-dev #ubuntu 22 安装python3.10对应的pip3.10 # 下载 get-pip.py curl -sS https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 使…

小北的技术博客:探索华为昇腾CANN训练营与AI技术创新——Ascend C算子开发能力认证考试(初级)

前言 哈喽哈喽友友们,这里是zyll~(小北)智慧龙阁的创始人及核心技术开发者。在技术的广阔天地里,我专注于大数据与全栈开发,并致力于成为这一领域的新锐力量。通过智慧龙阁这个平台,我期望能与大家分享我的技术心得,共同探索技术的无限可能。 Ascend C编程:小北的技术…

<Project-8 pdf2tx-MM> Python Flask应用:在浏览器中翻译PDF文件 NLTK OCR 多线程 指定翻译器 改进后的P6

项目概述 名字解释 缩写: pdf2tx-MM pdf file transfer to text content with Multi-threads and Multi-translators pdf2tx-MM 是一个基于 Flask 的 Web 应用程序,提供将 PDF 文件中的内容提取、翻译并展示。使用者上传 PDF 文件,应用程序…

MySQL(B站CodeWithMosh)——2024.10.10(13)

ZZZZZZ目的ZZZZZZ代码ZZZZZZ重点ZZZZZZ操作(非代码,需要自己手动) 2- 字符串函数 | String Functions_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1UE41147KC?p56&vd_sourceeaeec77dfceb13d96cce76cc299fdd08 LENGTH&#xf…

网络协议——IP协议

一、IPv4 1、IPv4:TCP/IP协议规定,IPv4地址使用32位的二进制表示,也就是4个字节,为了方便使用,IPv4地址被写成十进制形式,中间用”.”分开。 【点分十进制表示法】 2、IPv4地址分类 2.1 私有地址在互联网…

怎么理解Contextual-Retrieval ?(顺手讲一下prompt-cache)

最近这个其实提的人挺多的,Graph RAG的火爆已经是上上个月的事了,其实我之前就讲过,Graph RAG是解决什么问题的,它也没法绝对替代传统RAG 之前关于Graph-RAG的文章 你为什么要用GraphGAG?(qq.com) 详解MS的GraphRAG的实…

Pr 视频效果:元数据和时间码刻录

视频效果/视频/元数据和时间码刻录 Video/Metadata & Timecode Burn-in 元数据和时间码刻录 Metadata & Timecode Burn-in效果是一种在视频画面上叠加显示剪辑元数据或时间码的工具。它允许在导出视频时,将需用的元数据信息直接刻录在画面上,方便…