當前位置:
首頁 > 新聞 > 哪家GPU雲提供商最合適?也許這份評測能給你答案

哪家GPU雲提供商最合適?也許這份評測能給你答案

做深度學習開發和實驗既可以選擇自己搭建硬體平台(參閱《深度 | 從硬體配置到軟體安裝,一台深度學習機器的配備指南》),也可以向 GPU 提供商購買使用服務。本文介紹了 RARE Technologies 的 Shiva Manne 對幾個主要 GPU 平台的評測結果,希望能為想要選擇最適合自己的平台的企業或開發者提供幫助。

我們最近發表了使用 word2vec 的大規模機器學習基準評測文章,參閱:https://goo.gl/gndD16。該文章在成本、易用性、穩定性、可擴展性和性能等實用性方面對幾個流行的硬體提供商和機器學習框架進行了比較。因為那次基準評測只關注了 CPU,所以我們又在 GPU 上進行了一次類似的機器學習基準評測。

平台

這次基準評測囊括了這些硬體平台:亞馬遜網路服務 AWS EC2、Google Cloud Engine(GCE)、IBM Softlayer、Hetzner、Paperspace 和 LeaderGPU。

因為很多現代機器學習任務都要使用 GPU,所以理解不同 GPU 提供商的成本和性能之間權衡是至關重要的。

我要感謝所有這些提供商,感謝他們在我的測試期間慷慨提供的基準分數和出色支持。我將在下面詳細討論和比較所有這些平台,但其中每個平台都有自己的相對優勢和短板,而且「GPU 即服務(GPUaaS)」市場本身也非常激動人心和活躍。

(備註:微軟 Azure 是唯一一家完全沒有任何回應的主要供應商,實際上我們從他們的官方支持頻道上也沒有得到任何回應。)

這個硬體提供商列表包含提供虛擬實例(AWS、GCE)、裸機基礎設施(Softlayer)和專用伺服器(Hetzner)的公司,也有相對較新的專註於提供 GPUaaS 的玩家(LeaderGPU、Paperspace)。我們根據每個平台上實例的價格而將 GPU 分為了兩類——「預算型」和「高端型」(見表 1)。我們的目標是看高端實例要那麼多錢是否值得。

基準評測設置

任務

我們 RARE Technologies 常常需要解決自然語言處理(NLP)問題,所以我為本基準評測任務設置了一個情緒分類任務。我們要訓練雙向 LSTM 來執行一個推文的二元分類任務。演算法的選擇則不是非常重要的;對於本基準評測,我唯一真正的要求是演算法應該是計算密集型的。為了確保 GPU 利用率最大化,我使用了 Keras 的 CuDNN 支持的快速 LSTM 實現——CuDNNLSTM。

CuDNNLSTM 地址:https://keras.io/layers/recurrent/#cudnnlstm

數據集

我們使用了 Twitter 情緒分析數據集,其中包含 1,578,627 條已分類的推文;對於每一行,如果情緒是正面的就標註 1,如果是負面的則標註 0。模型使用 90% 的數據(經過混洗)訓練 4 epoch,另外 10% 的留存數據用於模型評估。

Twitter 情緒分析數據集:http://thinknook.com/twitter-sentiment-analysis-training-corpus-dataset-2012-09-22/

Docker

為了再現性,我創建了一個英偉達 Docker 鏡像,其中包含重複運行該基準評測任務所需的所有依賴和數據。這個 Dockerfile 以及所有所需的代碼都可在這個 GitHub 庫找到:https://github.com/RaRe-Technologies/benchmark_GPU_platforms

我們完整公布了設置方式和代碼,這樣不僅任何人都可以重現這些結果,而且你也可以換上你自己的硬體平台或其它演算法選擇,從而進行你自己的基準評測。

結果

哪家GPU雲提供商最合適?也許這份評測能給你答案

表 1:基準評測結果匯總。

*這些是多 GPU 實例,其中模型是使用 Keras 的 multi_gpu_model 函數在所有 GPU 上訓練的,但之後我們發現這種方法在利用多 GPU 方面是次優的。

**由於上述原因,這些多 GPU 實例中的模型的訓練僅使用了其中一個 GPU。

+ Hetzner 是按月提供專用伺服器。這裡給出的價格是換算成每小時的價格。

評估:訂購、設置和使用難度

在我之前的文章中,我曾根據自己的經驗推薦使用 AWS、Softlayer 和 GCE。在 LeaderGPU 和 Paperspace 上訂購一個實例是相當簡單的,無需任何複雜設置。與 AWS 和 GCE 所需的幾秒準備時間相比,Paperspace 和 LeaderGPU 所需的準備時間稍微長一點(幾分鐘)。

