[论文解读] Accelerating SLIDE Deep Learning on Modern CPUs: Vectorization, Quantizations, Memory Optimizations, and More
该论文通过利用AVX-512向量化、bfloat16量化和内存访问优化,对现代x86 CPU上的SLIDE深度学习系统进行了优化,实现了比V100 GPU上的TensorFlow快达7倍、比同硬件上TF-CPU快7.9倍的训练速度,表明软件层面的优化可与专用硬件性能比肩甚至超越,尤其适用于大规模稀疏模型。
Deep learning implementations on CPUs (Central Processing Units) are gaining more traction. Enhanced AI capabilities on commodity x86 architectures are commercially appealing due to the reuse of existing hardware and virtualization ease. A notable work in this direction is the SLIDE system. SLIDE is a C++ implementation of a sparse hash table based back-propagation, which was shown to be significantly faster than GPUs in training hundreds of million parameter neural models. In this paper, we argue that SLIDE's current implementation is sub-optimal and does not exploit several opportunities available in modern CPUs. In particular, we show how SLIDE's computations allow for a unique possibility of vectorization via AVX (Advanced Vector Extensions)-512. Furthermore, we highlight opportunities for different kinds of memory optimization and quantizations. Combining all of them, we obtain up to 7x speedup in the computations on the same hardware. Our experiments are focused on large (hundreds of millions of parameters) recommendation and NLP models. Our work highlights several novel perspectives and opportunities for implementing randomized algorithms for deep learning on modern CPUs. We provide the code and benchmark scripts at https://github.com/RUSH-LAB/SLIDE
研究动机与目标
- 通过针对现代x86架构优化SLIDE系统,解决在训练大规模深度学习模型时CPU与GPU之间的性能差距。
- 探索未被充分利用的CPU特性(如AVX-512、bfloat16和内存访问模式),以加速稀疏深度学习工作负载。
- 证明软件层面的优化可使通用CPU在大规模推荐和NLP模型训练中媲美甚至超越专用硬件(如GPU)的性能。
- 通过利用稀疏性和系统级优化,在单台CPU机器上实现可扩展、内存高效的十亿参数模型训练。
提出的方法
- 应用AVX-512向量化技术,通过单条指令处理16个16位整数,加速SLIDE中稀疏参数更新的密集计算部分。
- 集成bfloat16量化技术,对权重和激活值均进行量化,以减少内存带宽需求并提高算术强度。
- 实施内存访问优化,降低DRAM延迟,并提升随机化参数更新流水线中的数据局部性。
- 将向量化、量化和内存优化整合为一个统一的、高度调优的SLIDE实现,专为支持AVX-512的Intel Xeon CPU设计。
- 采用基于C++的SLIDE框架,依赖极少,确保在通用x86平台上的可移植性和高性能。
- 在受控条件下,针对大规模推荐和NLP数据集(Amazon-670K、WikiLSH-325K、Text8)评估性能。
实验结果
研究问题
- RQ1AVX-512向量化是否能显著加速现代CPU上的稀疏深度学习工作负载?
- RQ2bfloat16量化在不损失模型准确率的前提下,能在多大程度上提升SLIDE的训练吞吐量?
- RQ3在随机化稀疏深度学习系统中,内存访问优化能带来多大的性能提升?
- RQ4全优化的基于CPU的SLIDE实现是否能在大规模模型上超越V100 GPU上的TensorFlow等GPU优化框架?
- RQ5向量化、量化和内存优化对SLIDE整体加速的相对贡献分别是什么?
主要发现
- 在Intel Xeon Platinum 8368(CPX)上优化后的SLIDE,对Text8数据集的训练速度比V100 GPU上的TensorFlow快达15.5倍。
- 在Amazon-670K数据集上,CPX上的优化SLIDE比V100 GPU上的TF快7.8倍,比同CPU上的TF-CPU快7.9倍。
- 仅AVX-512向量化即可将训练时间缩短最多1.2倍,表明其在计算密集型阶段具有显著影响。
- BF16量化对Amazon-670K和WikiLSH-325K的性能提升最高达1.39倍,但在Text8上性能下降,表明其效果具有数据集依赖性。
- 内存优化贡献了最大的加速比例,占向量化和量化之外2–7倍性能提升的绝大部分。
- 优化后的SLIDE保持了与全softmax基线相当的P@1性能,证实了在激进优化下模型准确率未受影响。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。