雷锋网按:在上篇文章中,我们看到了深度学习对计算量的迫切程度。以及介绍了一款intel为此设计的处理器:代号为knl(knights landing)的高性能cpu xeon phi。在下篇我们将为大家展示一些深度学习语言开发者们针对这些需求和新硬件做出的调整和改进。
在上文的末尾提到了著名的开源学习框架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是另一项在深度学习领域极有潜力的硬件。
目前浪潮、altera和科大讯飞在在线识别领域对fpga的应用起到了很好的成效。结果表明,fpga组成的系统在各项指标上都显著优于传统cpu组成的系统。
结论是,对于离线学习来说,基于knl处理器搭建的mpi-caffe架构可以很好的完成任务。而在线语音平台等在线认知项目则很适合使用fpga来搭建系统。