深度学习训练通常被视为GPU的专属领域,但英特尔并未安于这一传统认知。凭借在CPU领域的深厚技术积淀,英特尔及其合作伙伴持续探索利用CPU高效推进深度学习的可行路径。其中,代号KNL的Xeon Phi至强芯片正是关键尝试,同时英特尔也在算法层面实施了多项优化。本文将从摩尔定律的演进切入,结合IDF16大会上浪潮集团副总裁胡雷钧的技术分享,系统介绍如何基于英特尔至强融核处理器KNL和FPGA构建高性能深度学习平台。
深度学习与高性能计算的发展趋势
摩尔定律经历了三个关键阶段:1965–2005年的单核CPU时代;2006年至今的多核CPU时代;以及2012年至今的多核英特尔MIC(众核集成)时代。当下,深度学习正成为高性能计算(HPC)的全新驱动力。

深度学习与HPC相互促进:一方面,HPC与大数据融合推动了深度学习的进步;另一方面,深度学习也在不断催生新的高性能计算模型。其成功可归结为三大要素:
- 海量标注数据样本:图片数据已达数十亿级,语音数据超过10万小时。
- 先进算法与软件框架:算法涵盖DNN/CNN/RNN,软件框架包括Caffe、TensorFlow、MXNet等。
- 高性能计算的激励:AlphaGo便是典型范例。

深度学习在高性能计算中面临的挑战
挑战主要集中在以下两个方面:
1. 大规模深度学习平台的系统设计
- 离线训练:需要高性能计算,属于计算密集型和通信密集型任务。
- 在线识别:要求高吞吐量与低功耗。
针对上述需求,最优方案是采用KNL平台处理离线训练,FPGA平台处理在线识别,最终构建KNL + FPGA 机群 + OPA网络 + Lustre存储的完整深度学习平台。


2. 多核设备与机群系统的算法设计
- 多核设备:需要异构细粒度并行算法。
- 机群系统:需要分布式粗粒度并行算法。
在浪潮—Intel中国并行计算实验室中,KNL/FPGA技术研究、HPC/深度学习应用、第一代Xeon Phi Book三大方向正在同步推进。

英特尔KNL技术深度解析
KNL是英特尔第二代MIC架构,基于X86架构的多核计算,拥有最多72核,总计288线程。目前提供三种产品模型:处理器、协处理器、KNL-F。其内存与带宽特性如下:
- DDR4:384 GB,带宽90+ GB/s
- MCDRAM:16 GB,带宽500 GB/s

KNL的核心优势:高性能、高应用适配性、高可扩展性、易编程。

性能测试结果
- 性能提升:1 KNL / 2 CPU = 6.88 倍(叠加效果)
- 扩展效率:95%

基于KNL的Caffe-MPI框架实践
背景与问题
Caffe在用户中广受欢迎,但面对超大规模数据时,单节点训练时间过长。原版Caffe(伯克利版本)默认不支持多节点并行和并行文件系统,导致超大规模深度学习运算效率低下。由于Caffe开源,理论上可以改进以支持集群并行计算。

Caffe-MPI框架设计
浪潮集团在原版Caffe基础上开发了Caffe-MPI,这是第一代支持在KNL上集群并行计算的Caffe版本,集成了英特尔Lustre文件系统、OPA网络和KNL集群。

其计算流程采用MPI主从模式:
- 主节点:使用一个KNL,MPI单进程 + 多Pthread线程
- 从节点:由N个KNL构成,MPI多进程
- 软件支持:Linux / Intel MKL / Mvapich2
- 存储:专为HPC设计的Lustre文件系统,避免数据瓶颈


主进程中可同时处理三个线程:并行读取与发送数据、权重计算与参数更新、网络间参数沟通。

从进程主要流程:接收训练数据 → 发送权重数据 → 接收新网络数据 → 进行前向/后向计算。每个从KNL核对应一个MPI从节点。

性能优化与结果
Caffe-MPI对原版Caffe进行了多项优化,最终效果:性能提升至原版的3.78倍,且增加KNL处理器数量时扩展效率高达94.5%。

FPGA在深度学习中的应用
FPGA是深度学习领域极具潜力的硬件,其特点包括:高性能、支持更多并行模式、高密度、易编程、适配OpenCL。

在在线识别领域,浪潮、Altera与科大讯飞共同验证了FPGA系统的有效性。结果表明,FPGA组成的系统在各项指标上显著优于传统CPU系统。

结论
对于离线学习场景,基于KNL处理器搭建的MPI-Caffe架构能够高效完成任务;对于在线语音平台等在线认知项目,FPGA系统则是最佳选择。

常见问题(FAQ)
- 问:为什么CPU通常被认为不适合深度学习训练?
答:传统CPU核心数较少、并行计算能力不及GPU,但英特尔KNL凭借多核架构(最多72核)和MCDRAM高带宽有效弥补了这些不足,尤其适合计算密集型的离线训练场景。 - 问:KNL与GPU相比有哪些优势?
答:KNL基于X86架构,兼容现有软件生态,可编程性更强;且在大规模集群中扩展效率高达95%,而GPU在节点间通信时可能出现瓶颈。 - 问:Caffe-MPI与普通Caffe的主要区别是什么?
答:Caffe-MPI支持多节点并行(MPI主从模式)、Lustre并行文件系统和OPA网络,能够处理超大规模数据,训练速度提升至原版的3.78倍。 - 问:FPGA在在线识别中如何优于CPU?
答:FPGA具有低功耗、高吞吐量、硬件级并行计算特性,能实现更快的推理响应,适合语音识别等实时性要求高的场景。
小提示
- 在搭建KNL集群时,建议优先选择搭载MCDRAM的KNL-F型号,可显著提升内存密集型任务的性能。
- 使用Caffe-MPI时,注意调整MPI进程数与KNL核心数的配比(推荐1:1),并确保Lustre文件系统的元数据服务足够强大。
- FPGA开发时,可利用OpenCL高级语言进行编程,降低硬件设计门槛。
