GPU雲伺服器深度學習效能模型初探

2021-09-20 12:13:29 字數 4042 閱讀 8666

1 背景

得益於gpu強大的計算能力,深度學習近年來在影象處理、語音識別、自然語言處理等領域取得了重大突破,gpu伺服器幾乎成了深度學習加速的標配。

阿里雲gpu雲伺服器在公有雲上提供的彈性gpu服務,可以幫助使用者快速用上gpu加速服務,並大大簡化部署和運維的複雜度。如何提供乙個合適的例項規格,從而以最高的價效比提供給深度學習客戶,是我們需要考慮的乙個問題,本文試圖從cpu、記憶體、磁碟這三個角度對單機gpu雲伺服器的深度學習訓練和**的效能模型做了初步的分析,希望能對例項規格的選擇提供乙個科學的設計模型。

下面是我們使用主流的幾個開源深度學習框架在nvidia gpu上做的一些深度學習的測試。涉及nvcaffe、mxnet主流深度學習框架,測試了多個經典cnn網路在影象分類領域的訓練和推理以及rnn網路在自然語言處理領域的訓練。

2 訓練測試

我們使用nvcaffe、mxnet主流深度學習框架測試了影象分類領域和自然語言處理領域的訓練模型。

2.1 影象分類

我們使用nvcaffe、mxnet測試了影象分類領域的cnn網路的單gpu模型訓練。

nvcaffe和mxnet測試使用imagenet ilsvrc2012資料集,訓練1281167張,包含1000個分類,每個分類包含1000張左右的。

2.1.1 cpu+memory

2.1.1.1 nvcaffe

nvcaffe是nvidia基於bvlc-caffe針對nvidia gpu尤其是多gpu加速的開源深度學習框架。lmdb格式的imagenet訓練集大小為240gb ,驗證集大小為9.4gb。

我們使用nvcaffe對alexnet、googlenet、resnet50、vgg16四種經典卷積神經網路做了影象分類任務的模型訓練測試。分別對比了不同vcpu和memory配置下的訓練效能。效能資料單位是images/second(每秒處理的影象張數)。圖中標註為10000指的是迭代次數10000次,其它都是測試迭代次數為1000次。

mxnet的資料集使用recordio格式,imagenet訓練集 93gb ,驗證集 3.7gb。

我們使用網路inception-v3(googlenet的公升級版)做了影象分類的訓練測試。分別對比了不同vcpu和memory配置下的訓練效能。資料單位是samples/second(每秒處理的影象張數)。

2.1.2 磁碟io

我們在阿里雲gn5(p100)例項上使用nvcaffe測試了googlenet網路模型在nvme ssd本地盤、ssd雲盤和高效雲盤上的訓練效能,測試結果如下(效能資料單位是images/second):

2.2 自然語言處理

我們使用mxnet測試了rnn網路的lstm模型的訓練,使用penntreebank自然語言資料集。penntreebank資料集的文字語料庫包含近100萬個單詞,單詞表被限定在10000個單詞。分別對比了不同vcpu和memory配置下的訓練效能:

3 推理測試

3.1 影象分類

我們使用nvcaffe測試了影象分類領域的cnn網路的模型推理。

測試使用imagenet ilsvrc2012資料集,驗證測試 50000張。

3.1.1 cpu+memory

我們使用nvcaffe對alexnet、googlenet、resnet50、vgg16四種經典卷積神經網路做了影象分類的推理測試。分別對比了不同vcpu和memory配置下的訓練效能。資料單位是images/second(每秒處理的影象張數)。

3.1.2 磁碟io

我們使用nvcaffe測試了googlenet網路在nvme ssd本地盤、ssd雲盤和高效雲盤上的影象分類推理效能,測試結果如下(資料單位是images/second):

4 資料預處理測試

在訓練模型之前,往往要對訓練資料集做資料預處理,統一資料格式,並做一定的歸一化處理。

我們使用nvcaffe對imagenet ilsvrc2012資料集做了資料預處理的測試,分別對比了nvme ssd本地盤、ssd雲盤和高效雲盤的資料預處理時間,資料單位是秒,資料如下:

5 資料分析

5.1 訓練

5.1.1 影象分類

