Ariel-ML: Computing Parallelization with Embedded Rust for Neural Networks on Heterogeneous Multi-core Microcontrollers
本文介绍了 Ariel-ML,这是一个开源的嵌入式 Rust 工具包,可在异构多核微控制器上为 TinyML 模型自动化并行推理,在保持与传统 C/C++ 解决方案相当的内存占用的同时,展现出更优的延迟性能。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你拥有一个微型电池供电计算机(就像智能恒温器或健身追踪器内部的那种)。多年来,这些设备一直像独唱艺术家:它们只有一个“脑细胞”(单个处理器核心)来执行所有思考任务。而且,它们是用一种古老且略带风险的编程语言(C/C++)编写的,这就像用木梁建造房屋,若不小心,木梁可能会腐烂。
现在,两大变革正在发生:
- 硬件升级:新型微型计算机正陆续问世,它们拥有多个“脑细胞”(多核处理器),就像合唱团取代了独唱者。
- 安全升级:开发者正转向一种名为Rust的新语言,这就像使用更不易断裂或损坏的钢梁。
问题在于?迄今为止,尚无简便方法能教会这些新型“合唱团”计算机,如何使用这种新的“钢梁”语言协同工作,以解决复杂难题(例如识别语音或辨认照片中的猫)。现有工具要么仍被困在旧语言中,要么无法指导多个“脑细胞”如何分担工作。
Ariel-ML 应运而生。
将Ariel-ML视为这支新合唱团的超级高效指挥家。以下是其工作原理,借助简单类比说明:
1. 翻译器(构建流水线)
想象你有一份用高级厨师语言(如 PyTorch 或 TensorFlow)写成的复杂食谱。Ariel-ML 会将这份食谱翻译成微型计算机能理解的具体指令集。它使用一种名为IREE的工具(可将其视为一台高科技翻译机),将大食谱拆解为小而可管理的任务。
2. 指挥家(多核调度器)
这是该论文最大的创新点。一旦食谱被拆解,Ariel-ML 的“指挥家”便会审视设备中的多个“脑细胞”(核心)。
- 旧方式:一个“脑细胞”试图完成所有工作,而其他核心则闲置等待轮到自己。
- Ariel-ML 方式:指挥家立即将食谱的不同部分分配给不同的“脑细胞”。如果你有两个“脑细胞”,它们将工作对半分担,几乎将完成速度提高一倍。论文称此为“贪婪调度器”,这只是一个 fancy 的说法,意指它会抓住任何空闲的“脑细胞”并立即分配任务,确保无人闲置。
3. 安全网(Rust)
由于 Ariel-ML 完全用Rust构建,它就像一张安全网。在过去(C/C++ 时代),如果程序尝试使用不属于它的内存,整个系统就可能崩溃。Rust 通过设计防止此类情况发生。论文声称,这使得软件更加安全可靠,随着这些设备日益联网,这一点至关重要。
他们证明了什么?
作者在多种真实世界的微型计算机(如 Raspberry Pi Pico 和 Nordic 芯片)上测试了 Ariel-ML,并将其与旧工具进行了比较:
- 速度:在拥有两个“脑细胞”的计算机上,Ariel-ML 比旧工具快达1.6 倍。它成功让合唱团和谐演唱。
- 内存:论文承认,由于 Rust 和新翻译工具如此稳健,最终程序在计算机内存中占用的空间稍大(就像背包稍重一些)。然而,他们表明,在多核设备上的速度提升使这一额外开销物有所值。
- 准确性:他们仔细复核了数学计算,确认 Ariel-ML 得出的答案与用于训练模型的大型强大计算机完全一致。
核心结论
Ariel-ML 是首个工具包,它允许开发者将现代复杂的 AI 模型转换为安全、现代的 Rust 语言,并自动将工作分配到微型低功耗设备中的多个“脑细胞”上。它弥合了“老派”单核设备与“新派”多核未来之间的鸿沟,使这些微型 gadget 能够在无需大规模电池升级的情况下,实现更快、更安全的思考。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。