天天看點

深度學習如何挑選GPU?

作者:機器視覺知識推薦官

深度學習是一個對計算有着大量需求的領域,從一定程度上來說,GPU的選擇将從根本上決定深度學習的體驗。是以,選擇購買合适的GPU是一項非常重要的決策。那麼如何選擇合适的GPU呢?這篇文章整合了網絡上現有的GPU選擇标準和評測資訊,希望能作為你的購買決策的參考。

1 是什麼使一個GPU比另一個GPU更快?

有一些可靠的性能名額可以作為人們的經驗判斷。以下是針對不同深度學習架構的一些優先準則:

Convolutional networks and Transformers: Tensor Cores > FLOPs > Memory Bandwidth > 16-bit capability

Recurrent networks: Memory Bandwidth > 16-bit capability > Tensor Cores > FLOPs

2 如何選擇NVIDIA/AMD/Google

NVIDIA的标準庫使在CUDA中建立第一個深度學習庫變得非常容易。早期的優勢加上NVIDIA強大的社群支援意味着如果使用NVIDIA GPU,則在出現問題時可以輕松得到支援。但是NVIDIA現在政策使得隻有Tesla GPU能在資料中心使用CUDA,而GTX或RTX則不允許,而Tesla與GTX和RTX相比并沒有真正的優勢,價格卻高達10倍。

AMD功能強大,但缺少足夠的支援。AMD GPU具有16位計算能力,但是跟NVIDIA GPU的Tensor核心相比仍然有差距。

Google TPU具備很高的成本效益。由于TPU具有複雜的并行基礎結構,是以如果使用多個雲TPU(相當于4個GPU),TPU将比GPU具有更大的速度優勢。是以,就目前來看,TPU更适合用于訓練卷積神經網絡。

3 多GPU并行加速

卷積網絡和循環網絡非常容易并行,尤其是在僅使用一台計算機或4個GPU的情況下。TensorFlow和PyTorch也都非常适合并行遞歸。但是,包括transformer在内的全連接配接網絡通常在資料并行性方面性能較差,是以需要更進階的算法來加速。如果在多個GPU上運作,應該先嘗試在1個GPU上運作,比較兩者速度。由于單個GPU幾乎可以完成所有任務,是以,在購買多個GPU時,更好的并行性(如PCIe通道數)的品質并不是那麼重要。

4 性能評測

1)來自Tim Dettmers的成本效益評測[1]

https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/

深度學習如何挑選GPU?

卷積網絡(CNN),遞歸網絡(RNN)和transformer的歸一化性能/成本數(越高越好)。RTX 2060的成本效率是Tesla V100的5倍以上。對于長度小于100的短序列,Word RNN表示biLSTM。使用PyTorch 1.0.1和CUDA 10進行基準測試。

從這些資料可以看出,RTX 2060比RTX 2070,RTX 2080或RTX 2080 Ti具有更高的成本效益。原因是使用Tensor Cores進行16位計算的能力比僅僅擁有更多Tensor Cores核心要有價值得多。

2)來自Lambda的評測[2,3]

https://lambdalabs.com/blog/best-gpu-tensorflow-2080-ti-vs-v100-vs-titan-v-vs-1080-ti-benchmark/

https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/

深度學習如何挑選GPU?

GPU平均加速/系統總成本

深度學習如何挑選GPU?

GPU性能,以每秒處理的圖像為機關

深度學習如何挑選GPU?

以 Quadro RTX 8000 為基準的針對Quadro RTX 8000的圖像模型訓練吞吐量

3) 來自知乎@Aero的「線上」GPU評測[4]

https://www.zhihu.com/question/299434830/answer/1010987691

大家用的最多的可能是Google Colab,畢竟免費,甚至能選TPU

深度學習如何挑選GPU?

不過現在出會員了:

深度學習如何挑選GPU?

免費版主要是K80,有點弱,可以跑比較簡單的模型,有機率分到T4,有歐皇能分到P100。

付費就能確定是T4或者P100,一個月10美元,說是僅限美國。

Colab畢竟是Google的,那麼你首先要能連得上google,并且得網絡穩定,要是掉線很可能要重新訓練,綜合來看國内使用體驗不太好。

下一個是百度AI Studio:

深度學習如何挑選GPU?

免費送V100時長非常良心,以前很多人自己裝tensorflow用,但是現在已經不允許了,實測tensorflow pytorch都不給裝,必須得用paddlepaddle。那麼習慣paddlepaddle的使用者完全可以選這個,其他人不适合。

深度學習如何挑選GPU?

不過似乎GPU不太夠,白天一直提醒高峰期,真到了22點後才有。

國外的還有vast.ai:

深度學習如何挑選GPU?

5 建議

1)來自Tim Dettmers的建議

  • 總體最佳GPU:RTX 2070 GPU
  • 避免使用 :任何Tesla;任何Quadro;任何Founders Edition;Titan RTX,Titan V,Titan XP
  • 高效但價格昂貴:RTX 2070
  • 高效且廉價:RTX 2060,GTX 1060(6GB)
  • 價格實惠:GTX 1060(6GB)
  • 價格低廉:GTX 1050 Ti(4GB)。或者:CPU(原型設計)+ AWS / TPU(教育訓練);或Colab。
  • 适合Kaggle比賽:RTX 2070
  • 适合計算機視覺研究人員:GTX 2080 Ti,如果訓練非常大的網絡,建議使用RTX Titans

2)來自Lambda的建議

截至2020年2月,以下GPU可以訓練所有SOTA語言和圖像模型:

  • RTX 8000:48 GB VRAM
  • RTX 6000:24 GB VRAM
  • Titan RTX:24 GB VRAM

具體建議:

  • RTX 2060(6 GB):适合業餘時間探索深度學習。
  • RTX 2070或2080(8 GB):适合深度學習專業研究者,且預算為4-6k
  • RTX 2080 Ti(11 GB):适合深度學習專業研究者,而您的GPU預算約為8-9k。RTX 2080 Ti比RTX 2080快40%。
  • Titan RTX和Quadro RTX 6000(24 GB):适合廣泛使用SOTA型号,但沒有用于RTX 8000足夠預算的研究者。
  • Quadro RTX 8000(48 GB):價格相對較高,但性能卓越,适合未來投資。

參考文獻

[1] https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/

[2] https://lambdalabs.com/blog/best-gpu-tensorflow-2080-ti-vs-v100-vs-titan-v-vs-1080-ti-benchmark/

[3] https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/

[4] https://www.zhihu.com/question/299434830/answer/1010987691

繼續閱讀