作者|MNN团队

出品|阿里巴巴新零售淘系技术部

AI 芯片时代 

2016 - 2017年,AlphaGo 先后战胜李世石和柯洁,随着深度学习进入公众视野的,还有 Google 的 TPU 。

之后,Qualcomm、Apple 等芯片厂商也相继进入了这个战场。一时间,APU、TPU、NPU 成了科技媒体的宠儿,各大厂商在发布会上的跑分比武应接不暇。

而 XPU 们也确实凭借着为深度学习定制的向量、矩阵、张量计算单元和更高效的缓存设计等,实现了数倍于 CPU、GPU 的性能。

以麒麟 NPU 为例,从18年7月的麒麟970到19年9月的麒麟 990 ,短短两年就实现了数倍的性能提升,是不是有一种摩尔定律再临的感觉?

除了性能强劲之外,XPU 的功耗相比于 CPU、GPU 也要更低。依然以麒麟810和990为例,接近1/10的功耗表现,可以和我的电量恐惧症说再见了!

MNN + HUAWEI HiAI 

MNN 作为阿里巴巴开源的端侧推理引擎,已经支撑了两届淘宝双十一。我们以轻量级的推理引擎和配套工具,支持 Caffe、TensorFlow、PyTorch 训练框架和端侧 CPU、GPU、NPU 上的高效推理。

手机淘宝中有许多对实时性和精度要求都比较高业务,例如视频流检测、拍立淘等等。在算力有限的情况下,性能和精度往往不可兼得 —— 要么接受更慢的响应速度,保障精度,例如放弃视频流,只支持图片;要么舍弃一部分精度,用更小的模型换取更快的速度。

HiAI 是华为端侧 AI 能力开放平台,通过 HiAI Foundation 芯片能力开放,可以借助异构调度和 NPU 加速, 获得更佳的性能和功耗,有了这样性能和功耗同时得以提升的方案, MNN 就可以在配备了 NPU 的设备上启用那个名场面 —— 我全都要!

那么,究竟要怎么做呢?毕竟NPU是完全不同于CPU和GPU的计算设备。在这里,就需要简单回顾一下 MNN 对计算设备的抽象了。

计算设备在 MNN 中,被抽象为 Backend ,即后端;每一种后端都有三种职责:计算资源的分配、计算任务的调度、数据拷贝(含必要的格式转换)。 MNN 在实现对华为 NPU 支持的时候,就依赖了这种抽象设计。

具体来说,创建会话阶段,我们会在 NPUExecution 的 onCreate 方法中,将 MNN 的 Op 转换为 HiAI 的 OM Op ,逐步构建出 OM 的模型图;资源分配阶段,我们会在 NPUBackend 的 onResizeEnd 方法中,编译 OM 的模型图,生成 NPU 可用的 IR 模型,并预留出输入输出相关的 AI Tensor ;在推理运行阶段,我们会借助 NPUBackend 的 onCopyBuffer 方法,将输入数据从 MNN Tensor 拷贝到 AITensor ,而后利用华为 NPU 执行推理计算,再将结果从 AITensor 拷贝到 MNN Tensor。

整个过程看上去还是非常复杂的,但是 MNN 把绝大部分复杂的工作隐藏在了后端的抽象设计中。用户在使用的时候,只需要将 backend 的 type 设置为 NPU ,就可以实现对 NPU 的调用。同时,如果设备不支持 NPU ,还可以自动将计算回退到 CPU 上来实现。

双十一NPU实战 

在今年的双十一中,拍立淘率先使用了 MNN + NPU 的能力。我们和天猫以及其他商家展开深度合作,推出了商家扫 Logo 活动 —— 用户可以像扫二维码一样,在扫描商家 Logo 后,获取商家发放的权益。在 NPU 加速之后,商家 Logo 在手机上只需要几毫秒的时间,就可以精准识别。是的,就是如此丝滑。

拍立淘在双十一期间开启了数十个品牌的 Logo 扫描,相关招商渠道建设中,敬请关注拍立淘官方渠道。准备好你的脑洞吧。

现在想试一试的话,还可以掏出你的手机,打开手机淘宝扫一扫,下列Logo都可以玩起来啦~

寄望未来 

笔者和 Apple、Arm、华为等公司的工程师都有过交流,大家对 XPU 的未来都一致看好。虽然 APU、TPU、NPU 间的乱战可能还要持续上三五年,但在深度学习应用领域,它们逐步从云端走向终端,逐步替代 CPU、GPU 应当是大势所趋。

MNN 会持续关注 NPU 领域的发展。同时,MNN 和华为 NPU 的合作也还在进一步推进中,后续 MNN 的相关代码会在建设更成熟之后开源。我们也同样期待华为在 NPU 方面的进一步发展。

加入我们,扫描下方二维码了解详情

点击获取MNN 开源项目地址:https://github.com/alibaba/MNN

