本文根據(jù)實(shí)測(cè)數(shù)據(jù)初步探討了在彈性GPU云服務(wù)器上深度學(xué)習(xí)的性能模型,希望可以幫助大家科學(xué)選擇GPU實(shí)例的規(guī)格。
得益于GPU強(qiáng)大的計(jì)算能力,深度學(xué)習(xí)近年來在圖像處理、語音識(shí)別、自然語言處理等領(lǐng)域取得了重大突GPU服務(wù)器幾乎成了深度學(xué)習(xí)加速的標(biāo)配。
本文根據(jù)實(shí)測(cè)數(shù)據(jù)初步探討了在彈性GPU云服務(wù)器上深度學(xué)習(xí)的性能模型,希望可以幫助大家科學(xué)選擇GPU實(shí)例的規(guī)格。
一、背景
得益于GPU強(qiáng)大的計(jì)算能力,深度學(xué)習(xí)近年來在圖像處理、語音識(shí)別、自然語言處理等領(lǐng)域取得了重大突GPU
服務(wù)器幾乎成了深度學(xué)習(xí)加速的標(biāo)配。
如何提供一個(gè)合適的實(shí)例規(guī)格,從而以最高的性價(jià)比提供給深度學(xué)習(xí)客戶,是我們需要考慮的一個(gè)問題,本文試圖從CPU、內(nèi)存、磁盤這三個(gè)角度對(duì)單機(jī)GPU云服務(wù)器的深度學(xué)習(xí)訓(xùn)練和預(yù)測(cè)的性能模型做了初步的分析,希望能對(duì)實(shí)例規(guī)格的選擇提供一個(gè)科學(xué)的設(shè)計(jì)模型。
下面是我們使用主流的學(xué)習(xí)框架在NVIDIA GPU上做的一些深度學(xué)習(xí)的測(cè)試。涉及NVCaffe、MXNet主流深度學(xué)習(xí)框架,測(cè)試了多個(gè)經(jīng)典CNN網(wǎng)絡(luò)在圖像分類領(lǐng)域的訓(xùn)練和推理以及RNN網(wǎng)絡(luò)在自然語言處理領(lǐng)域的訓(xùn)練。
二、訓(xùn)練測(cè)試
我們使用NVCaffe、MXNet主流深度學(xué)習(xí)框架測(cè)試了圖像分類領(lǐng)域和自然語言處理領(lǐng)域的訓(xùn)練模型。
2.1 圖像分類
我們使用NVCaffe、MXNet測(cè)試了圖像分類領(lǐng)域的CNN網(wǎng)絡(luò)的單GPU模型訓(xùn)練。
NVCaffe和MXNet測(cè)試使用ImageNet ILSVRC2012數(shù)據(jù)集,訓(xùn)練圖片1281167張,包含1000個(gè)分類,每個(gè)分類包含1000張左右的圖片。
2.1.1 CPU+Memory
2.1.1.1 NVCaffe
NVCaffe是NVIDIA基于BVLC-Caffe針對(duì)NVIDIA GPU尤其是多GPU加速的開源深度學(xué)習(xí)框架。LMDB格式的ImageNet訓(xùn)練集大小為240GB ,驗(yàn)證集大小為9.4GB。
我們使用NVcaffe對(duì)AlexNet、GoogLeNet、ResNet50、Vgg16四種經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)做了圖像分類任務(wù)的模型訓(xùn)練測(cè)試。分別對(duì)比了不同vCPU和Memory配置下的訓(xùn)練性能。性能數(shù)據(jù)單位是Images/Second(每秒處理的圖像張數(shù))。圖中標(biāo)注為10000指的是迭代次數(shù)10000次,其它都是測(cè)試迭代次數(shù)為1000次。
2.1.1.2 MXNet
MXNet的數(shù)據(jù)集使用RecordIO格式,ImageNet訓(xùn)練集 93GB ,驗(yàn)證集 3.7GB。
我們使用網(wǎng)絡(luò)Inception-v3(GoogLeNet的升級(jí)版)做了圖像分類的訓(xùn)練測(cè)試。分別對(duì)比了不同vCPU和Memory配置下的訓(xùn)練性能。數(shù)據(jù)單位是Samples/Second(每秒處理的圖像張數(shù))。
2.1.2 磁盤IO
我們?cè)?a href="/tag/1325" target="blank">阿里云GN5(P100)實(shí)例上使用NVCaffe測(cè)試了GoogLeNet網(wǎng)絡(luò)模型在NVMe SSD本地盤、SSD云盤和高效云盤上的訓(xùn)練性能,測(cè)試結(jié)果如下(性能數(shù)據(jù)單位是Images/Second):
2.2 自然語言處理
我們使用MXNet測(cè)試了RNN網(wǎng)絡(luò)的LSTM模型的訓(xùn)練,使用PennTreeBank自然語言數(shù)據(jù)集。PennTreeBank數(shù)據(jù)集的文本語料庫(kù)包含近100萬個(gè)單詞,單詞表被限定在10000個(gè)單詞。分別對(duì)比了不同vCPU和Memory配置下的訓(xùn)練性能:
三、推理測(cè)試
3.1 圖像分類
我們使用NVCaffe測(cè)試了圖像分類領(lǐng)域的CNN網(wǎng)絡(luò)的模型推理。
測(cè)試使用ImageNet ILSVRC2012數(shù)據(jù)集,驗(yàn)證測(cè)試圖片 50000張。
3.1.1 CPU+Memory
我們使用NVcaffe對(duì)AlexNet、GoogLeNet、ResNet50、VGG16四種經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)做了圖像分類的推理測(cè)試。分別對(duì)比了不同vCPU和Memory配置下的訓(xùn)練性能。數(shù)據(jù)單位是Images/Second(每秒處理的圖像張數(shù))。
3.1.2 磁盤IO
我們使用NVCaffe測(cè)試了GoogLeNet網(wǎng)絡(luò)在NVMe SSD本地盤、SSD云盤和高效云盤上的圖像分類推理性能,測(cè)試結(jié)果如下(數(shù)據(jù)單位是Images/Second):
四、數(shù)據(jù)預(yù)處理測(cè)試
在訓(xùn)練模型之前,往往要對(duì)訓(xùn)練數(shù)據(jù)集做數(shù)據(jù)預(yù)處理,統(tǒng)一數(shù)據(jù)格式,并做一定的歸一化處理。
我們使用NVCaffe對(duì)ImageNet ILSVRC2012數(shù)據(jù)集做了數(shù)據(jù)預(yù)處理的測(cè)試,分別對(duì)比了NVMe SSD本地盤、SSD云盤和高效云盤的數(shù)據(jù)預(yù)處理時(shí)間,數(shù)據(jù)單位是秒,數(shù)據(jù)如下:
五、數(shù)據(jù)分析
5.1 訓(xùn)練
5.1.1 圖像分類
從NVCaffe和MXNet的測(cè)試結(jié)果來看,圖像分類場(chǎng)景單純的訓(xùn)練階段對(duì)CPU要求不高,單GPU 只需要4vCPU就可以。而內(nèi)存需求則取決于深度學(xué)習(xí)框架、神經(jīng)網(wǎng)絡(luò)類型和訓(xùn)練數(shù)據(jù)集的大?。簻y(cè)試中發(fā)現(xiàn)NVCaffe隨著迭代次數(shù)的增多,內(nèi)存是不斷增大的,但是內(nèi)存需求增大到一定程度,對(duì)性能就不會(huì)有什么提升了,其中NVCaffe AlexNet網(wǎng)絡(luò)的訓(xùn)練,相比其它網(wǎng)絡(luò)對(duì)于內(nèi)存的消耗要大得多。相比之下MXNet的內(nèi)存占用則要小的多(這也是MXNet的一大優(yōu)勢(shì)),93G預(yù)處理過的訓(xùn)練數(shù)據(jù)集訓(xùn)練過程中內(nèi)存占用不到5G。
對(duì)于磁盤IO性能,測(cè)試顯示訓(xùn)練階段NVMe SSD本地盤、SSD云盤性能基本接近,高效云盤上的性能略差1%。因此訓(xùn)練階段對(duì)IO性能的要求不高。
5.1.2 自然語言處理
從MXNet的測(cè)試結(jié)果來看,對(duì)于PennTreeBank這樣規(guī)模的數(shù)據(jù)集,2vCPU 1GB Mem就能滿足訓(xùn)練需求。由于自然語言處理的原始數(shù)據(jù)不像圖像分類一樣是大量高清圖片,自然語言處理的原始數(shù)據(jù)以文本文件為主,因此自然語言處理對(duì)內(nèi)存和顯存的要求都不高,從我們的測(cè)試來看,4vCPU 30GB 1GPU規(guī)格基本滿足訓(xùn)練階段需求。
5.2 推理
5.2.1 圖像分類
從NVCaffe的圖像分類推理測(cè)試來看,除AlexNet 2vCPU剛剛夠用外,其它網(wǎng)絡(luò)2vCPU對(duì)性能沒有影響,而9.4GB的驗(yàn)證數(shù)據(jù)集推理過程中內(nèi)存占用大概是7GB左右,因此對(duì)大部分模型來看,2vCPU 30GB 1GPU規(guī)格基本滿足圖像分類推理的性能需求。
對(duì)于磁盤IO性能,推理性能NVMe SSD本地盤、SSD云盤很接近,但高效云盤差15%。因此推理階段至少應(yīng)該使用SSD云盤保證性能。
5.2.2 自然語言處理
對(duì)于自然語言處理,參考訓(xùn)練性能需求,我們應(yīng)該可以推測(cè)2vCPU 30GB 1GPU規(guī)格應(yīng)該也能滿足需求。
5.3 數(shù)據(jù)預(yù)處理
從NVCaffe對(duì)ImageNet ILSVRC2012數(shù)據(jù)集做數(shù)據(jù)預(yù)處理的測(cè)試來看,數(shù)據(jù)預(yù)處理階段是IO密集型,NVMe SSD本地盤比SSD云盤快25%,而SSD云盤比高效云盤快10%。
六、總結(jié)
深度學(xué)習(xí)框架眾多,神經(jīng)網(wǎng)絡(luò)類型也是種類繁多,我們選取了主流的框架和神經(jīng)網(wǎng)絡(luò)類型,嘗試對(duì)單機(jī)GPU云服務(wù)器的深度學(xué)習(xí)性能模型做了初步的分析,結(jié)論是:
深度學(xué)習(xí)訓(xùn)練階段是GPU運(yùn)算密集型,對(duì)于CPU占用不大,而內(nèi)存的需求取決于深度學(xué)習(xí)框架、神經(jīng)網(wǎng)絡(luò)類型和訓(xùn)練數(shù)據(jù)集的大小;對(duì)磁盤IO性能不敏感,云盤基本能夠滿足需求。
深度學(xué)習(xí)推理階段對(duì)于CPU的占用更小,但是對(duì)于磁盤IO性能相對(duì)較敏感,因?yàn)橥评黼A段對(duì)于延遲有一定的要求,更高的磁盤IO性能對(duì)于降低數(shù)據(jù)讀取的延時(shí)進(jìn)而降低整體延遲有很大的幫助。
深度學(xué)習(xí)數(shù)據(jù)預(yù)處理階段是IO密集型階段,更高的磁盤IO性能能夠大大縮短數(shù)據(jù)預(yù)處理的時(shí)間。