1
雷鋒網 AI科技評論按,對于那些一直想進行深度學習研究的同學來說,如何選擇合適的配置一直是個比較糾結的問題,既要考慮到使用的場景,又要考慮到價格等各方面因素,日前,medium上的一篇文章為我們詳細描述了該如何為個人的深度學習機器選擇配置,主要該進行哪些方面的考慮。雷鋒網 AI科技評論編譯整理如下:
作為一名業余愛好者,在探索和解決深度學習問題時,亞馬遜 EC2 實例的運行成本太高了。在一開始,我采用的是 Reserved 實例收費模式,因為我對云生態系統不是很懂。后來,在運行結構良好的實驗時,Spot 實例也成了我的選擇之一。但用這種方法去啟動和執行實驗往往會碰到問題,我主要會在為備份和恢復數據/進程設置環境時碰到問題。很感謝 Alex Ramos 和 Slav Ivanov 提供的 Classic 和 24X7 版本的 EC2 Spotter 工具,這在使用 spot 實例時很有用。(如果你仍然使用 Spot 實例的話可以試試他們的提供的工具)
在使用亞馬遜 EC2 實例大約6個月后,我意識到,長遠來看,還是買一個屬于自己的機器會更加便宜。買機器之后,我可以更好地控制實驗,并且可能會取得比在云端更好的效果。在互聯網上進行詳盡的調查之后,我下定決心買屬于自己的機器,然后我開始研究如何為本地深度學習來選擇組件。
如何選擇深度學習的組件?這真的很困擾那些剛開始實驗的新手。這要求用戶擁有一些關于構建系統的基本知識,以保證較高的性價比。
這篇文章試圖幫助剛開始進行深度學習的讀者選擇機器配置,在選擇產品之前幫助他們了解更多參數。
開始
首先,你必須定下你最大需要多少塊GPU,如果你經常進行機器學習研究,那你可能需要更多 GPU,這可以幫助你并行運行多個任務,你可以同時嘗試不同的模型結構、數據規范化、超參數等等。
我的建議:如果你是一個普通研究員/學生/業余愛好者,可以考慮雙 GPU。如果你打算運行大型的模型,并參加像 ImageNet 那樣需要大量計算的競賽,你可能需要考慮多 GPU 結構。
一旦你想清楚自己想要進行哪種研究,接下來就可以考慮需要的 PCIe 通道數了。
雙 GPU(最多兩塊GPU):24條 PCIe 通道(當使用共享 PCle 通道的 SSD 或同時使用兩塊 GPU 時,可能會出現延遲)
多 GPU (最多4 塊 GPU): 40到44條 PCIe 通道
為什么首先考慮 PCIe 通道?
實際情況下,在對磁盤進行訪問操作或數據增加時,數據流到GPU上會出現瓶頸。一塊 GPU 需要16條 PCIe 通道才能滿負荷運轉。
這篇文章將著重為大家介紹雙 GPU 系統,下次我也將帶來多 GPU 系統的介紹。
雙 GPU
1)主板
一旦確定了 PCIe 通道的需求,接下來就可以挑選主板芯片組了:
下表給出了在不同芯片組下可用 PCIe 通道的個數:

注:理想情況下,單個 GPU 發揮最優性能需要16個 PCIe 通道。
因此,即使 B150、B250、H110、H170、H270 這樣的芯片組支持英特爾處理器,它們也很少用于深度學習,因為對于深度學習應用來說,需要更多的 PCIe 通道數。因此,首選芯片組如下:
Z170?—?支持第6/7代英特爾處理器。使用第7代可能需要BIOS更新。
Z270?—?支持第6/7代英特爾處理器。
(最新的) Z370?—?支持第8代英特爾處理器。
一旦你決定了芯片組,可以利用 PC Partpicker 來選擇主板,下面是鏈接:
https://pcpartpicker.com/products/motherboard/
你需要注意的有:
外形規格(例如ATX,微型ATX,EATX等)
PCIe slot 數(最小2個 slot)
最大支持內存(首選 64GB)
內存 slot 數(最小4個 slot)
SSD 和 SATA slot 數(你可以考慮一下)
2)處理器
選擇主板之后,因為有 socket 類型等的限制,處理器的選擇范圍就縮小了,CPU 的選擇可能會進一步依賴于 GPU。正如前面提到的,對于深度學習應用來說,CPU 主要負責數據處理和與 GPU 的通信。因此,如果我們想在數據預處理中進行并行計算,那每個核的核數和線程數將至關重要。建議大家選擇多核系統(最好是4核)來處理這些任務。
需要注意的有:
Socket 類型
核數量
費用
PS:一些處理器中可能不帶散熱風扇。
下面是用 PC Partpicker 選擇處理器的地址:
https://pcpartpicker.com/products/cpu/#m=21
內存

