【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

MNN 支持 NPU 啦

  • 2019-12-05
  • 本文字数:1685 字

    阅读完需:约 6 分钟

MNN支持NPU啦

✪ 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 方面的进一步发展。


We are hiring


淘宝基础平台部-端智能团队欢迎移动端计算优化工程师和推理引擎架构师的加入。对新技术感兴趣,善于创新突破,渴望用新技术给用户带来创新体验的同学请联系我们。


本文转载自“淘系技术”公众平台。


原文链接:https://mp.weixin.qq.com/s/4aFgfBD05ln4wEft-5oEHw


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-12-05 09:27973

评论

发布
暂无评论
发现更多内容

简单好上手!1分钟带你体验Apipost

叶小柒

简单了解下linux与windows两者的区别-行云管家

行云管家

Linux

开源工具系列3:Prowler

HummerCloud

云安全

C++数据结构

老浩

AR Engine毫秒级平面检测,带来更准确的呈现效果

HMS Core

HMS Core

新泰山众筹SUN4.0系统开发模式详情

开发微hkkf5566

drools规则动态化实践

京东科技开发者

Java 规则引擎 业务逻辑 企业号 2 月 PK 榜 drl

用Apipost进行Websocket调试教程

不想敲代码

微服务 websocket 接口调试

婚庆LED显示屏打造梦幻婚礼

Dylan

LED显示屏 led显示屏厂家 户内led显示屏

落地DevOps的路线图

老张

DevOps 软件工程

Dubbo 3 之 Triple 流控反压原理解析

阿里巴巴中间件

阿里云 微服务 云原生

KCL 与其他 Kubernetes 配置管理工具的异同 - Helm 篇 - Helm 篇 [一个自研编程语言能做什么?(系列 3)]

Peefy

Kubernetes DevOps 编程语言 #开源

“堆外内存”这玩意是真不错,我要写进简历了。

why技术

Java 程序员 面试

工赋开发者社区 | 达摩院开源半监督学习框架Dash,刷新多项SOTA

工赋开发者社区

ITSM | Atlassian被Gartner评为IT服务管理平台魔力象限的领导者

龙智—DevSecOps解决方案

Atlassian ITSM Gartner

技术交错革新,移动开发平台机会和挑战并存

FinFish

移动开发 移动开发平台 移动应用开发

2023计算机领域顶会(A类)以及ACL 2023自然语言处理(NLP)研究子方向领域汇总

汀丶人工智能

人工智能 自然语言处理 2月日更 计算语言学协

版本控制 | 如何利用虚幻引擎进行虚拟制作,为电影制作带来更多可能

龙智—DevSecOps解决方案

游戏引擎 虚幻引擎 虚幻引擎5 虚拟制作

对比开源丨Prometheus 服务多场景存储压测全解析

阿里巴巴中间件

阿里云 云原生 Prometheus

DiffusionDet 用扩散模型解决目标检测

Zilliz

JVM参数:带你认识-X和-XX参数

华为云开发者联盟

开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

共赴元宇宙新纪元,华为云VR开发应用大赛总决赛倒计时7天!

华为云开发者联盟

人工智能 华为云 VR开发应用 企业号 2 月 PK 榜 华为云开发者联盟

云原生微服务技术趋势解读

阿里巴巴中间件

阿里云 开源 微服务 云原生

从焊接角度聊一聊,设计PCB的5个建议

华秋PCB

工具 PCB PCB设计 焊接

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

助力芯片产业蓬勃发展,诚翔滤器推出光刻机过滤器

电子信息发烧客

堡垒机真的安全吗可靠吗?大家喜欢哪款?

行云管家

等保 堡垒机 等级保护 堡垒机品牌

SAP的良好业绩,能否敲响国内厂商的警钟?

ToB行业头条

用javascript分类刷leetcode21.树(图文视频讲解)

js2030code

JavaScript LeetCode

架构作为6

梁山伯

备战金三银四:1200道Java面试真题合集,助你搞定面试官

架构师之道

Java 编程 程序员 java面试

MNN支持NPU啦_语言 & 开发_MNN团队_InfoQ精选文章