從nvcaffe和mxnet的測試結果來看,影象分類場景單純的訓練階段對cpu要求不高,單gpu 只需要4vcpu就可以。而記憶體需求則取決於深度學習框架、神經網路型別和訓練資料集的大小:測試中發現nvcaffe隨著迭代次數的增多,記憶體是不斷增大的,但是記憶體需求增大到一定程度,對效能就不會有什麼提公升了,其中nvcaffe alexnet網路的訓練,相比其它網路對於記憶體的消耗要大得多。相比之下mxnet的記憶體占用則要小的多(這也是mxnet的一大優勢),93g預處理過的訓練資料集訓練過程中記憶體占用不到5g。

對於磁碟io效能,測試顯示訓練階段nvme ssd本地盤、ssd雲盤效能基本接近,高效雲盤上的效能略差1%。因此訓練階段對io效能的要求不高。

5.1.2 自然語言處理

從mxnet的測試結果來看,對於penntreebank這樣規模的資料集,2vcpu 1gb mem就能滿足訓練需求。由於自然語言處理的原始資料不像影象分類一樣是大量高畫質,自然語言處理的原始資料以文字檔案為主,因此自然語言處理對記憶體和視訊記憶體的要求都不高,從我們的測試來看,4vcpu 30gb 1gpu規格基本滿足訓練階段需求。

5.2 推理

5.2.1 影象分類

從nvcaffe的影象分類推理測試來看,除alexnet 2vcpu剛剛夠用外,其它網路2vcpu對效能沒有影響,而9.4gb的驗證資料集推理過程中記憶體占用大概是7gb左右,因此對大部分模型來看,2vcpu 30gb 1gpu規格基本滿足影象分類推理的效能需求。

對於磁碟io效能,推理效能nvme ssd本地盤、ssd雲盤很接近,但高效雲盤差15%。因此推理階段至少應該使用ssd雲盤保證效能。

5.2.2 自然語言處理

對於自然語言處理,參考訓練效能需求,我們應該可以推測2vcpu 30gb 1gpu規格應該也能滿足需求。

5.3 資料預處理

從nvcaffe對imagenet ilsvrc2012資料集做資料預處理的測試來看,資料預處理階段是io密集型,nvme ssd本地盤比ssd雲盤快25%,而ssd雲盤比高效雲盤快10%。

6 總結

深度學習框架眾多,神經網路型別也是種類繁多,我們選取了主流的框架和神經網路型別,嘗試對單機gpu雲伺服器的深度學習效能模型做了初步的分析,結論是:

深度學習訓練階段是gpu運算密集型,對於cpu占用不大,而記憶體的需求取決於深度學習框架、神經網路型別和訓練資料集的大小;對磁碟io效能不敏感,雲盤基本能夠滿足需求。

深度學習推理階段對於cpu的占用更小,但是對於磁碟io效能相對較敏感,因為推理階段對於延遲有一定的要求,更高的磁碟io效能對於降低資料讀取的延時進而降低整體延遲有很大的幫助。

深度學習資料預處理階段是io密集型階段,更高的磁碟io效能能夠大大縮短資料預處理的時間。

GPU雲伺服器深度學習效能模型初探

摘要 本文根據實測資料,初步 了在彈性gpu雲伺服器上深度學習的效能模型,可幫助科學選擇gpu例項的規格。得益於gpu強大的計算能力,深度學習近年來在影象處理 語音識別 自然語言處理等領域取得了重大突破,gpu伺服器幾乎成了深度學習加速的標配。阿里雲gpu雲伺服器在公有雲上提供的彈性gpu服務,可以...

GPU雲伺服器

您只需要專注於深度學習本身,無需安裝任何深度學習環境,零設定開啟您的深度學習之旅。極客雲,為深度學習而生,您只需簡單幾步操作即可測試和訓練您的模型。上傳的資料將會被掛載到 連線後伺服器的 data 目錄下 類似linux命令的使用方法 不要在 data追直接解壓,否則很慢 no module nam...

阿里雲GPU雲伺服器

既然是基於gpu應用的計算服務,那麼阿里雲的gpu雲伺服器的計算能力又如何呢?計算能力 ga1例項計算性能力 ga1例項最多可提供 4 顆amd s7150 gpu 56 個 vcpu 和 160gb 主機記憶體,以及共計 32gb 的 gpu視訊記憶體 總計提供8192個並行處理核心 最高15 t...