配置深度學習主機與環境(TensorFlow+1080Ti):(一)硬體選購與主機組裝

weixin_34378969發表於2017-07-15
5549241-4e6a335cdff535b8.png
TensorFlow

配置深度學習主機與環境(TensorFlow+1080Ti):

(一)硬體選購與主機組裝

(二)Win10&Ubuntu雙系統與顯示卡驅動安裝

(三)CUDA與CUDNN安裝

(四)基於Anaconda的TensorFlow安裝


一. 硬體選購

研究需求,遂組裝一臺全新的計算機,安裝Ubuntu,用來執行TensorFlow,同時保留Win10,方便其他其他場合使用。因為硬體更新換代很快,各種網路結構也層出不窮。因此,考慮使用多顯示卡來提升系統的計算能力是有必要的。現階段,主要購買單塊顯示卡實現整個系統的搭建,同時保留擴充(多顯示卡)空間。

硬體清單如下:

5549241-f8270ca07f96a482.png
BOM

以上配置總共花費24173.1元人民幣,購買時間主要在6月底7月初,沒能趕上京東618的活動,順便不幸的碰到了顯示卡缺貨,所以價格上僅供參考。

1. 主機板

因為考慮到系統有可能擴充四塊顯示卡,因此主機板首先需要支援4-Way NVIDA SLI功能,通常單塊顯示卡佔用16條PCIE通道,四塊顯示卡則需要16*4=64條PCIE通路,而常見的i7處理器中的高階型號最高只有40條PCIE通道,因此理論上的處理方法是需要使用兩塊CPU實現雙通道處理。京東上就有使用雙路E5配合4路1080Ti所搭建的深度學習主機。

5549241-fc17f6e48f47734c.png
雙路E5配合4路1080Ti

在不考慮雙路CPU的情況下,要想實現16*4PCIE通路,目前只有Asus X99-E WS/USB 3.1唯一一塊主機板可以實現PCIE通路的擴充。

5549241-b650394a9e936814.jpg
ASUS X99-E WS USB3.1主機板說明書

上圖是主機板說明書中的一頁,顯示主機板共有7條PCIE介面。使用四塊顯示卡,分別放置於1、3、5、7號PCIE介面,可以實現4*16條PCIE通道。具體實現我並不是特別清楚,但是在我的深度學習工作站攢機過程記錄中,作者也同樣詢問過這個問題:

5549241-8e5567aca76ac72b.png
Asus X99-E WS/USB 3.1

2. 中央處理器 CPU

為適配主機板型號,CPU為LGA2011-v3系列,同時支援最高40條PCIE通道。因為系統主要使用顯示卡進行計算,因此對CPU的要求並不是很高。Tim Dettmers在其Blog:A Full Hardware Guide to Deep Learning中提到CPU的核心數並不重要,擁有相對較高的主頻即可。

CPU:Two threads per GPU; full 40 PCIe lanes and correct PCIe spec (same as your motherboard); > 2GHz; cache does not matter;

最後決定在i7-5930K和i7-6850K中二選一,價格差距不大,遂選擇主頻較高的i7-6850K。

注意:i7-6850K是不帶核顯的,裝機前期顯示卡還沒到,特地借了一張點亮卡用來檢測裝機情況。

各型號處理器具體引數可以在Intel官方網站查詢與對比。

5549241-47e0bcda1645bcf6.png
i7-5930K&i7-6850K引數對比

3. 顯示卡 GPU

並非所有的顯示卡都支援CUDA,實際上僅有部分Nvidia高階顯示卡才支援,具體支援列表可前往Nvidia查詢。

5549241-efe2af32c543b148.png
TensorFlow對GPU的要求

目前10系顯示卡橫空出世,基本上深度學習主機主要可選為:Titan Xp、1080Ti、Titan、1060與Tesla系列,深度學習模型對引數精度要求並不高,因此除非土豪,可以排出Tesla系列顯示卡。在金錢允許但非土豪的情況下,1080Ti是目前最佳的選擇。在顯示卡的選購過程中,肯定會遇到公版與非公版的選擇問題。雖然非公版的散熱較好,且自帶超頻,但考慮到系統的穩定性與相容性,建議還是選擇公版顯示卡。另外非公版顯示卡還可能會遇到顯示卡太厚主機板放不下的問題。

在顯示卡的購買過程中正好遇到了顯示卡慌,京東上所有自營的商家全部缺貨,剩下的部分顯示卡都在6500~7000RMB左右。不得已選擇上淘寶代購,結果大部分代購商家都拿不到貨,難怪大家都盼望著礦難。另外海淘顯示卡推薦選擇EVGA,在臺灣有維修點,方便保修。 

以下圖表和建議,來自於Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning

5549241-9696b105a9a573db.png
Normalized cost efficiency of GPUs which takes into account the price of other hardware. Here we compare a full machine, that is 4 GPUs, along with a high end hardware (CPU, motherboard etc.) worth $1500.

Best GPU overall (by a small margin): Titan Xp

Cost efficient but expensive: GTX 1080 Ti, GTX 1070, GTX 1080

Cost efficient and cheap:  GTX 1060 (6GB)I work with data sets > 250GB: GTX Titan X (Maxwell), NVIDIA Titan X Pascal, or NVIDIA Titan Xp

I have little money: GTX 1060 (6GB)

