HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

百度发布全新端侧推理引擎 Paddle Lite,支持华为 NPU 在线编译

  • 2019-08-21
  • 本文字数:1319 字

    阅读完需:约 4 分钟

百度发布全新端侧推理引擎Paddle Lite,支持华为NPU在线编译

北京时间 8 约 21 日,InfoQ 获悉:百度深度学习平台飞桨(PaddlePaddle)发布 Paddle Lite,该推理引擎在多硬件、多平台以及硬件混合调度的支持上更加完备,是飞桨在 Paddle Mobile 的基础上进行的一次大规模升级迭代。通过对底层架构设计的改进,拓展性和兼容性等方面实现显著提升。目前,Paddle Lite 已经支持了 ARM CPU,Mali GPU,Adreno GPU,华为 NPU 以及 FPGA 等诸多硬件平台,是目前首个支持华为 NPU 在线编译的深度学习推理框架。


随着技术进步,手机等移动设备已成为非常重要的本地深度学习载体,然而日趋异构化的硬件平台和复杂的终端侧的使用状况,让端侧推理引擎的架构能力颇受挑战。端侧模型的推理往往面临着算力和内存的限制,为了能够完整的支持众多的硬件架构,并且实现在这些硬件之上人工智能应用性能的性能优化,百度飞桨基于 Paddle Mobile 预测库,融合 Anakin 等多个相关项目的技术优势,发布端侧推理引擎 Paddle Lite,通过建模底层计算模式,加强了多种硬件、量化方法、Data Layout 混合调度执行的能力,从而保障了宏观硬件的支持能力。


Paddle Lite 在架构上全新升级,并重点增加了多种计算模式(硬件、量化方法、Data Layout)混合调度的完备性设计,可以完整承担深度学习模型在不同硬件平台上的的推理部署需求,具备高性能、多硬件、多平台、扩展性强等优势。Paddle Lite 依托飞桨训练框架及其对应的丰富完整的算子库,底层算子计算逻辑与训练一致,模型完全兼容无风险,并可快速支持更多模型。


Paddle Lite 架构由四层次组成:


  • 第一层 model 层直接接受 Paddle 训练的模型,通过模型优化工具转化为 NaiveBuffer 特殊格式,以便更好地适应移动端的部署场景;

  • 第二层 Program 层是 operator 序列构成的执行程序;

  • 第三层是一个完整的分析模块,主要包括 TypeSystem、SSA Graph 和 Passes 等模块;

  • 第四层是执行层,由 Kernel 序列构成的 Runtime Program。



Paddle Lite 具有以下重要特性:


与其他端侧引擎相比,Paddle Lite 扩展性更高,框架层硬件抽象层次的描述能力强,容易对新的硬件进行集成,可以模块化地对硬件和模型进行更细致的分析和优化。


在模型支持方面,Paddle Lite 现已支持 Paddle 图像分类、检测、分割及图像文字识别等领域的模型预测,官方发布了 18 个模型的 benchmark。此外,可以通过 X2Paddle 工具将由 Caffe 和 TensorFlow 训练的模型转换后进行预测。


在硬件支持方面,目前 Paddle Lite 已支持 ARM CPU, ARM GPU、华为 NPU 和 FPGA 等硬件平台,正在优化支持的有寒武纪、比特大陆等国产 AI 芯片,并会兼容支持的 Intel、NVIDIA 等主流云端芯片。


在性能方面,Paddle Lite 针对不同微架构,进行了 kernel 的深度优化,支持 INT8 量化计算,在华为 NPU 上也具有良好的性能表现。


Paddle Lite 可针对端侧设备特点进行深度定制及优化,无第三方库依赖,整个推理过程分为模型加载解析、计算图的优化分析及设备上的高效运行。移动端可以直接部署经过优化分析的图,执行预测。Android 平台上,ARMV7 动态库只需要 800k,ARMV8 动态库仅有 1.3M,也可以根据需要,进行更深度的剪裁。


此外,Paddle Lite 还进一步完善提供了 Web 前端开发接口,支持 JavaScript 调用 GPU,可在网页端快捷运行深度学习模型。


2019-08-21 20:0310157

评论

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

面试必备知识点:悲观锁和乐观锁的那些事儿

鄙人薛某

面试 乐观锁 悲观锁 CAS 并发控制

数字人民币钱包短暂露面 金融诈骗伺机而起

CECBC

数字货币 钱包 货币

USDT承兑商软件开发,区块链支付系统源码搭建

13530558032

管理时间还是挥霍时间?

钰湚—付晓岩

学习 时间管理 工作体会 工作哲学

Keepass+Synology 打造私人密码管理器

zj坚果

新时代背景下的Java语法特性

九叔(高翔龙)

Java java 14 java 14 新特性 Java 分布式

DockerHub 镜像仓库的使用

哈喽沃德先生

Docker 容器 微服务 镜像

揭开链表的真面目

Java旅途

Java 数据结构 链表

Week12

一叶知秋

文件系统

Linuxer

产品经理的架构思维

吴世亮

架构 产品经理 电商

人民版权 获2020中国产业区块链创新奖

CECBC

区块链 产业发展 版权

甲方日常4

句子

工作 随笔杂谈 日常

性能相关 磁盘I/O子系统

Linuxer

数字货币交易平台搭建,去中心化交易所开发方案

13530558032

合约跟单软件开发,合约跟单交易所系统开发搭建

13530558032

在面试中成长

escray

学习 面试

Golang写算法

卒迹

算法 Go 语言

SpreadJS 纯前端表格控件应用案例:表格数据管理平台

葡萄城技术团队

你也许还不懂静态方法和实例方法

架构师修行之路

Jenkins持续集成「编译打包、代码检查、单元测试、环境部署、软件测试​」

清菡软件测试

jenkins

oeasy教您玩转linux-010110内容回顾

o

java安全编码指南之:对象构建

程序那些事

Java 安全 安全编码指南 对象构建

拖延症竟然是自己给自己的一种奖励?如何干掉它?

非著名程序员

个人成长 拖延症 番茄土豆工作法

Python 到底是强类型语言,还是弱类型语言?

Python猫

Java c++ Python 编程

面试是一张窄窄的船票

escray

学习 面试

week 12 学习总结

Geek_2e7dd7

自己做的 PPT 总被批「缺少干货」?试试先回答这三个问题

Tony Wu

效率工具 方法论 PPT

数字资产钱包开发,深圳区块链理财钱包服务商

13530558032

MySQL复杂where条件分析

程序员历小冰

MySQL

week 12 作业

Geek_2e7dd7

百度发布全新端侧推理引擎Paddle Lite,支持华为NPU在线编译_AI&大模型_高琳_InfoQ精选文章