[论文解读] Communication-Optimal Convolutional Neural Nets
本文通过推导数据移动的紧致下界,并设计实现这些下界的循环重排与分块策略,提出了针对卷积神经网络(CNNs)的通信最优算法。通过利用CNN计算中的问题特异性结构,该方法显著提升了数据重用率——最高达矩阵乘法的2.75倍,从而在现代架构上降低了通信开销。
Efficiently executing convolutional neural nets (CNNs) is important in many machine-learning tasks. Since the cost of moving a word of data, either between levels of a memory hierarchy or between processors over a network, is much higher than the cost of an arithmetic operation, minimizing data movement is critical to performance optimization. In this paper, we present both new lower bounds on data movement needed for CNNs, and optimal sequential algorithms that attain these lower bounds. In most common cases, our optimal algorithms can attain significantly more data reuse than matrix multiplication.
研究动机与目标
- 解决CNN中因通信开销远高于算术运算而引发的性能瓶颈问题。
- 在不依赖实现细节的前提下,确定CNN中卷积层与池化层的数据移动基本下界。
- 设计出在所有常见CNN超参数配置下均能达到这些下界的最优循环重排与分块策略。
- 将分析扩展至并行环境,并应用于AlexNet等实际模型,展示实际通信开销的降低。
- 通过形式化的优化技术,为编译器中自动生成通信优化代码奠定基础。
提出的方法
- 利用泛函分析、群论与格理论等高级数学工具,推导出新的通信下界。
- 将最优分块问题建模为一个线性规划(LP)问题,变量为循环分块大小,约束条件为快速内存容量(缓存大小M)。
- 通过证明在所有参数组合下LP公式中均存在可行解,从而证明下界始终可被达到。
- 使用对数变换将非线性分块优化问题转化为可解的线性规划问题。
- 将模型推广至包含步长参数与多级内存结构的情形,从而支持对真实CNN工作负载的分析。
- 将结果扩展至池化层,并讨论其在具有共享内存的分布式多处理器系统中的影响。
实验结果
研究问题
- RQ1在给定任意维度与缓存大小M的前提下,计算CNN卷积层所需的理论最小数据移动量是多少?
- RQ2该下界是否可通过循环与数据访问模式的算法重排在实际中实现?
- RQ3最优CNN算法中的数据重用率与标准矩阵乘法(一种典型的密集线性代数运算)相比如何?
- RQ4这些下界与算法对真实世界深度学习模型(如AlexNet)有何影响?
- RQ5所提出的方法能否推广至自动优化任意嵌套循环嵌套的通信效率,以应用于编译器?
主要发现
- 本文建立了CNN的新通信下界,其表达式为五个涉及输入维度、滤波器大小、步长与缓存大小M的表达式的最大值。
- 在大多数常见情况——尤其是滤波器较小且缓存受限时——下界中的第五项 $ BCKWH(RS\frac{\rho}{M})^{1/2} $ 占主导地位,代表最小通信成本。
- 所提出的最优算法实现的数据重用率最高可达矩阵乘法的2.75倍,显著减少了通信量。
- 对于AlexNet等真实模型,当M较小时(如L1/L2缓存大小),该方法实现了相对于基于矩阵乘法方法的整数倍通信成本降低。
- 分块的线性规划公式在所有参数范围内均具有可行性,并保证达到理论下界。
- 该方法可推广至共享内存的并行环境,其中通信成本随处理器数量与问题划分方式的优化而最优地缩放。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。