每日最新頭條.有趣資訊

深度學習裝機指南:從GPU到顯示器,全套硬體最新推薦

曉查 安妮 郭一璞 發自 凹非寺

量子位 報導 | 公眾號 QbitAI

硬體設備,是任何一名深度學習er不可或缺的核心裝備。各位初級調參魔法師們,你們有沒有感到缺少那一根命中注定的魔杖?

可是,各種CPU、GPU、記憶體條、外設,那麽多品牌種類型號參數,到底該怎麽選?

為了幫你湊齊一套能打的裝備,一位名叫Tim Dettmers的歪果小哥哥將自己一年組裝七部工作站的裝機經驗凝練成一篇實用攻略分享了出來,幫你確定一整套硬體選型,並且,還根據今年的新硬體做了推薦。

好啦,下面我們從GPU開始,依次看看各重要部件應該如何選擇,全文超過5000字,預計閱讀時間11分鐘。當然,文末還為大家準備了“精華清單”~

GPU

顯卡(GPU)是深度學習的重要部件,甚至比CPU更重要。做深度學習不用GPU隻用CPU顯然是不明智的,所以作者Tim先介紹了GPU的選擇。

選購GPU有三大注意事項:性價比、顯存、散熱。

使用16bit的RTX 2070或者RTX 2080 Ti性價比更高。另外在eBay上購買二手的32bit GTX 1070、GTX 1080或者1080 Ti也是不錯的選擇。

除了GPU核心,顯存(GPU RAM)也是不可忽視的部分。RTX比GTX系列顯卡在顯存方面更具優勢,在顯存相同的情況下,RTX能夠訓練兩倍大的模型。

通常對顯存的要求如下:

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

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

其他研究:8GB;

Kaggle競賽:4~8GB;

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

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

需要注意的是,如果你購買了多個RTX顯卡,一定不要忽視散熱。兩個顯卡堆疊在相鄰PCI-e插槽,很容易令GPU過熱降頻,可能導致性能下降30%。這個問題後面還會具體討論。

記憶體

選擇記憶體(RAM)有兩個參數:時鐘頻率、容量。這兩個參數哪個更重要?

時鐘頻率

炒作記憶體時鐘頻率是廠家常用的行銷手段,他們宣傳記憶體越快越好,實際上真的是這樣嗎?

知名數位博主Linus Tech Tips解答了這個問題:廠商會引誘你購買“更快”的RAM,實際上卻幾乎沒有性能提升。

記憶體頻率和數據轉移到顯存的速度無關,提高頻率最多只能有3%的性能提升,你還是把錢花在其他地方吧!

記憶體容量

記憶體大小不會影響深度學習性能,但是它可能會影響你執行GPU代碼的效率。記憶體容量大一點,CPU就可以不通過磁盤,直接和GPU交換數據。

所以用戶應該配備與GPU顯存匹配的記憶體容量。如果有一個24GB顯存的Titan RTX,應該至少有24GB的記憶體。但是,如果有更多的GPU,則不一定需要更多記憶體。

Tim認為:記憶體關係到你能不能集中資源,解決更困難的編程問題。如果有更多的記憶體,你就可以將注意力集中在更緊迫的問題上,而不用花大量時間解決記憶體瓶頸。

他還在參加Kaggle比賽的過程中發現,額外的記憶體對特徵工程非常有用。

CPU

過分關注CPU的性能和PCIe通道數量,是常見的認知誤區。用戶更需要關注的是CPU和主機板組合支持同時運行的GPU數量。

CPU和PCIe

人們對PCIe通道的執念近乎瘋狂!而實際上,它對深度學習性能幾乎沒有影響。

如果只有一個GPU,PCIe通道的作用只是快速地將數據從記憶體傳輸到顯存。

ImageNet裡的32張影像(32x225x225x3)在16通道上傳輸需要1.1毫秒,在8通道上需要2.3毫秒,在4通道上需要4.5毫秒。

這些只是是理論數字,實際上PCIe的速度只有理論的一半。PCIe通道通常具有納秒級別的延遲,因此可以忽略延遲。

Tim測試了用32張ImageNet影像的mini-batch,訓練ResNet-152模型所需要的傳輸時間:

前向和後向傳輸:216毫秒

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

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

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

因此,在總用時上,從4到16個PCIe通道,性能提升約3.2%。但是,如果PyTorch的數據加載器有固定記憶體,則性能提升為0%。因此,如果使用單個GPU,請不要在PCIe通道上浪費金錢。

在選擇CPU PCIe通道和主機板PCIe通道時,要保證你選擇的組合能支持你想要的GPU數量。如果買了支持2個GPU的主機板,而且希望用上2個GPU,就要買支持2個GPU的CPU,但不一定要查看PCIe通道數量。

PCIe通道和多GPU並行計算

如果在多個GPU上訓練網絡,PCIe通道是否重要呢?Tim曾在ICLR 2016上發表了一篇論文指出(https://arxiv.org/abs/1511.04561):如果你有96個GPU,那麽PCIe通道非常重要。

但是,如果GPU數量少於4個,則根本不必關心PCIe通道。幾乎很少有人同時運行超過4個GPU,所以不要在PCIe通道上花冤枉錢。這不重要!

CPU核心數

為了選擇CPU,首先需要了解CPU與深度學習的關係。

CPU為深度學習中起到什麽作用?當在GPU上運行深度網絡時,CPU幾乎不會進行任何計算。CPU的主要作用有:(1)啟動GPU函數調用(2)執行CPU函數。

到目前為止,CPU最有用的應用是數據預處理。有兩種不同的通用數據處理策略,具有不同的CPU需求。

第一種策略是在訓練時進行預處理,第二種是在訓練之前進行預處理。

對於第一種策略,高性能的多核CPU能顯著提高效率。建議每個GPU至少有4個線程,即為每個GPU分配兩個CPU核心。Tim預計,每為GPU增加一個核心 ,應該獲得大約0-5%的額外性能提升。

對於第二種策略,不需要非常好的CPU。建議每個GPU至少有2個線程,即為每個GPU分配一個CPU核心。用這種策略,更多內核也不會讓性能顯著提升。

CPU時鐘頻率

4GHz的CPU性能是否比3.5GHz的強?對於相同架構處理器的比較,通常是正確的。但在不同架構處理器之間,不能簡單比較頻率。CPU時鐘頻率並不總是衡量性能的最佳方法。

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

雖然這種推理似乎很明智,但是在運行深度學習程式時,CPU仍有100%的使用率,那麽這裡的問題是什麽?Tim做了一些CPU的降頻實驗來找出答案。

CPU降頻對性能的影響:

請注意,這些實驗是在一些“上古”CPU(2012年推出的第三代酷睿處理器)上進行的。但是對於近年推出的CPU應該仍然適用。

硬碟/固態硬碟(SSD)

通常,硬碟不會限制深度學習任務的運行,但如果小看了硬碟的作用,可能會讓你追、悔、莫、及。

想象一下,如果你從硬碟中讀取的數據的速度只有100MB/s,那麽加載一個32張ImageNet圖片構成的mini-batch,將耗時185毫秒。

相反,如果在使用數據前異步獲取數據,將在185毫秒內加載這些mini-batch的數據,而ImageNet上大多數神經網絡的計算時間約為200毫秒。所以,在計算狀態時加載下一個mini-batch,性能將不會有任何損失。

Tim小哥推薦的是固態硬碟(SSD),他認為SSD在手,舒適度和效率皆有。和普通硬碟相比,SSD程式啟動和響應速度更快,大檔案的預處理更是要快得多。

頂配的體驗就是NVMe SSD了,比一般SSD更流暢。

電源裝置(PSU)

一個程式員對電源最基礎的期望,首先得是能滿足各種GPU所需能量吧。隨著GPU朝著更低能耗發展,一個品質優秀的PSU能陪你走很久。

應該怎麽選?Tim小哥有一套計算方法:將電腦CPU和GPU的功率相加,再額外加上10%的功率算作其他組件的耗能,就得到了功率的峰值。

舉個例子,如果你有4個GPU,每個功率為250瓦,還有一個功率為150瓦的CPU,則需電源提供4×250+150+100=1250瓦的電量。

Tim通常會在此基礎上再額外添加10%確保萬無一失,那就總共需要1375瓦。所以這種情況下,電源性能需達1400瓦。

這樣手把手教學,應該不難理解了。還有一點得注意,即使一個PSU達到了所需瓦數,也可能沒有足夠的PCIe 8-pin或6-pin的接頭,所以買的時候還要確保電源上有足夠多的接頭接GPU。

另外,買一個能效等級高的電源,特別是當你需要連很多GPU並且可能運行很長時間的時候,原因你懂的。

再舉個例子吧,如果以滿功率(1000-1500瓦)運行4 GPU系統、花兩周時間訓練一個卷積神經網絡,需要耗用300-500度電。按德國每度0.2歐元計算,電費最終耗費約折合人民幣455-766元。

如果電源效率降到80%,電費將增加140-203元人民幣。

需要的GPU數量越多,拉開的差距越明顯。PSU的挑選是不是比之前想象的複雜一點?

CPU和GPU的冷卻

對於產熱大戶CPU和GPU來說,散熱性不好會降低它們的性能。

對CPU來說,則標配的散熱器,或者AIO水冷散熱器都是不錯的選擇。

但GPU該用哪種散熱方案,卻是個複雜的事。

風冷散熱

如果只有單個GPU,風冷是安全可靠的,但若你GPU多達3-4個,靠空氣冷卻可能就不能滿足需求了。

目前的GPU會在運行算法時將速度提升到最大,所以功耗也達到最大值,一旦溫度超過80℃,很有可能降低速度,無法實現最佳性能。

對於深度學習任務來說這種現象更常見了,一般的散熱風扇遠達不到所需效果,運行幾秒鐘就達到溫度閾值了。如果是用多個GPU,性能可能會降低10%~25%。

怎麽辦?目前,NVIDIAGPU很多是針對遊戲設計的,所以對於Windows系統進行了專門的優化,也可以輕鬆設定風扇方案。

但在Linux系統中這招就不能用了,麻煩的是,很多深度學習庫也都是針對Linux編寫的。

這是一個問題,但也不是無解。

在Linux系統中,你可以進行Xorg伺服器的配置,選擇“coolbits”選項,這對於單個GPU還是很奏效。

若你有多個GPU, 就必須模擬一個監視器,Tim小哥說自己嘗試了很長時間,但還是沒有什麽改進。

如果你想在空氣冷卻的環境中運行3-4個小時,則最應該注意風扇的設計。

目前市場上的散熱風扇原理大致有兩種:鼓風式的風扇將熱空氣從機箱背面推出,讓涼空氣進來;非鼓風式的風扇是在GPU中吸入空氣達到冷卻效果。

所以,如果你有多個GPU彼此相鄰,那麽周圍就沒有冷空氣可用了,所以這種情況,一定不要用非鼓風式的散熱風扇了

那用什麽?接著往下看——

水冷散熱

水冷散熱雖然比風冷法成本略高,但很適用於多個GPU相鄰的情況,它能hold住四個最強勁的GPU保持周身涼爽,是風冷無法企及的效果。

另外,水冷散熱可以更安靜地進行,如果你在公共區域運行多個GPU,水冷的優勢更為凸顯了。

至於大家最關心的成本問題,水冷單個GPU大概需要100美元(約690元人民幣)再加一些額外的前期成本(大約350元人民幣)。

除了財力準備,還需要你投入一些精力,比如額外花時間組裝電腦等。這類事情網上教程已經很多了,只需要幾個小時搞定,後期的維護也不複雜。

結論

對於單個GPU,風冷便宜也夠用;多個GPU情況下,鼓風式的空氣冷卻比較便宜,可能會帶來10%~15%的性能損失。如果想追求散熱極致,水冷散熱安靜且效果最好。

所以,風冷or水冷都合理,看你自己的實際情況和預算了。但小哥最後建議,通常情況下,還是考慮下低成本的風冷吧。

主機板

主機板應該有足夠的PCIe插槽來支持所需的GPU數量。但需要注意的是,大多數顯卡寬度需要佔用兩個PCIe插槽。

【PCIe插槽】

如果打算使用多個GPU,就要購買PCIe插槽之間有足夠空間的主機板,確保顯卡之間不會相互遮擋。

機箱

選機箱的時候,必須保證機箱能裝下主機板頂部的全長GPU,雖然大部分機箱是沒問題的,但是萬一你買小了,那就得看商家給不給你七天無理由了……

所以,買之前最好確認一下機箱的尺寸規格,也可以搜一下機箱裝著GPU的圖,有別人的成品圖的話就能買得放心一些。

另外,如果你想用定製水冷的話,保證你的機箱能裝得下散熱器,尤其是給GPU用定製水冷的時候,每個GPU的散熱器都需要佔空間。

顯示器

怎麽配顯示器還用教?

必須得教。

Tim放出了買家秀:

是的,作為一個成熟的技術人員,用多台顯示器是基本配置了。

想象一下把買家秀上這三台顯示器上的內容堆到同一塊螢幕裡,來回切換視窗,這得多累人。

太長不看版

GPU

RTX 2070、RTX 2080 Ti、GTX 1070、GTX 1080、GTX 1080,這些都不錯。

CPU

1.給每個GPU配1-2個CPU核心,具體要看你預處理數據的方式;

2.頻率要大於2GHz,CPU要能支持你的GPU數量;

3.PCIe通道不重要。

記憶體

1.時鐘頻率無關緊要,記憶體買最便宜的就行了;

2.記憶體 ≥ 顯存最大的那塊GPU的RAM;

3.記憶體不用太大,用多少買多少;

4.如果你經常用大型數據集,買更多記憶體會很有用。

硬碟/SSD

1.給你的數據集準備足夠大的硬碟(≥3TB);

2.有SSD會用的舒坦一些,還能預處理小型數據集。

PSU

1.需要的功率最大值≈(CPU功率+GPU功率)×110%;

2.買一個高能效等級的電源,特別是當你需要連很多GPU並且可能運行很長時間的時,這樣可以節省很多電費;

3.買之前請確保電源上有足夠多的接頭(PCIe 8-pin或6-pin)接GPU。

散熱

CPU:

標準配置的CPU散熱器或者AIO水冷散熱器;

GPU:

1.單個GPU,風冷散熱即可;

2.若用多個GPU,選擇鼓風式風冷散熱或水冷散熱。

主機板

準備盡可能多的鏈接GPU的PCle插槽,一個GPU需要兩個插槽,每個系統最多4個GPU,不過你也要考慮GPU的厚度。

顯示器

為了提高效率,多買幾塊螢幕吧。

發了三篇頂會的博士在讀小哥哥

這篇指南的作者Tim Dettmers去年碩士畢業,目前在華盛頓大學讀博,主要研究知識表達、問答系統和常識推理,曾在UCL機器學習組和微軟實習。

按照去年畢業開始讀博的話,Tim的博士才讀了一年半,現在就已經是三篇頂會論文的作者了,其中還有一篇AAAI是一作,一篇ICLR是唯一作者。

另外,他還是一個刷Kaggle愛好者,曾經在2013年排到全球第63名(前0.22%)。

One More Thing

其實說了這麽多,你也不想裝機對不對?

Tim已然料到,所以,在裝機指南之外,他還主動奉獻了一些裝機鼓勵:

雖然買硬體很貴,一不小心搞錯會肉疼,但是不要怕裝電腦這件事。

其一,裝機本身很簡單,主機板手冊裡都把如何裝機寫的明明白白,比裝樂高難不了多少,還附帶了大量的指南和分步操作影片,就算你是0經驗小白也能學得會。

其二,裝機這件事,只要有第一次,後面就不難了,因為所有的電腦都是那幾個硬體構成的。所以,只要裝一次,就可以get一門終身技能,投資回報率非常高。

所以,加油準備一台你自己的設備吧~

傳送門

原文:

A Full Hardware Guide to Deep Learning

http://timdettmers.com/2018/12/16/deep-learning-hardware-guide/

作者推薦,數位博主Linus Tech Tips解答疑問:高頻率記憶體對性能提升有用嗎?(B站官方中文版):

https://www.bilibili.com/video/av14528439

活動報名

加入社群

量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字“交流群”,獲取入群方式;

此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。

進專業群請在量子位公眾號(QbitAI)對話界面回復關鍵字“專業群”,獲取入群方式。(專業群審核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復“招聘”兩個字。

獲得更多的PTT最新消息
按讚加入粉絲團