I have almost no money: GTX 1050 Ti (4GB)

I do Kaggle: GTX 1060 (6GB) for any “normal” competition, or GTX 1080 Ti for “deep learning competitions”

I am a competitive computer vision researcher: NVIDIA Titan Xp; do not upgrade from existing Titan X (Pascal or Maxwell)

I am a researcher: GTX 1080 Ti. In some cases, like natural language processing, a GTX 1070 or GTX 1080 might also be a solid choice — check the memory requirements of your current modelsI want to build a GPU cluster:This is really complicated, you can get some ideashereI started deep learning and I am serious about it: Start with a GTX 1060 (6GB). Depending of what area you choose next (startup, Kaggle, research, applied deep learning) sell your GTX 1060 and buy something more appropriate

I want to try deep learning, but I am not serious about it: GTX 1050 Ti (4 or 2GB)

4. 機箱

選擇Tim DettmersNVIDIA® DIGITS™ DevBox同款機箱,被大多數深度學習使用者所採用。

5549241-8ae9b90e1a076290.png
NVIDIA® DIGITS™ DevBox

5. 電源

建議不要在電源上省錢,主機可能24小時執行,穩定性最重要。1600w對付4塊1080Ti足以。另外:Nvidia DevBox 用的是 EVGA 1600W 80+ Gold 120-G2-1600-X1,比我買的鈦金便宜點。

6. 散熱

在風冷和水冷的選擇上糾結了很久,總擔心水冷過保之後會漏水,最終還是選擇了風冷。直接選擇京東上貓頭鷹最貴的一款(NOCTUA NH-D15 CPU散熱器),後期使用情況看,散熱不錯,噪音也不大。

如果選擇水冷的話建議將冷排安裝在AIR540機箱的頂端,這樣可以避免頂端進灰。

7. 記憶體

i7-6850K預設主頻2400MHz,開啟XMP之後,自動超頻為3200MHz。因此建議購買DDR4 3200MHz記憶體條。

XMP是Extreme Memory Profile的縮寫,是Intel在2007年9月提出的記憶體認證標準,適用於DDR3和DDR4。

為了統一行業內的超頻數值標準,而不讓各個記憶體廠商隨意設定更高的記憶體頻率數值寫入到SPD,英特爾提出了XMP認證標準。通過XMP認證的記憶體會在記憶體地址176 ~ 254中記錄記憶體的速度設定,最多可以儲存2組設定值。廠商們如需要得到XMP的認證,就必須把記憶體及該設定送交Intel測試,通過後就會給予認證。

通過XMP認證後,其SPD中除了預設普通頻率數值的SPD值外,還寫入了更高頻率設定的SPD。這個更高頻率的設定配合支援XMP的主機板後可以被啟用,從而將記憶體超頻提升效能。

簡單的說,通過了英特爾XMP認證的記憶體,SPD中有兩個或更多頻率設定檔案,只要在主機板中啟用這些預設的XMP檔案,即可將記憶體條自動超頻到3200或更高值(根據檔案設定而定)。

XMP與手動超頻效果基本無異,所以可將其看作為記憶體的自動超頻技術。

8. 顯示器

顯示器就是生產力。

9. 鼠鍵

建議購買無線鼠鍵,可以離機箱遠遠的。

注意:在系統點亮之後可能無法識別無線鼠鍵,建議在點亮階段使用有線鼠鍵。

10. 儲存

若訓練集龐大,建議購買較大的SSD,HDD可用來倉儲。假如需要安裝雙系統,建議SSD 512G,HDD可以用來當作Win10和Ubuntu的公共掛載盤。


二. 主機組裝

計算機組裝應該是整個搭建過程中最簡單的部分了,雖然我之前從來沒有組裝過電腦。

第一步將CPU(注意方向)、RAM、SSD(M.2 Nvme)安裝到主機板上,將主機板附送的主機後置皮膚安裝到機箱上。

第二步將將散熱安裝到CPU上,放到機箱中,確定散熱器風道方向與散熱器的位置,以免放不下。

第三步塗矽脂,重新將確定好位置的風扇安裝到CPU上。

第四部將主機板固定到機箱上,注意機箱上的銅柱不多也不少,避免主機板下面有空餘的銅柱而導致主機板短路。

第五步將GPU和其他pcie介面裝置安裝到主機板與機箱上,安裝磁碟陣列到機箱內,安裝電源模組。

第六步接線。

關於組裝電腦的相關資料如下:

1. 知乎:如何配組裝電腦?

2. 知乎:關於組裝電腦的一些常識

3. 【極客灣】萌妹子帶你裝電腦(萌新向)


三. 參考資料:

1. 知乎:如何配置一臺適用於深度學習的工作站?

2. 我的深度學習工作站攢機過程記錄

3. 我愛自然語言處理:深度學習主機攢機小記

4. 深度 | 從硬體配置到軟體安裝,一臺深度學習機器的配備指南

5. 小白在閉關:搭建一臺用於深度學習的工作站

6. Tim Dettmers:Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning

7. Tim Dettmers:A Full Hardware Guide to Deep Learning

8. Build Personal Deep Learning Rig: GTX 1080 + Ubuntu 16.04 + CUDA 8.0RC + CuDnn 7 + Tensorflow/Mxnet/Caffe/Darknet

相關文章