小米开源自研移动端深度学习框架MACE

小米开源自研移动端深度学习框架MACE

6 月 28 日,小米人工智能与云平台副总裁崔宝秋博士在开源中国开源世界高峰论坛上发表《小米 AI 时代的开源》演讲,并在会上宣布,开源小米自研的移动端深度学习框架 Mobile AI Compute Engine (MACE)。

地址:https://github.com/XiaoMi/mace

近年来,随着移动互联网的深入发展和 IoT 智能设备的普及,以及用户对智能性,低延迟和隐私保护的诉求变得越来越高,移动设备上的离线深度学习应用变得越来越普遍。

据雷锋网了解,MACE 是专门为移动设备优化的深度学习模型预测框架,MACE 从设计之初,便针对移动设备的特点进行了专门的优化:

  • 速度:对于放在移动端进行计算的模型,一般对整体的预测延迟有着非常高的要求。在框架底层,针对 ARM CPU 进行了 NEON 指令级优化,针对移动端 GPU,实现了高效的 OpenCL 内核代码。针对高通 DSP,集成了 nnlib 计算库进行 HVX 加速。同时在算法层面,采用 Winograd 算法对卷积进行加速。

  • 功耗:移动端对功耗非常敏感,框架针对 ARM 处理器的 big.LITTLE 架构,提供了高性能,低功耗等多种组合配置。针对 Adreno GPU,提供了不同的功耗性能选项,使得开发者能够对性能和功耗进行灵活的调整。

  • 系统响应:对于 GPU 计算模式,框架底层对 OpenCL 内核自适应的进行分拆调度,保证 GPU 渲染任务能够更好的进行抢占调度,从而保证系统的流畅度。

  • 初始化延迟:在实际项目中,初始化时间对用户体验至关重要,框架对此进行了针对性的优化。

  • 内存占用:通过对模型的算子进行依赖分析,引入内存复用技术,大大减少了内存的占用。

  • 模型保护:对于移动端模型,知识产权的保护往往非常重要,MACE 支持将模型转换成 C++ 代码,大大提高了逆向工程的难度。

此外,据了解,MACE 支持 TensorFlow 和 Caffe 模型,提供转换工具,可以将训练好的模型转换成专有的模型数据文件,同时还可以选择将模型转换成 C++ 代码,支持生成动态库或者静态库,提高模型保密性。

小米开源自研移动端深度学习框架MACE

目前 MACE 已经在小米手机上的多个应用场景得到了应用,其中包括相机的人像模式,场景识别,图像超分辨率,离线翻译(即将实现)等。

此外,随着 MACE 一起开源的还有 MACE Model Zoo 项目,目前包含物体识别,场景语义分割,图像风格化等多个公开模型。后续会增加更多模型。

小米开源自研移动端深度学习框架MACE

上方是用 MACE Model Zoo 中的 fast style transfer(快速风格迁移)模型在手机端生成的风格化图片。

据雷锋网了解,此前小米曾参与多个国际重大的开源项目,比如 Hadoop,HBase,Spark,TensorFlow 等,同时,小米也积极参与自研、具有通用性的软件系统。过去几年,小米相继推出了 Linden(分布式实时搜索系统),Open-Falcon(互联网企业级监控系统)、Pegasus(分布式 KV 存储系统)等一系列开源项目。

在 AI 方面,小米开源了自研的针对移动端设备优化的深度学习框架 MACE,目前已经支持内部的多个业务。

另外,6 月 29 日至 7 月 2 日雷锋网将在深圳举办 CCF-GAIR 大会,小米首席架构师、小米人工智能与云平台副总裁崔宝秋将作为嘉宾出席并发表演讲。

相关推荐