MNN支持NPU啦!!!相关推荐

  1. 阿里MNN推理框架相关介绍

    一.参考资料 MNN官网 中文文档-语雀 欢迎使用MNN文档 - MNN-Doc 2.1.1 documentation) 英文文档 MNN知识库 MNN 官方仓库 二.相关介绍 1. MNN简介 M ...

  2. MindSpore特性支持类

    MindSpore特性支持类 Q:请问MindSpore支持梯度截断吗? A:支持,可以参考梯度截断的定义和使用. Q:如何在训练神经网络过程中对计算损失的超参数进行改变? A:暂时还未有这样的功能. ...

  3. 开源一年,阿里轻量级AI推理引擎MNN 1.0.0正式发布

    在经过充分的行业调研后,阿里淘系技术部认为当时的推理引擎如TFLite不足以满足手机淘宝这样一个亿级用户与日活的超级App. 于是,他们从零开始自己搭建了属于阿里巴巴的推理引擎MNN.1年前,MNN在 ...

  4. 深入浅出 | 谈谈MNN GPU性能优化策略

    MNN(Mobile Neural Network)是一个高性能.通用的深度学习框架,支持在移动端.PC端.服务端.嵌入式等各种设备上高效运行.MNN利用设备的GPU能力,全面充分"榨干&q ...

  5. MNN推理引擎框架简介

    1.MNN介绍 随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模型不断成熟,原本在云端执行的推理预测就可以转移到端上来做.端智能即在端侧部署运行AI算法,相比服务端智能,端智能具有低延时 ...

  6. 37、记录使用 Swin Transformer主干网络去实现分类,并转化NCNN、TNN、MNN模型以及部署

    基本思想:最近手中有个swim transformer模型,想移植手机端进行推理一下,随手记录一下遇到的问题涉及简单的转ncnn tnn mnn的流程性问题 一.首先我fork了大佬的代码https: ...

  7. NPU的前途一片光明

    <谈音频算法的工程化(移植与优化)>谈到音频开发的一大趋势是深度学习算法.以前主要是基于英伟达的GPU实现深度学习算法,或者是专用芯片支持NPU功能,但外人不容易获得开发环境.比如华为Ki ...

  8. 全志Tina Linux MPP (多媒体框架)开发指南支持百问网T113 D1-H哪吒DongshanPI-D1s V853-Pro等开发板

    1 简述 整理 MPP sample 使用说明文档的目的是:使 MPP sample 更好用. 2 简介 MPP sample 一般存放在 MPP Middleware 的 sample 目录下.此外 ...

  9. 淘系端智能技术体系概述

    相比云侧智能,端智能具有低延时.保护数据隐私.节省云端计算资源等显著优势. 背景 近年来,以深度学习为代表的新一代人工智能技术得到了快速发展和广泛应用,模型训练和模型推断基本都在云侧完成.但随着移动设 ...

最新文章

  1. Linux13-计划任务crontab
  2. 苹果公司提出Mobile-ViT | 更小更轻精度更高,MobileNets或成为历史
  3. SAP MM 启用批次管理的物料,在分类视图里指派023类型分类不是必须的
  4. 2021春季学期-创新设计与实践-Lesson2
  5. mysql数据连接查询_mysql数据库 连接查询
  6. 大公司体制内创新的困境
  7. HDU 5392 BC #51
  8. 某厂面试:如何优雅使用 SPI 机制
  9. 数据库复习(前四章)
  10. 心跳监测器 IHeartBeatChecker
  11. 吉他指弹特殊调弦的方法及基础音阶知识
  12. 2022世界杯不扩军!国足教练:机会来了
  13. 淘宝客微信html5,微信H5支付配置
  14. 【Tableau 图表大全27】之区域图(面积图)
  15. matlab 投影法,梯度投影法 MATLAB程序可执行
  16. AprilTag: A robust and flflexible visual fifiducial system理解
  17. shell命令查阅端口信息_Linux服务器管理Shell经典命令
  18. 电脑游戏业编年史之一游戏的诞生
  19. 鸿蒙系统安全模式,华为鸿蒙OS上线!开源开放毫无保留,这一友商早已用上鸿蒙同款系统...
  20. T-SQL 基础学习 01

热门文章

  1. FL1000型风电机组水冷系统用 风冷机组的研制
  2. 如何对一个网站进行渗透测试,并且有哪些风险需要进行规避?
  3. (android高仿系列)今日头条 --新闻阅读器 (一)
  4. linux获取夏令时时间,关于时区:获取C中时区的夏令时转换日期
  5. 推箱子完整c语言程序,C语言实现推箱子游戏
  6. 子线程是否要手动创建autoreleasepool
  7. idea常用快捷键、markdown中html小技巧
  8. 【电子电路技术】短波红外InGaAs探测器简析
  9. 餐厅(秋季每日一题 37)
  10. 松下FP XH六轴标准程序,程序控制六个伺服,轴的点动控制