當處理大數據集時,它們可能需要存儲于內存中。RAM 的大小決定了內存中可以容納的數據集的量。對于深度學習應用來說,至少選擇 16G 的內存(Jeremy Howard 建議選擇 32G 的內存)。Clock 越高越好,建議大家最小選擇 2400 MHZ的。
要記住,讓單個 stick 的內存更大!因為這可以使得剩余 slot 的擴展空間更大。我看到很多人用4*8GB的內存取代2*16GB的內存,僅僅只是因為這樣價格比較便宜,但最后會導致沒有升級空間。
存儲器
SSD變得越來越便宜,速度也更快了,所以HDD的價格也在持續下降。

最好有一個小容量的SSD和一個大容量的HHD。SSD傾向于存儲和檢索被經常使用的數據。HDD則主要用來存儲將來會使用的數據。
SSD?——存儲使用中的數據,價格昂貴,推薦最小買 128GB 的
HDD?——存儲各種用戶數據,價格相對來說會便宜一點,推薦最小買 2TB,7200RPM 的
GPU
GPU 是配置用于深度學習的機器的核心,它們決定了在訓練神經網絡過程中獲得的性能增益。深度學習中涉及的大部分計算都是矩陣運算,所以在相同的并行模式下,GPU 的表現勝過傳統 CPU。GPU 內部有很多叫核的小型計算單元,單元中的線程能保證矩陣運算更加快速。GPU 的內存帶寬也可以使得它支持對大量數據進行操作。
Tim Dettmers之前寫過一篇關于如何選擇用于深度學習的 GPU 的文章,這篇文章很有代表性,一旦有了新卡他也會更新,在選擇 GPU 之前大家可以看下他的這篇文章。鏈接如下:
http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/
下面是他關于 GPU 選擇的建議:
最佳 GPU 選擇:Titan Xp
高效但昂貴:GTX 1080 Ti, GTX 1070, GTX 1080
高效且便宜:GTX 1060 (6GB)
要是處理的數據集在 250 GB 以上,那么你的選擇最好是 GTX Titan X (Maxwell)、 NVIDIA Titan X Pascal 或 NVIDIA Titan Xp
要是資金不足,那就選擇 GTX 1060 (6GB)
完全沒錢:GTX 1050 Ti (4GB)
參加kaggle比賽:常規比賽選擇 GTX 1060 (6GB),深度學習類型的比賽,選擇GTX 1080 Ti
經常參加比賽的計算機視覺研究人員:NVIDIA Titan Xp,不需要升級現有的 Titan X (Pascal 或 Maxwell)
研究人員:GTX 1080 Ti。在進行類似于自然語言處理的任務時,也可以選擇 GTX 1070 或 GTX 1080,大家可以檢查下當前模型的內存需求如何。
想要構造 GPU 集群:這有點復雜,你可以點擊如下鏈接參考
http://timdettmers.com/2014/09/21/how-to-build-and-use-a-multi-gpu-system-for-deep-learning/
剛剛開始想要認真進行深度學習的研究:GTX 1060 (6GB)。根據你接下來選擇的領域(初創公司,Kaggle,研究,深度學習應用),賣掉之前的 GTX 1060,然后購買更合適的。
抱著試一試的心態來進行深度學習研究:GTX 1050 Ti (4或2GB)
如果預算有限,強烈推薦初學者買 1060 6GB 的 GPU,新舊都可以。如果預算可以增加一點,那么建議買最近發布的 1070ti (大約430美元),它與 1080 的性能幾乎一樣,但價格較低(幾乎與 1070 相同)。不要去買 1070,除非你有站得住腳的理由。如果你有足夠的錢,那就買 1080ti。
再啰嗦一遍,如果你真的很熱衷于進行研究,那么最好買2塊 1070ti,而不是1塊 1080ti,這將會給你帶來極大的靈活性。
via:medium
雷鋒網 AI 科技評論編譯整理。
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。