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