[论文解读] Deep Tensor Convolution on Multicores
本文提出了一种高度优化的、多线程的CPU实现方法,用于深度学习工作负载中的N维Winograd卷积,通过利用CPU特定的内存访问模式和向量化技术,实现了比当前最先进的CPU框架快5–25倍的吞吐量。该方法通过克服GPU内存限制,使单节点系统上运行大规模3D ConvNets成为可能。
Deep convolutional neural networks (ConvNets) of 3-dimensional kernels allow joint modeling of spatiotemporal features. These networks have improved performance of video and volumetric image analysis, but have been limited in size due to the low memory ceiling of GPU hardware. Existing CPU implementations overcome this constraint but are impractically slow. Here we extend and optimize the faster Winograd-class of convolutional algorithms to the $N$-dimensional case and specifically for CPU hardware. First, we remove the need to manually hand-craft algorithms by exploiting the relaxed constraints and cheap sparse access of CPU memory. Second, we maximize CPU utilization and multicore scalability by transforming data matrices to be cache-aware, integer multiples of AVX vector widths. Treating 2-dimensional ConvNets as a special (and the least beneficial) case of our approach, we demonstrate a 5 to 25-fold improvement in throughput compared to previous state-of-the-art.
研究动机与目标
- 解决GPU内存上限问题,该问题限制了视频和体素图像分析中3D ConvNets的规模和表达能力。
- 克服现有基于CPU的ConvNet实现性能过慢的不切实际问题。
- 通过利用多核CPU架构,实现在单节点系统上大规模、单机运行3D及更高阶ConvNets。
- 将快速卷积算法(Winograd风格)推广至N维核,以实现CPU优化性能。
提出的方法
- 将Winograd快速卷积框架扩展至N维核,实现3D及更高阶卷积的高效计算。
- 通过利用CPU内存的宽松约束和高效的稀疏访问模式,消除对手动算法手工优化的依赖。
- 将输入和核数据转换为缓存友好、AVX对齐的矩阵格式,以最大化向量化和CPU利用率。
- 通过中国剩余定理进行矩阵分解,将滑动窗口卷积转换为稀疏的逐元素乘积。
- 应用核和数据变换(C, B)及逆变换(A),将卷积简化为矩阵-向量运算,最大限度减少冗余计算。
- 优化数据布局和内存访问模式,以提升数据局部性并降低多核环境下的延迟。
实验结果
研究问题
- RQ1是否能够无需手动优化,高效且自动生成适用于CPU架构的N维Winograd风格卷积?
- RQ2在多核CPU上,能否充分挖掘内存特性与向量化能力,以超越GPU优化但内存受限的实现?
- RQ3与现有深度学习框架相比,该方法在多核系统上的可扩展性如何?
- RQ4能否显著缩小CPU与GPU实现之间在3D ConvNets上的性能差距,以实现实际的大规模推理?
主要发现
- 在单个CPU核心上,该方法实现了0.89 MVox/s的吞吐量,相比TensorFlow(0.18 MVox/s)和Caffe(0.19 MVox/s)提升了4.9倍。
- 在18个核心下,吞吐量达到10.9 MVox/s,相比TensorFlow(1.77 MVox/s)提升了5.8倍,相比Caffe(0.41 MVox/s)提升了26.6倍。
- 该实现展现出68%的多核可扩展性,显著优于TensorFlow(55%)和Caffe(12%)。
- 该方法通过克服GPU内存限制,使在单节点系统上实际部署大规模3D ConvNets成为可能。
- 该方法可推广至2D ConvNets作为特例,在不同网络类型中均保持高性能。
- 性能提升主要归因于高效的内存访问、AVX向量化以及对人工高度优化核的依赖减少。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。