基于处理器KNL和FPGA的深度学习算法搭建

进行深度学习的训练向来不被认为是cpu的强项,但是以cpu研发见长的英特尔并不甘心屈服于这个定位,在过去的几年里,英特尔及其合作伙伴一直在探索用cpu来进行快速有效的深度学习开发的方法。代号knl的xeon phi至强芯片是英特尔的努力尝试之一,同时在深度学习算法的改进上,英特尔也做了一些努力。
在美国旧金山举行的idf16大会上,与英特尔联合宣布启动了knl试用体验计划的浪潮集团副总裁、技术总监胡雷钧做了基于英特尔至强融合处理器knl和fpga上的深度学习的试用体验报告。报告介绍了高性能计算和深度学习发展的趋势、深度学习在高性能计算平台上的挑战和解决办法、大规模深度学习平台的系统设计、多核设备和机群系统的算法设计(包括knl和fpga各自的技术分析) 4部分的内容。下面我们从摩尔定律的演变开始,看企业在实践过程中,如何基于英特尔至强融合处理器knl和fpga,搭建最佳的深度学习算法。
摩尔定律的革命
1965年摩尔定律提出后,我们开始依次进入1965-2005年的单核cpu时代;2006至如今的多核cpu时代;2012至如今的多核英特尔mic时代。
而现在,深度学习正在成为高性能计算的全新驱动力
高性能计算设备联手大数据提升深度学习的发展的同时,深度学习也在促进新的高性能计算模型的发展。归根结底,我们把深度学习现在的成功归功于三方面:
1)大量标签数据样本的出现:图片(10亿级)/语音(10万小时以上)。
2)好的算法,模型,软件的出现: 算法:dnn/cnn/rnn  软件:caffe/tensorflow/mxnet
3)高性能计算样本的激励:alphago可视为典型例子。
不可避免地,深度学习在高性能计算上遇到了挑战  
具体表现为两方面,其一,大规模深度学习平台的系统设计。比如离线训练要求的:高性能;在线识别要求的:低功耗。其二,多核设备和机群系统的算法设计问题。比如,多核设备异构细粒度并行算法;机群系统的分布式以及粗粒度并行算法。这些都是不容易解决的问题。
上述的挑战之一,大规模深度学习平台的系统设计问题,具体分为两种:
离线训练平台特点:计算机密集型/交流密集型——使用knl平台最合适。
在线识别平台特点:高吞吐量,低功耗——使用fpga平台最合适。
最终呈现出来的完整深度学习平台,就是knl+fpga 机群+opa网络+lustre存储 (由linux和clusters演化而来, 可以看做一个解决海量存储问题而设计的全新文件系统)的全新结合体。
上述的挑战之二,多核设备和机群系统的算法设计问题
在我们的浪潮—intel中国并行计算实验室里,knl/fpga技术研究;hpc/深度学习应用;第一代 xeon phi book三个方向的探索正如火如荼地进行着。
下面详细介绍具体应用实践中(ska【平方公里阵列望远镜】的数据处理软件gridding、大规模线性方程组求解器gmres和开源深度学习并行计算框架caffe-mpi的knl版本)的高性能计算平台和其算法表现。
先谈谈knl技术本身
它是英特尔第二代mic架构,基于x86 架构的多核计算:拥有最多72核,总计288线程。目前有3个产品模型:包括处理器;协处理器;knl-f。支持大规模记忆和高速宽带:ddr4:384 gb,90+gb/s。mcdram: 16gb, 500gb/s。
knl技术的优势:高性能、高应用可适性、高可扩展性、可编程。
关于knl测试结果
性能:1knl/2 cpu=6.88x 。(叠加)扩展效率:95%
以浪潮全球首发基于knl平台的深度学习计算框架caffe-mpi举例
caffe有许多用户,在中国非常流行。在数据规模很大的情况下,一个节点通常需要很长的时间去训练。这就要求,caffe的前馈计算,权重计算,网络更新可在并行机群环境中处理。
来自伯克利大学的原始版本的caffe语言在处理的数据规模太大时需要的时间太长了,并且默认情况下并不支持多节点、并行文件系统。因此不是很擅长超大规模的深度学习运算。不过由于caffe是开源的,因此理论上任何人都能对其进行自己需要的改进。caffe的多种功能事实上都有很好的被改进以支持集群并行计算的潜力。而浪潮集团在原版caffe的基础上加以改进,开发出了第一代支持在knl上进行丛集并行计算的caffe版本。支持英特尔的luster存储器、opa网络和knl丛集。
浪潮集团将这个改进版的caffe框架命名为caffe架构,下图是关于caffe-mpi在knl上进行运算时的结构的一些解释。可以看到,其计算流程采用mpi主从模式,使用多个knl处理器组成节点网络,主节点使用一个knl,而从节点可以视需求由n个knl构成,因为使用了专为hpc设计的lustre文件系统,因此数据吞吐量并不会限制到计算和训练。opa架构也保证了网络通信的顺畅。软件系统方面,支持linux/intel mkl和mvapich2 。
设计框架中的主节点为mpi单进程+多pthread线程,从节点为mpi多进程,图中展示了整个网络训练的框图。
设计中对knl的最多72个核心可以进行充分利用,主进程可以同时处理三个线程:并行读取和发送数据、权重计算和参数更新、网络间的参数沟通。下图中给出了图示。
mpi结构中的从进程的主要处理流程是:从主进程中接收训练数据、发送权重数据、接收新的网络数据、进行前向、后向计算。从节点网络中每一个knl核代表了一个mpi网络中的从节点。
下图中的信息表示,改进版的在knl丛集上运行的caffe-mpi架构对原版caffe进行了多项优化。最终的效果表现是原版的3.78倍。增加knl处理器的总数时的性能扩展效率高达94.5%。
而fpga是另一项在深度学习领域极有潜力的硬件。我们知道fpga的特点包括高性能、支持更多并行模式、高密度、易编程、适配opencl。
目前浪潮、altera和科大讯飞在在线识别领域对fpga的应用起到了很好的成效。结果表明,fpga组成的系统在各项指标上都显著优于传统cpu组成的系统。
结论是
对于离线学习来说,基于knl处理器搭建的mpi-caffe架构可以很好的完成任务。而在线语音平台等在线认知项目则很适合使用fpga来搭建系统。


NINA-B4蓝牙5.1模块迎合三种流行网状技术
iphone8什么时候上市?iphone8最新消息:iphone8即将上市,Phone 8首发才400万台,全球黄牛们正虎视眈眈
基于BOOST电路供电的LED发光二极管驱动电路设计
高耐压超级结MOSFET的种类与特征
现代测试计量技术及仪器的发展
基于处理器KNL和FPGA的深度学习算法搭建
恩智浦全新Wi-Fi 6产品组合加快在物联网、汽车、接入和工业市场中的大规模采用
Molex Nano-Pitch I/O互连系统登陆贸泽 更小的尺寸 更快速的体验
详细讨论SERDES用到的各种关键技术
热风拆焊台的使用体会,焊台使用经验
UC3825A和SG3525内部工作原理与建模介绍
8种常用网络协议有哪些
SD-WAN组网的可扩展性怎么样?
人工智能在业务营销中的应用
伺服专用输出滤波器的作用及特点说明
通信信道综合布线中的频率和宽带如何去定义性能
5G折叠手机面临的问题,5G折叠手机仅是噱头
TriQuint射频芯片组为无线回程微波无线电提供完整的解决方案
智能卡的自动化测试系统机构分析及平台设计
恩智浦(NXP)高效ESD保护的HDMI接口解决方案
s