工程之道,MegEngine推理性能极致优化之综述篇

本文介绍了MegEngine如何通过Inference Layout、Im2col+MatMul、Winograd和Fast-Run等技术实现深度学习推理性能的极致优化。在ResNet18和ResNet50等模型上,最高加速比可达2x以上,展现了优秀的推理性能。MegEngine的独特优势在于训练推理一体化,保证精度的同时,通过卷积优化实现快速运行速度。
摘要由CSDN通过智能技术生成

MegEngine「训练推理一体化」的独特范式,通过静态图优化保证模型精度与训练时一致,无缝导入推理侧,再借助工业验证的高效卷积优化技术,打造深度学习推理侧极致加速方案,实现当前业界最快运行速度。本文从推理侧的数据排布(Inference Layout)讲起,接着介绍MegEngine的Im2col+MatMul、Winograd、Fast-Run工程优化实践。经典的轻量卷积神经网络实验表明,经过MegEngine加速,ResNet18和ResNet50最高加速比可达2x以上,ShuffleNet V2和MobileNet V2执行效率也得到显著提升,实现了业界当前最佳推理性能。

深度学习是一个端到端的自动化系统,在数据驱动之下,算法历经训练测试、工程部署、推理实现三个环节。深度学习技术能否最终落地为产品,细粒度满足不同场景需求,深度学习框架的推理性能优化是一个关键变量。

针对不同硬件设备对性能的苛刻要求,业界一般做法是开发一套推理专用框架,不足是造成了训练与推理的分裂。MegEngine(中文名:天元)「训练推理一体化」的独特范式,可以实现训练与推理的精确等价性,避免转换可能带来的精度损失。

MegEngine的推理性能优化有两个阶段,1)工程部署时的静态图优化,保证模型精度和训练时一致,2)推理实现时的卷积优化,保证模型运算的最快速度。两者最终的优化目标是实现模型推理又「好」又「快」。

深度学习中,卷积种类众多,计算也最为耗时,成为首要优化对象,而推理侧卷积优化更是重中之重。如何让深度学习模型鲁棒运行和推理,即在不同硬件平台(比如CPU)上,针对目标架构(比如X86/ARM)做计算优化,实现最快运行速度,是一个长久存在的挑战。

MegEngine秉持极致的「工程之道」,针对CPU推理的卷积优化,做了细致而系统的工程创新,不断逼近加速极限。本文是MegEngine卷积优化技术的「综述篇」,基于已有工作,做了多项技术的工程优化,包括Inference Layout、Im2col+MatMul、Winograd、Fast-Run。后续会有相关技术的详解篇。

Inference Layout

推理侧卷积计算优化方面,首先面临的问题是feature map的数据排布(Tensor Layout),选择合适的数据排布不仅会使卷积优化事半功倍,还可作为其他优化方法的基础,比如Im2col、Winograd、Fast-Run。

目前,深度学习框架中常见的数据排布格式有3种:

  • NHWC:[Batch, Height, Width, Channels]
  • NCHW:[Batch, Channels, Height, Width]
  • NCHWX:[Batch, Channels/X, Height, Width, X=4/8]

数据的排布对卷积计算有着整体性的直接影响。NHWC和NCHW的空间复杂度相同,区别在于访存行为,NCHWX介于两者之间,但是有其他优点。

NCHWX

NCHWX在N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值