hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

今天Ci妹整理了一份超詳細的裝機指南,結合了最新的硬件產品,本文告訴你從CPU、GPU、內存條到外設這些都應該怎麼選。全文稍微有點長,但是沒關係,相信你看在Ci妹這麼辛苦認真的份上,一定會看完的對不對?

  GPU

先來說GPU,在深度學習中,它甚至比CPU更重要,Ci妹就先來講怎麼挑選GPU。選擇GPU的標準有三條:顯存、散熱、性價比。

顯存(GPU RAM)是不可忽視的部分。RTX比GTX系列顯卡在顯存方面更具優勢,在顯存相同的情況下,RTX能夠訓練兩倍大的模型。一般來說,對顯存的要求是這樣:

如果想在研究中追求最高成績:顯存>=11 GB;

在研究中搜尋有趣新架構:顯存>=8 GB;

其他研究:8GB;

Kaggle競賽:4~8GB;

創業公司:8GB(取決於具體應用的模型大小)

公司:打造原型8GB,訓練不小於11GB

hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

這裡Ci妹需要提醒下,如果你買了多個RTX顯卡,不要忽略散熱問題。因為在兩個顯卡堆疊在相鄰PCI-e插槽,很容易導致GPU過熱降頻,使得性能下降,這個後面會講到。

性價比方面,選擇16bit的RTX 2070或者RTX 2080 Ti性價比更高。或者在京東上購買二手的32bit GTX 1070、GTX 1080或者1080 Ti也是不錯的選擇。

內存

Ci妹來考考大家,選擇內存時,時鐘頻率和容量這兩個參數哪個更重要?答案是:...內存

其實時鐘頻率是廠商炒作內存的主要手段。他們宣稱時鐘頻率越快越好,但時鐘頻率和數據轉移到顯存的速度無關,提高時鐘頻率最多隻能帶來3%的性能提升。

hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

內存的大小不會影響性能,但會影響執行GPU代碼的效率。因為內存容量大一點,GPU就可以不經過磁盤,直接和GPU進行數據交換。所以,大家應該配備和GPU顯存匹配的內存容量。

比如:一個24GB顯存的Titan RTX,應該至少有24GB的內存。但假設有更多的GPU,這時則不一定需要更多內存。

CPU

說到CPU,過分關注CPU的性能和PCIe通道數量,是不少人常犯的錯誤。大家更應該關注的是CPU和主板組合下支持同時運行的GPU數量。

hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

CPU和PCIe

不少人對PCIe通道有很強的執念,但它對深度學習性能幾乎沒有影響。如果只有一個GPU,那PCIe通道的作用就是把數據快速地從內存運輸到顯存。

比如:ImageNet裡的32張圖像(32x225x225x3)在16x上傳輸需要1.1毫秒,在8x上需要2.3毫秒,在4x上需要4.5毫秒。這是理論得出的數字,而實際的速度只有一半。PCIe通道通常具有納秒級別的延遲,可以忽略。

我們用32張ImageNet圖像的mini-batch進行了測試,訓練ResNet-152模型所需要的傳輸時間:前向和後向傳輸:216毫秒

16X PCIe CPU-> GPU傳輸:大約2毫秒(理論上為1.1毫秒)

8X PCIe CPU-> GPU傳輸:大約5毫秒(2.3毫秒)

4X PCIe CPU-> GPU傳輸:大約9毫秒(4.5毫秒)

可以得出結論,如果使用單個GPU,請不要在PCIe通道上白浪費錢。在選擇CPU和主板PCIe通道時,要確保我們選擇的組合能支持我們想要的GPU數量。比如Ci妹買了支持2個GPU的主板,並且想用上2個GPU,那我就要買支持2個GPU的CPU,但不一定要看PCIe通道數量。

hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

PCIe通道和多GPU並行計算

如果在如果在多個GPU上訓練網絡,那PCIe通道是否重要呢?

這個問題是這樣的,如果GPU的數量小於4,那就不需要在意PCIe通道。實際中,很少有人會同時運行超過4個GPU,所以Ci妹友情提示:大家不要在PCIe通道上花冤枉錢。這不重要!

CPU核心數

選擇CPU,先要了解CPU和深度學習的關係。那CPU在深度學習中究竟起什麼作用?

在CPU上運行深度網絡時,CPU幾乎不會進行任何計算。它的主要作用有:1、啟動GPU運算。2、執行CPU函數。

目前CPU最有用的應用就是數據預處理,有兩種不同的通用數據處理策略,具有不同的CPU需求。第一種是在訓練時進行預處理,第二種是在訓練之前進行預處理。

針對第一種,高性能的多核CPU能明顯提高效率。建議每個GPU至少4個線程,即為每個GPU分配兩個CPU核心。 Ci妹認為,每為GPU增加一個核心 ,應該能獲得大概0-5%的額外性能提升。對於第二種,不需要非常好的CPU,建議每個GPU至少有2個線程,即為每個GPU分配一個CPU核心。採用這種策略,再多內核也不會讓性能顯著提升。

CPU時鐘頻率

提個問題:是否4GHz的CPU性能會比3.5GHz的強?在相同架構處理器的比較中,一般認為是對的。但在不同架構處理器之間,就不能拿頻率進行簡單的比較了。CPU時鐘頻率並不總是衡量性能的最佳標準。

在深度學習情況下,CPU僅參加很少的計算,比如增加一些變量,評估一些布爾表達式,或在GPU或程序內進行一些函數調用,這些取決於CPU核心時鐘頻率。

雖然以上說法看著很對,但在運行深度學習程序時,CPU仍有100%的使用率,那到底是哪裡出了問題?我們做了些CPU的降頻實驗來找到答案。

CPU降頻對性能的影響:

hi~你有一份超詳細的深度學習裝機指南等待認領!(上篇)

注意下,以上實驗是在“遠古”CPU(2012年推出的第三代酷睿處理器)上進行的,但對於最近推出的CPU仍然是符合的。

原創不易,轉載請註明出處!https://bbs.10cifang.com/article-386-1.html


分享到:


相關文章: