MNN支持NPU啦!!!

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

image.png
作者|MNN团队
出品|阿里巴巴新零售淘系技术部

AI 芯片时代

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

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

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

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

image.png

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

image.png

MNN + HUAWEI HiAI

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

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

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

image.png

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

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

image.png

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

image.png

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

双十一NPU实战

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

未标题-3.gif

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

image.png

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

image.png

寄望未来

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

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

**We are hiring
**


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

简历投递至chengfei.lcf@alibaba-inc.com

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
10月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
7341 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
6月前
|
人工智能 安全 物联网
释放终端潜能----端侧AI模型
端侧AI将智能直接部署于终端设备,实现毫秒级响应、极致隐私保护与显著成本优化。其核心优势包括极速响应(告别网络延迟)、隐私安全(数据不出本地)及成本优化(减少云端依赖)。通过模型小型化、硬件感知优化、高效推理引擎和端云协同等关键技术,端侧AI在有限资源下保持高性能,
817 0
释放终端潜能----端侧AI模型
|
11月前
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
2410 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
|
7月前
|
人工智能 安全 Android开发
手机也能跑通义Qwen3大模型,手把手教你部署!
全球开源模型冠军Qwen3与端到端全模态模型Qwen2.5-Omni现已成功在手机上跑通!借助MNN支持,适配Android、iOS及桌面端,实现低延迟、本地化、高安全的AI体验。用户可通过自定义Sampler设置、System Prompt和Max New Tokens调节模型输出风格与长度。
3480 11
|
数据采集 文字识别 测试技术
智谱开源端侧大语言和多模态模型GLM-Edge系列!
GLM-Edge系列模型是由智谱开源,专为端侧应用设计的大语言对话模型和多模态理解模型,包括GLM-Edge-1.5B-Chat、GLM-Edge-4B-Chat、GLM-Edge-V-2B和GLM-Edge-V-5B四种尺寸。这些模型针对手机、车机及PC等不同平台进行了优化,通过量化的技术手段,实现了高效运行。例如,在高通骁龙8 Elite平台上,1.5B对话模型和2B多模态模型能够达到每秒60 tokens以上的解码速度,而通过应用投机采样技术,这一数字可提升至100 tokens以上。
智谱开源端侧大语言和多模态模型GLM-Edge系列!
|
11月前
|
数据采集 机器学习/深度学习 人工智能
《探秘:人工智能如何为鸿蒙Next元宇宙网络传输与延迟问题破局》
鸿蒙Next结合人工智能,为元宇宙的网络传输和低延迟问题提供创新解决方案。通过智能网络监测与预测、自适应传输策略调整、智能路由与负载均衡、数据预处理与缓存优化及错误检测与恢复等技术,确保用户在元宇宙中享受流畅、沉浸式的体验。这些方法不仅提升了数据传输效率,还增强了系统的稳定性和响应速度,推动元宇宙产业快速发展。
290 12
|
人工智能 编解码 算法
Stable Diffusion超详细教程!从0-1入门到进阶
本文提供了Stable Diffusion AI绘画工具的超详细入门到进阶教程,包括本地部署、界面基础、模型选择、ControlNet安装与使用,以及如何通过不断学习和调试提升使用效果。
Stable Diffusion超详细教程!从0-1入门到进阶
|
Java 开发工具 Android开发
OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)
OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)
2181 0
|
存储 机器学习/深度学习 测试技术
mnn-llm: 大语言模型端侧CPU推理优化
mnn-llm: 大语言模型端侧CPU推理优化
1950 1