[论文解读] Towards Latency-aware DNN Optimization with GPU Runtime Analysis and Tail Effect Elimination
本文提出了一种GPU运行时感知的DNN优化方法,通过全面分析GPU执行模式,识别并消除了由低效的线程块调度和资源利用率不足引起的GPU尾部效应。该方法通过将DNN模型配置适配至GPU波长执行特性,实现了在高端和嵌入式GPU上相较于SOTA剪枝与NAS方法11%–27%的延迟降低,以及2.5%–4.0%的精度提升。
Despite the superb performance of State-Of-The-Art (SOTA) DNNs, the increasing computational cost makes them very challenging to meet real-time latency and accuracy requirements. Although DNN runtime latency is dictated by model property (e.g., architecture, operations), hardware property (e.g., utilization, throughput), and more importantly, the effective mapping between these two, many existing approaches focus only on optimizing model property such as FLOPS reduction and overlook the mismatch between DNN model and hardware properties. In this work, we show that the mismatch between the varied DNN computation workloads and GPU capacity can cause the idle GPU tail effect, leading to GPU under-utilization and low throughput. As a result, the FLOPs reduction cannot bring effective latency reduction, which causes sub-optimal accuracy versus latency trade-offs. Motivated by this, we propose a GPU runtime-aware DNN optimization methodology to eliminate such GPU tail effect adaptively on GPU platforms. Our methodology can be applied on top of existing SOTA DNN optimization approaches to achieve better latency and accuracy trade-offs. Experiments show 11%-27% latency reduction and 2.5%-4.0% accuracy improvement over several SOTA DNN pruning and NAS methods, respectively
研究动机与目标
- 解决由于软硬件不匹配,导致理论FLOPs减少与实际运行时延迟收益之间存在差距的问题。
- 识别尽管FLOPs减少但延迟减少不一致的根本原因,特别是由次优线程调度引起的GPU尾部效应。
- 开发一种方法,将DNN模型结构适配至GPU运行时特性,以优化延迟与精度之间的权衡。
- 将该方法推广至多种GPU平台,包括高端和嵌入式系统。
提出的方法
- 通过检查单个GPU核心和线程,开展全栈GPU运行时分析,以揭示延迟阶梯化现象的根本原因。
- 将“GPU尾部效应”重新定义为由于线程块大小与内核启动模式不匹配,导致波长级别GPU执行效率低下所致。
- 提出线程自适应DNN部署方法,通过重新配置模型结构(如滤波器数量、批处理大小、滤波器形状)以匹配GPU波长边界,提升资源利用率。
- 提出GPU效率准则,将DNN层配置映射至最优GPU执行周期,最小化空闲周期和吞吐量波动。
- 在现有SOTA DNN优化技术(如剪枝、NAS)之上应用该方法,无需修改GPU特定代码。
- 在多个DNN模型(VGG16、ResNet56)和GPU平台(P6000、Jetson Nano)上验证了该方法的通用性。
实验结果
研究问题
- RQ1为何在GPU上进行DNN推理时,FLOPs减少并不能始终转化为延迟降低?
- RQ2在DNN模型剪枝与重构过程中观察到的非线性‘延迟阶梯’模式是由什么引起的?
- RQ3DNN推理期间GPU硬件利用率和吞吐量如何波动,这种波动在性能下降中起到何种作用?
- RQ4能否通过模型级配置调整系统性地识别并缓解GPU尾部效应?
- RQ5所提出的优化方法在不同GPU平台和DNN架构上的通用性程度如何?
主要发现
- 延迟阶梯化模式——即使FLOPs减少但延迟减少不一致的指示——在不同批处理大小、输入分辨率、滤波器形状和滤波器数量下依然存在。
- GPU尾部效应源于低效的线程块调度和波长级别GPU执行,即使FLOPs减少,也会导致空闲周期和资源利用率不足。
- 在P6000 GPU上,该方法使VGG16的延迟降低27.2%,ResNet56降低9.0%,同时保持或略微提升精度。
- 在Jetson Nano嵌入式GPU上,该方法使VGG16的延迟降低20.5%,ResNet56降低13.3%–17.1%,展现出强大的跨平台通用性。
- 即使作为后优化层应用,该方法在精度-延迟权衡上仍优于SOTA剪枝与NAS方法2.5%–4.0%。
- 延迟阶梯化在滤波器数量多、批处理大小高的密集卷积层中最为显著,但在轻量级深度可分离卷积中得到缓解。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。