LeaderGPU、亞馬遜、Paperspace 提供了免費可用的深度學習機器鏡像,其中預裝了英偉達驅動和 Python 開發環境;它們還提供了免費的英偉達 Docker——基本上就包含了立即開始實驗所需的一切。儘管這能讓工作輕鬆很多(尤其是對於那些只是想開始實驗機器學習模型的初學者而言),但我選擇用老方式從頭開始設置一切(對 LeaderGPU 除外),以便評估為滿足個體需求而定製實例的難度。在這個過程中,我遇到了在所有平台上都很常見的一些問題,比如英偉達驅動與已安裝的 gcc 版本不兼容,或 GPU 使用量在安裝驅動之後就達到了 100%,但又沒有證據表明運行著什麼進程。還有意外的情況——在 Paperspace 低端實例(P6000)上運行我的 Docker 時出現了一個錯誤。這個問題的原因是 Docker 上的 TensorFlow 是使用 CPU 優化(MSSE、MAVX、MFMA)從源編譯的,而 Paperspace 實例不支持這些 CPU 優化。不使用這些優化再運行 Docker 就行了。

就穩定性而言,我沒在這些平台上遇到任何問題。

成本

不出所料,專用伺服器是控制成本的最佳選擇。這是因為 Hetzner 是按月收費的,換算成每小時的價格就非常低。當然,這個數字是均攤之後的,但只要你有足夠多的任務保證伺服器足夠繁忙,那麼就能保證成本低廉。在虛擬實例提供商中,顯而易見的贏家是 Paperspace。對於低端 GPU,在 Paperspace 上訓練一個模型的成本只有在 AWS 上的一半。在高端 GPU 方面 Paperspace 也有類似的優勢。

下圖是將表 1 相應部分總結成的圖表:

哪家GPU雲提供商最合適?也許這份評測能給你答案

圖 1:在各種不同的 GPU 硬體平台上為 Twitter 情緒分類任務(約 150 萬條推文,4 epoch)訓練一個雙向 LSTM 的成本。

AWS 和 GCE 在高端和低端 GPU 上的成本優勢各有不同。在低端 GPU 方面 GCE 比 AWS 便宜很多,而在高端 GPU 方面 GCE 則比 AWS 稍貴一點。這說明昂貴的 AWS GPU 的額外成本可能是值得的,能夠提供物有所值的價值。

IBM Softlayer 和 LeaderGPU 看起來很貴,這主要是由於他們的多 GPU 實例使用率不足。這個基準評測是使用 Keras 框架執行的,而 Keras 框架的多 GPU 實現的效率非常低,有時候甚至還比不上在同一台機器上運行的單個 GPU。但 IBM Softlayer 和 LeaderGPU 這兩個平台都不提供單個 GPU 實例。在 Softlayer 上運行的基準評測通過 Keras 的 multi_gpu_model 函數使用了所有可用的 GPU,而在 LeaderGPU 上運行的基準評測只使用了可用 GPU 中的一個。這就導致出現了資源利用不足所造成的額外成本。另外,LeaderGPU 分別以和 GTX 1080 與 Tesla P100 一樣的價格提供了更強大的 GPU——GTX 1080 Ti 和 Tesla V100。在這些伺服器上運行肯定能降低整體成本。考慮到這些因素,在該圖中的 LeaderGPU 的低端成本實際上還是相當划算的。尤其是當你計劃使用能更好地利用多 GPU 的非 Keras 框架時。

另外似乎還有另一個普遍趨勢——更便宜的 GPU 的性價比優於更昂貴的 GPU;這說明訓練時間的減少不能抵消總體成本的增長。

關於使用 Keras 訓練多 GPU 模型的備註

學術界和行業很多人都非常喜歡使用 Keras 等高級 API 來開發深度學習模型。因為這是接受度最高和開發活動最活躍的深度學習框架之一,用戶期望無需額外的處理就能切換成多 GPU 模型。但實際情況肯定不是如此,如下圖給出的證據。多 GPU 的加速效果是相當難以預料的——在「雙 GTX 1080」伺服器上多 GPU 訓練有明顯的加速,而在「雙 P100」伺服器上多 GPU 的訓練速度甚至比單 GPU 還慢。在我調查這個成本問題時,我也在 GitHub 上看到了其它一些對此的博客和問題討論。

哪家GPU雲提供商最合適?也許這份評測能給你答案

圖 2:使用 Keras 在多 GPU 和單個 GPU(這些機器的其它方面完全一樣)上訓練所用的訓練時間。

模型準確度

對於健全性測試(sanity testing),我們在訓練結束時檢測了最終的模型準確度。在表 1 中可以看到,沒有顯著的差異表明底層的硬體/平台對訓練質量有影響,所以該基準評測的設置是正確的。

