0
本文作者: 黃鑫 | 2016-08-19 17:40 |
雷鋒網(wǎng)按:在上篇文章中,我們看到了深度學習對計算量的迫切程度。以及介紹了一款I(lǐng)ntel為此設(shè)計的處理器:代號為KNL(Knights Landing)的高性能CPU Xeon Phi。在下篇我們將為大家展示一些深度學習語言開發(fā)者們針對這些需求和新硬件做出的調(diào)整和改進。
在上文的末尾提到了著名的開源學習框架Caffe。不過,來自伯克利大學的原始版本的Caffe語言在處理的數(shù)據(jù)規(guī)模太大時需要的時間太長了,并且默認情況下并不支持多節(jié)點、并行文件系統(tǒng)。因此不是很擅長超大規(guī)模的深度學習運算。不過由于Caffe是開源的,因此理論上任何人都能對其進行自己需要的改進。Caffe的多種功能事實上都有很好的被改進以支持集群并行計算的潛力。而浪潮集團在原版Caffe的基礎(chǔ)上加以改進,開發(fā)出了第一代支持在KNL上進行叢集并行計算的Caffe版本。支持英特爾的Luster存儲器、OPA網(wǎng)絡(luò)和KNL叢集。
浪潮集團將這個改進版的Caffe框架命名為Caffe架構(gòu),下圖是關(guān)于Caffe-MPI在KNL上進行運算時的結(jié)構(gòu)的一些解釋。可以看到,其計算流程采用MPI主從模式,使用多個KNL處理器組成節(jié)點網(wǎng)絡(luò),主節(jié)點使用一個KNL,而從節(jié)點可以視需求由N個KNL構(gòu)成,因為使用了專為HPC設(shè)計的Lustre文件系統(tǒng),因此數(shù)據(jù)吞吐量并不會限制到計算和訓練。OPA架構(gòu)也保證了網(wǎng)絡(luò)通信的順暢。軟件系統(tǒng)方面,支持Linux/Intel MKL和Mvapich2 。
設(shè)計框架中的主節(jié)點為MPI單進程+多Pthread線程,從節(jié)點為MPI多進程,圖中展示了整個網(wǎng)絡(luò)訓練的框圖。
設(shè)計中對KNL的最多72個核心可以進行充分利用,主進程可以同時處理三個線程:并行讀取和發(fā)送數(shù)據(jù)、權(quán)重計算和參數(shù)更新、網(wǎng)絡(luò)間的參數(shù)溝通。下圖中給出了圖示。
MPI結(jié)構(gòu)中的從進程的主要處理流程是:從主進程中接收訓練數(shù)據(jù)、發(fā)送權(quán)重數(shù)據(jù)、接收新的網(wǎng)絡(luò)數(shù)據(jù)、進行前向、后向計算。從節(jié)點網(wǎng)絡(luò)中每一個KNL核代表了一個MPI網(wǎng)絡(luò)中的從節(jié)點。
下圖中的信息表示,改進版的在KNL叢集上運行的Caffe-MPI架構(gòu)對原版Caffe進行了多項優(yōu)化。最終的效果表現(xiàn)是原版的3.78倍。增加KNL處理器的總數(shù)時的性能擴展效率高達94.5%
而FPGA是另一項在深度學習領(lǐng)域極有潛力的硬件。
目前浪潮、Altera和科大訊飛在在線識別領(lǐng)域?qū)PGA的應(yīng)用起到了很好的成效。結(jié)果表明,F(xiàn)PGA組成的系統(tǒng)在各項指標上都顯著優(yōu)于傳統(tǒng)CPU組成的系統(tǒng)。
結(jié)論是,對于離線學習來說,基于KNL處理器搭建的MPI-Caffe架構(gòu)可以很好的完成任務(wù)。而在線語音平臺等在線認知項目則很適合使用FPGA來搭建系統(tǒng)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。