paddlepaddle CPU模型部署加速包 MKL-DNN
2023-09-11 14:14:27 时间
模型自带即可,无需更改代码
安装好带 MKL-DNN 的 MXNet 之后,我们就可以运行 MXNet 上的模型了。因为 MXNet 使用 MKL-DNN 来加速原有的操作符,所以用户并不需要修改任何代码来提升性能。下面我们用 MXNet 自带的 benchmark 来展示使用 MKL-DNN 加速的 MXNet 在 CPU 上的性能。
加速说明
mkldnn的作用是为cpu运行网络加速;
mkldnn是intel开发的开源项目,就是针对cpu上运行神经网络做了一些并行优化;但并不是针对所有模型都有效,比如:你跑一个模型,这些指令集应该是会加速一部分操作的速度,但是可能你跑的最耗时的操作并没有被加速,即使一部分速度的提升也看不出效果。比如最耗时的操作要2秒,被加速的指令需要100ms,这样即使快了几倍,最终的时间也没有太大差别。
paddle加速配置
parser.add_argument('--enable_mkldnn', type=eval, default=True, choices=[True, False],
help='Enable to use mkldnn to speed up when using cpu.')
elif args.device == "cpu":
# set CPU configs accordingly,
# such as enable_mkldnn, set_cpu_math_library_num_threads
config.disable_gpu()
if args.enable_mkldnn:
# cache 10 different shapes for mkldnn to avoid memory leak
config.set_mkldnn_cache_capacity(10)
config.enable_mkldnn()
config.set_cpu_math_library_num_threads(args.cpu_threads)
理解
本文首先对MKL-DNN以及其基本概念进行了简单介绍,随后介绍了三种MKLDNN的推理加速技术,包含卷积计算、分块数据排布与层融合技术,最后通过一个简单的实验,测试了以上推理加速技术并展示了不同技术对推理性能所带来的提升大小。MKLDNN在不同硬件条件下,能够充分利用多种加速技术并针对当前硬件生成优化后的指令集,是非常优秀的推理加速库,也是Adlik自研推理引擎的重要参考之一。学习MKLDNN推理加速设计思路,不仅能够在模型推理方面带来效率的提升,也为其它异构设备的执行优化提供了参考。
相关文章
- Docker教程---实现持续交付、持续部署
- SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器试读版
- Atitit 计算机系统结构 计算机系统结构 Cpu 存储 cache 指令系统 目录 Line 56: 第2章指令系统设计 指令格式 寻址方式1 Line 64: 第3章CPU及其实现
- 一文详解Jenkins教程以及Jenkins中的CI/CD自动化部署机制
- R0-R37它是Arm 寄存器,那是,CPU内部。和GPIO注册所有外设。换句话说,要是arm的cpu,它包含了其他芯片公司将有R0-R37,和GPIO寄存器只有一个特定的芯片。
- 使用阿里云 ECS 快速部署 WordPress 博客系统
- CPU varios algo类算法挖矿币种汇总 多数支持tls加密 https://pool.rplant.xyz/ 这个站点很不错 cpu挖矿很多算法支持
- Ubuntu LVS DR模式生产环境部署
- 【实操】使用 Zeabur 和 docker 两种方式部署 ChatGPT 详细教程
- Linux - 部署node项目
- Redis主从部署及sentinel配置详细教程
- K8S 使用NFS存储 动态创建 PVC/PV 并通过 Statefulset 部署 MySQL