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

2024-01-08 01:38

本文主要是介绍小米开源自研移动端深度学习框架MACE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小米人工智能与云平台副总裁崔宝秋博士在开源中国开源世界高峰论坛上发表《小米 AI 时代的开源》演讲,并在会上宣布,开源小米自研的移动端深度学习框架 Mobile AI Compute Engine (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 大会,小米首席架构师、小米人工智能与云平台副总裁崔宝秋将作为嘉宾出席并发表演讲。

全球人工智能与机器人峰会(CCF-GAIR) 由中国计算机学会(CCF)主办,雷锋网、香港中文大学(深圳)承办,得到了深圳市政府的大力指导,是国内人工智能和机器人学术界、工业界及投资界三大领域的顶级交流盛会,旨在打造国内人工智能领域最具实力的跨界交流合作平台。

CCF-GAIR 2018 延续前两届的“顶尖”阵容,提供 1 个主会场和 11 个专场(仿生机器人专场,机器人行业应用专场,计算机视觉专场,智能安全专场,金融科技专场,智能驾驶专场,NLP 专场,AI+ 专场,AI 芯片专场,IoT 专场,投资人专场)的丰富平台,意欲给三界参会者从产学研多个维度,呈现出更富前瞻性与落地性相结合的会议内容与现场体验。


这篇关于小米开源自研移动端深度学习框架MACE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/581916

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx