4.計算模式,對于訓(xùn)練平臺,多個節(jié)點如果同時訓(xùn)練將采用分布式并行的方式,比如采用MPI+CUDA計算模式;對于線上采用Spark/Hadoop+CUDA計算模式。
針對平臺層,浪潮提供全線AI計算產(chǎn)品支持,如2 GPU服務(wù)器NF5280M4,主要作為線上推理識別用。還有支持訓(xùn)練的4 GPU服務(wù)器NF5568M4, 8 GPU服務(wù)器AGX-2,還有我們跟百度聯(lián)合研制的SR-AI Rack,單GPU BOX實現(xiàn)16 GPU并行,整機(jī)柜實現(xiàn)64塊GPU并行。針對線上大規(guī)模部署,要求低功耗,我們也設(shè)計了FPGA板卡F10A,整個卡功耗可以做到35瓦,性能達(dá)到1.5TFlops。目前浪潮是領(lǐng)先的AI計算廠商,很多用戶在采用浪潮的計算產(chǎn)品,在大型互聯(lián)網(wǎng)市場AI產(chǎn)品市場占有率達(dá)到80%以上。
管理層面臨的挑戰(zhàn)及解決方案
整個系統(tǒng)部署好之后,既有CPU計算節(jié)點,也有GPU計算節(jié)點,對整個計算系統(tǒng)我們?nèi)绾斡行У墓芾砥饋?,其面臨的挑戰(zhàn)有幾個方面:
第一,針對不同的計算平臺和計算設(shè)備,如CPU、GPU或者FPGA,如何進(jìn)行有效的管理。
第二,針對不同的計算任務(wù)和計算框架,如何進(jìn)行合理的調(diào)度。
第三,針對整個系統(tǒng)和不同的計算作業(yè),如何進(jìn)行監(jiān)控。
應(yīng)對上述三個方面的挑戰(zhàn),浪潮設(shè)計的深度學(xué)習(xí)管理系統(tǒng)AIStation可以實現(xiàn)五大功能:深度學(xué)習(xí)框架的快速部署、深度學(xué)習(xí)訓(xùn)練任務(wù)的管理、GPU 與CPU資源的調(diào)度、系統(tǒng)資源與健康狀態(tài)的監(jiān)控、應(yīng)用特征分析。
框架層面臨的挑戰(zhàn)及解決方案
目前開源出來的深度學(xué)習(xí)框架非常多,如Caffe、TensorFlow、MXNet、Torch等等,框架眾多,如何選擇?選擇一種框架還是選擇多種?以及針對什么場景或者什么樣的模型來選擇什么樣的框架,針對多大數(shù)據(jù)量,選擇多機(jī)并行的框架。以上是我們針對深度學(xué)習(xí)框架所面臨幾個方面的挑戰(zhàn)。
我們在選擇框架的時候,實際上可以針對目前的一些主流框架做一個評測,之前我們跟美國某知名的互聯(lián)網(wǎng)公司開展過聯(lián)合測試,對他們所關(guān)心的深度學(xué)習(xí)框架做了一個測評。
我們把三個主流的框架Caffe、TensorFlow和MXNet部署到我們16 GPU BOX服務(wù)器平臺上面,采用Imagenet數(shù)據(jù)集,測試Alexnet和GooLeNet兩種典型網(wǎng)絡(luò)。從測試結(jié)果來看當(dāng)運(yùn)行Alexnet網(wǎng)絡(luò)時,Caffe性能最好,每秒可以訓(xùn)練圖片張數(shù)達(dá)到4675張,16個GPU比單個GPU的加速比達(dá)到14倍,其次是MXNet,最后是TensorFlow。當(dāng)運(yùn)行GooLeNet時,MXNet性能最好,每秒可以訓(xùn)練的圖片張數(shù)達(dá)到2462張,16個GPU比單個GPU的加速比達(dá)到12.7倍,其次是Caffe,最后是TensorFlow。從這個評測來看,基于不同的網(wǎng)絡(luò),所選擇最優(yōu)的框架是不一樣的。
基本上可以有大致的一個原則來選擇:我們會根據(jù)不同的場景和模型來選擇至少一種深度學(xué)習(xí)框架,目前很難說一種框架能在所有的應(yīng)用場景中表現(xiàn)最優(yōu),如果是圖像方面的應(yīng)用,主要采用Caffe、TensorFlow和MXNET這三種框架。如果是語音的話,可以選擇CNTK,當(dāng)然還有其他的框架。自然語言處理的話可以采用PaddlePaddle,針對大數(shù)據(jù)量的訓(xùn)練,采用單機(jī)訓(xùn)練的話時間會很長,有可能是幾周或幾個月訓(xùn)練出一個模型,需要采用分布式框架,如浪潮自研的Caffe-MPI,這個框架就實現(xiàn)了多機(jī)多GPU卡的并行訓(xùn)練。通過實際測試,Caffe-MPI采用16個GPU卡同時訓(xùn)練時,每秒可以處理的效率達(dá)到3061張,較單卡性能提升13倍,擴(kuò)展效率達(dá)到81%,性能將近是TensorFlow的2倍,Caffe-MPI目前已經(jīng)在Github上開源了,可以下載使用。
應(yīng)用層面臨的挑戰(zhàn)及解決方案
應(yīng)用層面臨如下幾個方面挑戰(zhàn):
一、如何利用深度學(xué)習(xí)的方法,提高識別的正確率,這里面會涉及到模型和算法的設(shè)計、數(shù)據(jù)預(yù)處理。
二、GPU編程,在訓(xùn)練程序的設(shè)計過程中會涉及到寫部分的GPU的代碼,比如我們會添加一些新的層,會寫一些相對應(yīng)的CUDA代碼。
三、FPGA編程,在推理階段,可能會采用FPGA平臺,需要把應(yīng)用從CPU遷移到FPGA上,采用OpenCL編程或者采用偏底層硬件編程語言Verilog,其編程的復(fù)雜度相對較高。
針對AI應(yīng)用挑戰(zhàn),浪潮成立了兩個聯(lián)合實驗室:Inspur-Intel中國并行計算聯(lián)合實驗室和Inspur-NVIDIA GPU 聯(lián)合實驗室,針對GPU、MIC、FPGA異構(gòu)技術(shù)和AI應(yīng)用進(jìn)行研究,我們具備CPU+GPU,CPU+MIC,CPU+FPGA三大異構(gòu)技術(shù),可以幫助用戶來設(shè)計深度學(xué)習(xí)的一些模型算法,進(jìn)行GPU、MIC、FPGA應(yīng)用的遷移和優(yōu)化。
在AI方面,我們2014年就開始跟一些典型的互聯(lián)網(wǎng)用戶開展應(yīng)用合作,如以圖搜圖應(yīng)用,其核心算法是Kmeans,幫助用戶實現(xiàn)從CPU到GPU上的遷移,核心算法性能提升35X,整體應(yīng)用性能提升2.2倍。另外一個應(yīng)用是關(guān)于語音方面的,主要是語音模型的訓(xùn)練,采用深度學(xué)習(xí)的方法,我們幫助用戶從單機(jī)GPU版本實現(xiàn)16 GPU卡的多機(jī)并行版本,性能提升13倍,大大縮短整個深度學(xué)習(xí)訓(xùn)練的時間,實現(xiàn)支持萬小時以上語音數(shù)據(jù)訓(xùn)練。