硬體定價

GPU 價格經常變化,但目前來看,AWS 以 0.9 美元/小時的起步價提供 K80 GPU(p2 實例),並且按使用秒數計費,而更強大和性能更高的 Tesla V100 GPU(p3 實例)的起步價為 3.06 美元/小時。其它服務還包括數據遷移、彈性 IP 地址和 EBS 優化實例,這些需要額外的成本。GCE 是一個經濟實惠的選擇,可以分別以 0.45 美元/小時和 1.46 美元/小時的起步價提供 Tesla K80 和 P100。這些都是按秒收費的,並且還提供了激勵方案,會根據使用情況提供折扣。儘管與 AWS 不同,它們需要附加到一個 CPU 實例上(0.0475 美元/小時的 n1-standard-1)。

在低成本方面,Paperspace 和 GCE 在專用 GPU 費率上差不多,從 0.4 美元/小時的 Quadro M4000 到 2.3 美元/小時的 Tesla V100。除了通常的按小時付費,它們也有按月收費的模式(5 美元/月),其中包含存儲和維護費用。Paperspace 按毫秒收費,額外付費可以購買附加服務。Hetzner 只提供了一種按月收費的使用 GTX 1080 的專用伺服器,另外還需要一次額外的安裝費用。

IBM Softlayer 是市場上按月和按小時提供裸機 GPU 伺服器的少數幾家平台之一。它提供 3 種 GPU 伺服器(包含 Tesla M60 和 K80),起步價 2.8 美元/小時。這些伺服器有靜態配置,意味著相比於其它雲提供商,其定製可能性很有限。Softlayer 的按小時收費方式更加糟糕,事實上在短期運行的任務上成本更高。

LeaderGPU 是一個相對較新的玩家,提供使用各種 GPU(P100、V100、GTX 1080、GTX 1080Ti)的專用伺服器。用戶可以按月、按小時或按分鐘(按秒計費)選擇付費方案。伺服器最小的有 2 GPU,一直到 8 GPU,價格從 0.02 歐元/分到 0.08 歐元/分。

Spot/Preemptive 實例

某些平台為它們空閑的計算能力提供了很大的折扣(50%-90%)(AWS 的 spot 實例和 GCE 的 preemptive 實例),但它們可能會出人意料地終止服務。因為無法保證該實例什麼時候才會再次上線,所以訓練時間很難預測。對於可以應付這種中斷的應用而言,這可能沒什麼問題,但很多任務(比如實例時間有限的項目)在這種情況下沒什麼好處(尤其是考慮到人力時間的浪費時)。在 preemptive/spot 實例上運行任務需要額外的代碼才能很好地處理實例的中斷和重啟(檢查點/將數據存儲到永久磁碟等)。另外,價格波動(就 AWS 的情況)會導致成本隨基準評測運行時的計算能力供需情況而發生變化。需要多次運行才能得到平均成本。鑒於我完成本基準評測的時間有限,所以我沒有做 spot/preemptive 實例的評測。

總結點評

  • Paperspace 在性能和成本上似乎領先一步,對於只是想實驗深度學習技術的偶爾使用一次/不經常使用的用戶而言尤其如此;另一份評測報告也有類似的結果,參閱:https://goo.gl/rL02rs

  • 專用伺服器(比如 LeaderGPU 提供的那種)和裸機伺服器(比如 Hetzner)很適合考慮長期使用這些資源的重度用戶。注意,因為它們在伺服器定製方面的靈活性較小,所以要確保你的任務是 CPU/GPU 高度密集型的,這樣才能受益於定價。

  • 不要忽視 Paperspace 和 LeaderGPU 這樣更新的提供商,因為它們可以幫助減少大量成本。因為相關的慣性和平台切換成本,企業可能並不願意更換提供商,但這些更小的平台確實值得考慮。

  • 對於想要實現與提供商的其它服務集成整合(人工智慧集成——亞馬遜的 Rekognition、谷歌的 Cloud AI)的人來說,AWS 和 GCE 可能是非常棒的選擇。

  • 除非你計劃運行需要數天時間才能完成的任務,否則堅持使用低端單 GPU 實例才是最好的選擇(參閱:http://minimaxir.com/2017/11/benchmark-gpus)。

  • 高端 GPU 速度快得多,但投資回報率(ROI)實際上更差。只有當更短的訓練時間(更低的研發周期延遲)比更高的硬體成本更重要時,你才應該選擇高端 GPU。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

滴滴程維:互聯網會連接所有交通工具
到底是哪些行業與公司在用谷歌的AutoML?李佳的回復亮了

TAG:機器之心 |