CNN 中卷积自动调优的 I/O 下界
机器学习
2021-01-01 v1
摘要
卷积是卷积神经网络(CNN)计算中最耗时的部分,而 CNN 已在众多应用中取得巨大成功。由于复杂的数据依赖关系和模型样本数量的增加,卷积在数据移动(即内存访问)方面面临高昂的开销。本工作提供了全面的分析与方法,以最小化 CNN 中卷积的通信量。通过对红蓝博弈模型下近期 I/O 复杂度理论的深入分析,我们为包含若干不同子计算的复合算法建立了通用的 I/O 下界理论。基于所提出的理论,我们建立了 CNN 中两种代表性卷积算法——直接卷积与 Winograd 算法——的数据移动下界结果。接着,由 I/O 下界结果出发,我们通过充分挖掘数据复用,为这两种主要卷积算法设计了近 I/O 最优的数据流策略。此外,为了进一步提升近 I/O 最优数据流策略的性能上限,提出了一种基于 I/O 下界的激进自动调优设计,用于在 GPU 上为直接卷积和 Winograd 算法搜索最优参数配置,例如每个线程块中使用的线程数和共享内存大小。最后,在直接卷积和 Winograd 算法上的实验评估结果表明,采用自动调优方法的数据流策略相较 cuDNN 平均可实现约 3.32 倍的性能加速。此外,与代表自动调优最先进技术的 TVM 相比,我们不仅基于 I/O 下界的自动调优方法能更快地找到最优参数配置,而且我们的方案性能也高于 TVM 提供的最优解。
引用
@article{arxiv.2012.15667,
title = {I/O Lower Bounds for Auto-tuning of Convolutions in CNNs},
author = {Xiaoyang Zhang and Junmin Xiao and Guangming Tan},
journal= {arXiv preprint arXiv:2012.15667},
year = {2021}
}