mace
小米开源的移动端神经网络推理引擎,CPU/GPU/DSP异构调度,TensorFlow/Caffe/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
小米开源的移动端神经网络推理引擎,CPU/GPU/DSP异构调度,TensorFlow/Caffe/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Mobile AI Compute Engine(简称 MACE)是小米的开源项目,它解决了一个非常具体的问题:如何在手机、智能手表、汽车座舱这类移动设备上高效运行 AI 模型。与云端 AI 不同,移动端 AI 面临功耗、发热、内存紧张等硬约束,MACE 就是为这些场景量身打造的推理框架。
很多人体验过手机上的 AI 功能——拍照时的场景识别、语音助手的实时响应、相册的智能分类——但很少有人想过,这些 AI 模型是怎么跑到手机上的。
传统的云端 AI 推理,数据要上传到服务器,模型在服务器上跑,结果再返回手机。这个过程有两个问题:一是延迟,网络往返动不动几百毫秒;二是隐私,你的照片、语音要经过第三方服务器。
移动端 AI 推理想解决这个问题:把模型直接跑在手机上。但手机芯片和服务器芯片完全不同——手机用 ARM 架构,注重功耗控制,服务器用 x86 架构,注重算力峰值。直接把服务器上的 AI 模型复制粘贴到手机上,基本跑不动或者耗电极快。
这就是 MACE 要解决的问题:针对手机芯片的特性,对 AI 模型进行翻译和优化,让它能在手机上高效运行。
MACE 最早在 2018 年由小米内部团队开发并开源。作为一家拥有手机、AIoT 设备、智能汽车的科技公司,小米有大量需要在设备端运行 AI 的场景:
当时市面上已有的方案(如 TensorFlow Lite、Core ML)要么针对特定平台(iOS 的 Core ML 安卓不支持),要么在某些国产芯片上优化不足。小米选择自研,正是因为现有框架无法充分覆盖其硬件矩阵。
MACE 的设计目标可以归结为三个字:快、省、小。
多硬件加速支持:手机芯片里有多种计算单元——CPU(通用)、GPU(图形并行)、DSP(低功耗专用)。MACE 充分利用这三者,针对不同算子选择最合适的执行单元。Qualcomm 骁龙系列用 Hexagon DSP 和 Adreno GPU,联发科芯片用 Mali GPU,都做了专门优化。这是 MACE 区别于通用框架的核心竞争力。
Winograd 算法加速卷积:卷积是 CNN 网络中最耗时的操作。Winograd 算法通过数学变换减少乘法次数,理论上可将卷积加速 2-3 倍,MACE 将其工程化落地。
图优化与内存管理:AI 模型本质上是一张计算图。MACE 在图层面做了大量优化:算子融合(将多个操作合并成一个)、内存复用、延迟分配。更重要的是,它支持将模型编译成 C++ 代码,直接链接进 App,彻底省去运行时解析的开销。
模型加密保护:很多商业 AI 模型的知识产权需要保护。MACE 支持将模型转换为 C++ 代码加混淆,使逆向分析模型结构变得极其困难。
MACE 支持三种主流模型格式的转换:
用户只需将训练好的模型转换为 MACE 格式,即可在 Android、iOS、Linux 等平台上高效推理。官方还提供了 MACE Model Zoo,包含常见网络的预编译模型和性能基准数据。
MACE 的开发流程分为三步:
文档方面,MACE 有独立的 ReadTheDocs 文档站,中文文档与英文同步维护,对国内开发者比较友好。
MACE 不是一个下载安装就能用的工具。它要求使用者具备:
好在 Docker 开发环境封装了大部分工具链,降低了环境配置的难度。但完整的端到端流程(训练 → 转换 → 编译 → 部署)仍然需要一定的技术储备。
适合谁用:有移动端 AI 落地需求的工程师,尤其是需要在非主流芯片(非高通、非苹果)上部署模型的团队。
不太适合:纯 AI 爱好者、无嵌入式经验的开发者(门槛较高)。
维护活跃度下降:MACE 最后一次 commit 在 2021 年左右,官方 GitHub 处于维护模式,不再有大的功能迭代。对新模型、新算子的支持可能跟不上前沿。
封闭生态的代价:虽然开源,但 MACE 的优化高度依赖小米内部的芯片适配经验,对新上市芯片的支持往往滞后于硬件发布周期。
与 TensorFlow Lite 的重叠:Google 的 TFLite 生态越来越完善,对很多通用场景已经足够。MACE 的差异化优势主要在非主流芯片和极致性能优化这两点。
构建系统复杂:同时支持 Bazel 和 CMake,对习惯单一构建系统的团队增加了学习成本。
尽管维护状态不如高峰期活跃,MACE 在移动端 AI 推理领域仍有重要参考价值:
从行业趋势看,随着 NPU(神经网络处理器)逐步成为手机 SoC 的标配,端侧 AI 推理的重要性只增不减。MACE 的设计思路和工程实践,对后续者仍有借鉴意义。