1. 程式人生 > >深度學習(TensorFlow)環境搭建:(一)硬體選購和主機組裝

深度學習(TensorFlow)環境搭建:(一)硬體選購和主機組裝

一、硬體採購

  近年來,人工智慧AI越來越多被人們所瞭解,尤其是AlphaGo的人機圍棋大戰之後,機器學習的熱潮也隨之高漲。最近,公司採購了幾批裝置,通過深度學習(TensorFlow)來研究金融行業相關問題,學習機器學習我們需要滿足一定的硬體要求,本文主要是介紹硬體選購的相關事宜。

  現在主力的深度學習都是通過多顯示卡計算來提升系統的計算能力,所以硬體的採購核心是顯示卡(GPU),下面是整個硬體採購的清單及大致費用如下:

  以上的配置一臺裝置的總共費用大致:2.8W左右。公司購買了2臺,費用大致6W,兩臺裝置的研究方向不一樣。本來裝置這些東西按理說應該是越來越便宜才對,但是這幾年恰恰相反(%>_<%),尤其這兩年比特幣大熱(大學那會到現在,翻了一千多倍,千金難買早知道~~),很多人都買顯示卡專業挖礦去了,一度導致顯示卡熱銷,經常斷貨,價格也自然水漲船高。不僅如此,記憶體這兩年價格幾乎至少翻了一倍以上,兩年前DDR4的8G記憶體最低200不到,現在像樣點的都至少500以上(現在不流行囤金銀了,改為囤記憶體條了),SSD和機械硬碟也漲了不少,記得那年福島地震和東南亞洪水之後,供應商工廠受損,價格貌似就沒有再降下來過。這些都是題外話,我們言歸正傳,以上的價格僅供參考。

   其實京東上面也有不少DIY定製的一套深度學習的伺服器配置,不過主要也是分為兩種:一種是至強E系列雙CPU帶4路GPU,還有一種是I7的CPU待2路GPU。

圖1、至強 E5雙路/4路GPU

 圖2、i7 6850K/GTX1080TI雙卡(水冷)

   可能有些人有疑問,為什麼單I7不能帶四路GPU,而是需要雙路CPU,其實也有單CPU帶4路GPU的特例,這個在下文會解釋

1、主機板

一般來說單塊的GPU顯示卡佔用16條PCIE通道,如果想配置4塊的話,那麼則需要16*4=64條PCIE通路。而我們選擇常見的I7的CPU最高也只有40條PCIE通路,理論上來講需要2塊CPU實現雙通道處理。上面京東上大多數都是這種配置模式,當然,如果我們不想使用雙路CPU的話,要想實現單CPU支援16*4PCIE通道,目前只有Asus X99-E WS/USB 3.1,唯一 一塊主機板可以實現PCIE通路的拓展。所有如果有人想使用單個I7帶4路GPU的話,那主機板只能選擇這一款了。

推薦使用這一款,為了後期方便擴充套件,我們可以暫時只買1路或者2路GPU,後期可以擴至4路。  

 2、CPU

  CPU的選購也是需要適配主機板型號,為了支援上述的ASUS X99-E WS USB3.1主機板,CPU為LGA2011-v3系列,同時支援最高40條PCIE通道。而且我們系統主要使用CPU顯示卡進行計算,CPU的核心數並不重要,只要擁有相對較高的主頻就可以,因此對CPU的要求其實並不是很高。這我們選擇主頻相對較高的i7-6850K(不帶核顯),也可以選擇相對較低點主頻的i7-5930K。具體根據實際情況選購,預算多一點的,可以選擇更好的。

  

3、顯示卡GPU

   其實顯示卡才是我們的主角,我們的核心計算都是需要依託GPU計算的,當然並不是所有顯示卡都可以的,我們需要能夠支援CUDA平臺(一種由NVIDIA推出的通用平行計算架構)的GPU才行,實際上也只有部分高階NVIDIA顯示卡才支援此功能,NVIDIA也可以查詢的到具體的支援列表,大家可以前往查詢——>傳送門

  其實我們的另一個主角TensorFlow對GPU也是有要求的

  

  基本上深度學習主機主要可選為:Titan Xp、1080Ti、Titan、1060與Tesla系列,深度學習模型對引數精度要求並不高,因此除非土豪,可以排出Tesla系列顯示卡。在預算充足的情況下,1080Ti是目前最佳的選擇。在顯示卡的選購過程中,肯定會遇到公版與非公版的選擇問題,這也是為什麼上面購物清單裡特意標註說明的。雖然非公版的散熱較好,且自帶超頻,但考慮到系統的穩定性與相容性,建議還是選擇公版顯示卡,畢竟我們是用來研究的,還是一個畢竟嚴謹些。另外非公版顯示卡還可能會遇到顯示卡太厚主機板放不下的問題。購買方面,大家如果方便,海淘也是一個不錯的選擇

   Tim Dettmers部落格也分析過主流的GPU成本效益,大家可以去看看他的部落格介紹——>傳送門

  

  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.

  在他的部落格當中,也給出了他個人的購買意見

複製程式碼

TL;DR advice
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 models
I want to build a GPU cluster: This is really complicated, you can get some ideas here
I 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)
(直接google翻譯,哈哈)

 整體最佳GPU(由小幅度):Titan Xp的  成本有效的,但昂貴的:GTX 1080的Ti,GTX 1070,GTX 1080   成本高效和廉價的:GTX 1060(6GB)  我的資料集> 250GB工作:GTX泰坦X(麥克斯韋) ,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叢集: 這確實是複雜的,你可以得到一些想法   這裡我開始深入學習,我很認真:從一個GTX 1060(6GB)開始。根據您下一步選擇的區域(啟動,Kaggle,研究,應用深度學習)銷售您的GTX 1060併購買更適合  我想要深入學習的東西,但我並不太在意:GTX 1050 Ti(4或2GB)

複製程式碼

  

   下面是購買的MSI的2塊1080ti的顯示卡

  

4、機箱

  選擇NVIDIA® DIGITS™ DevBox同款機箱,大多數深度學習使用者都是使用這款機箱(他們也給我們推薦了自己的配置,大家可以參考下),我們也是採購這一款,值得推薦哦

        

       

   

5、電源

  其實電源也是很重要的,尤其是其功率上,畢竟如果擴至4路的話,24小時不間斷運作的話,還是相當耗電的,如果你想以後擴至4路的話,1600w足夠了,這玩意24小時不關機,一個月下來還是挺費電的(就當是沉澱成本,O(∩_∩)O哈哈~),這個還是根據自己實際情況來,但是唯一的原則是:功率要超過所有硬體裝置的總功率,要不然帶不起來的。

6、散熱

  散熱的話,大家可以選擇水冷或者風冷,糾結之後還是選擇了水冷,最終選擇了一款(美商海盜船( Corsair)Hydro系列 高效能 水冷 CPU散熱器 全平臺支援 H100i V2 240mm)的水冷散熱,後期發現的確是超靜音的,噪音特別小,選擇水冷的話建議將冷排安裝在AIR540機箱的頂端,這樣可以避免頂端進灰。如果有人擔心水冷過了保質期之後會漏水,也可以選擇風冷的。

7、記憶體

  記憶體條的大小也要根據CPU來購買的,因為I7-6850K預設主頻2400MHz,開啟XMP之後,自動超頻為3200MHz。因此建議購買DDR4 3200MHz記憶體條(2條16x2),如果不知道XMP,可以自行搜尋瞭解下。

  XMP是Extreme Memory Profile的縮寫,是Intel在2007年9月提出的記憶體認證標準,適用於DDR3和DDR4。簡單的說,通過了英特爾XMP認證的記憶體,SPD中有兩個或更多頻率設定檔案,只要在主機板中啟用這些預設的XMP檔案,即可將記憶體條自動超頻到1600或更高值(根據檔案設定而定)。XMP與手動超頻效果基本無異,所以可將其看作為記憶體的自動超頻技術。

8、儲存

  建議搭配SSD(固態硬碟)和HDD(機器硬碟)結合使用,SSD用作系統盤,HDD用作倉儲,建議SSD至少250G,機器硬碟現在標配也是至少是1T了。一般SSD安裝Windows和Linux雙系統,而機械硬碟就可以當做雙系統的公共掛載盤。我們買的半高的SSD,如圖所示。

  

9、顯示器+滑鼠+鍵盤

  這三個沒有特別要求,能用就行,這裡不做多介紹,可以自行決定。提醒下,由於主機板已經不支援VGA介面,只支援DP和HDMI介面,所有也得買個VGA轉DP接頭或者VGA轉HDMI接頭,

 

10、成品展示

  下面是已經組織好的硬體裝置

  

結束語:

  以上主要是配置深度學習硬體大致介紹,剩下的就是主機的組裝了,和傳統桌上型電腦組裝過程是一樣的,這裡不做講解。大家可以根據自己的實際情況,適當配置最符合自己要求的硬碟配置,最後建議大家最好按照雙系統,Windows和Ubuntu,這樣便於工作區間的切換。

填坑補充:

  安裝系統的時候,直接用U盤安裝或者PE安裝都不行,必須要拿一張低端的N卡去點亮(我是拿了一個低配的N卡才安裝上系統的,費了好大牛勁了才發現這個問題~~),這個在下篇講解安裝系統的時候會講到