目前GPU深度學習服務器在AI、視頻處理、科學計算等領域都有普遍應用。隨着NVIDIA推出更多的GPU硬件和工具軟件,如何配置一臺屬於本身的GPU服務器,在開發者的工做中成爲了重中之重。linux
文章大概:
一、硬件平臺的搭建
o 深度學習服務器的性能需求
o NVIDIA GPU的性能特色
o 硬件環境的配置搭配要點
算法
二、軟件環境的配置
o 深度學習環境的系統配置,環境搭建
o NVIDIA CUDA的安裝
o 介紹NVIDIA Deep Learning 相關SDK工具,包括相似於Transfer Learning Toolkit,CuDNN,CuBlas, TesnorRT…
o NVIDIA GPU Cloud 介紹
o 成熟的解決方案或者案例
編程
最近開始學習深度學習(Deep Learning)技術,特別是google的Tensorflow深度學習包開源後,深度學習已經成爲大數據領域的重大計算革命,配合Teras頂層框架,使得Deep learning的學習成本下降。(百度也開源了飛槳開源平臺也不錯)緩存
目前Deep learning技術應用愈來愈廣,一切數據都是圖,CNN卷積神經網絡技術充滿了神奇的計算魅力。DL技術普遍應用於:圖像處理、人臉識別、自動駕駛、聊天機器人、AI人工智能、機器語言翻譯、圖片推薦系統、聲音處理、音樂做曲、機器寫做等領域。安全
現今,日益完善的深度學習技術和-AI-服務越發受到市場青睞。與此同時,數據集不斷擴大,計算模型和網絡也變得愈來愈複雜,這對於硬件設備也提出了更爲嚴苛的需求。如何利用有限的預算,最大限度升級系統總體的計算性能和數據傳輸能力成爲了最爲重要的問題。服務器
因爲,作深度學習,須要不少科學計算學習包。以及深度學習框架(tensorflow)
我這裏選擇的是下載Anaconda(集成環境。Anaconda installer archive https://repo.anaconda.com/archive/)。
網絡
推薦配置架構
若是您是高校學生或者高級研究人員,而且實驗室或者我的資金充沛,建議您採用以下配置:框架
-
主板:X99型號或Z170型號機器學習
-
CPU: i7-5830K或i7-6700K 及其以上高級型號
-
內存:品牌內存,總容量32G以上,根據主板組成4通道或8通道
-
SSD: 品牌固態硬盤,容量256G以上
-
顯卡:NVIDIA GTX 1080ti、NVIDIA GTX TITAN、NVIDIA GTX 1080、NVIDIA GTX 1070、NVIDIA GTX 1060 (順序爲優先建議,而且建議同一顯卡,能夠根據主板插槽數量購買多塊,例如X99型號主板最多能夠採用×4的顯卡)
-
電源:由主機機容量的肯定,通常有顯卡總容量後再加200W便可
最低配置
若是您是僅僅用於自學或代碼調試,亦或是條件所限僅採用本身現有的設備進行開發,那麼您的電腦至少知足如下幾點:
-
CPU:Intel第三代i5和i7以上系列產品或同性能AMD公司產品
-
內存:總容量4G以上
若是是先能夠玩玩Keras文檔說明中的幾個案例,都有詳細的代碼和說明。
【經費充足的狀況下另外也能夠購買雲廠商(BATH的幾家)的專用GPU服務器,須要單獨購買英偉達受權。】
Keras文檔關於計算機的硬件配置說明- https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/
通常咱們也能夠將這臺配置的GPU電腦做爲服務器,經過設置SSH Key和SSH tunnel用平時的蘋果電腦遠程訪問進行深度學習算法建模,經過模型訓練後將模型save後,在不帶GPU的電腦調用load模型或weights模型,進行預測和分類。
GPU ——Nvidia GTX 1080 Ti
GPU的重要性在於:
-
DL中的大多數計算是矩陣運算,如矩陣乘法。若是在CPU上完成,它們可能很慢。
-
因爲咱們在一個典型的神經網絡中進行了數千次這樣的操做,所以慢速度真的加起來就更慢了。
-
GPU至關方便地可以並行運行全部這些操做。它們有大量的內核,能夠運行更多的線程。
-
GPU還具備更高的內存帶寬,使其可以一次對一堆數據執行這些並行操做。
可選擇的是Nvidia的幾張牌:
GTX 1070($ 360),GTX 1080($ 500),GTX 1080 Ti(700美圓),最後是Titan X(1320美圓)。
在性能方面:GTX 1080 Ti和Titan X相似,大體來講,GTX 1080比GTX 1070快25%,而GTX 1080 Ti比GTX 1080快約30%。
如下是做者提到採購GPU時要考慮的事項:
-
製造商:好像目前沒得選,只能是Nvidia英偉達出品。英偉達多年來一直專一於機器學習,支撐GPU運算的CUDA工具包根深蒂固,它是DL從業者的惟一選擇。
-
預算:泰坦X在這方面的表現很是糟糕,由於它提供與1080 Ti相同的表現約500美圓。
-
一個或多個:我考慮挑選一些1070s而不是1080或1080 Ti。這樣可讓我在兩張卡上訓練一個模型,或者一次訓練兩個模型。目前在多卡上訓練一個模型有點麻煩,儘管隨着PyTorch和Caffe 2的改變,GPU的數量幾乎是線性縮放。另外一個選擇 - 同時訓練兩個模型彷佛有更多的價值,但我決定如今得到一個更強大的卡,並在以後增長一個。
-
GPU內存:更多內存更好。有更多的內存,咱們能夠部署更大的模型,並在訓練期間使用足夠大的批量(這有助於梯度流)。
-
內存帶寬:這使得GPU可以在大量內存上運行。這是GPU的最重要的特徵。
考慮到這一切,做者選擇了GTX 1080 Ti,主要是爲了提升訓練速度。從此再添加第二個1080 Ti。
主板
在選擇主板時,可以支持兩個GTX 1080 Ti,包括PCI Express通道數(最小爲2x8)和2個卡的物理尺寸。此外,請確保它與所選的CPU兼容。一個華碩TUF Z270爲$ 130是選擇。若是您擁有Intel Xeon CPU,MSI - X99A SLI PLUS應該會很好。
電源——750W
經驗法則:它應該爲CPU和GPU提供足夠的電力,加上額外的100瓦特。
英特爾i5 7500處理器使用65W,GPU(1080 Ti)須要250W,75美圓的價格得到了一個Deepcool 750W Gold PSU。這裏的「Gold」是指功率效率,即消耗的功率是多少做爲熱量浪費。
軟件設置
硬件到位後須要安裝支撐深度學習的軟件了。具體細節keras文檔有描述。
安裝Ubuntu
大多數DL框架被設計爲首先在Linux上工做,也支持其餘操做系統。在Ubuntu安裝期間,默認選項通常都能正常工做,儘可能先默認安裝選項。選擇了之前的版本(16.04)。
接下來安裝:
-
支持GPU運算的深度學習驅動程序和深度學習軟件包、
-
GPU driver — 操做系統支持GPU的驅動程序
-
CUDA — 支持GPU運行通用代碼的驅動程序.
-
CuDNN —支持運行深度神經網絡的算法程序
-
安裝Python3.6 經過Anacoda4.2的安裝方式推薦
-
安裝Jupyter Notebook
-
安裝numpy,scikit-learn,scikit-image,pandas,matplotlib等(通常都安裝好了)
-
安裝HDF5
-
安裝Tensorflow
-
安裝PyTorch
-
安裝Theano(可選,按吧有些案例是用的)
-
安裝Keras
-
其餘包,隨用隨按吧
======以上就是我的學習推薦的選擇步驟,如下就是企業級應用過程須要考量。======
GPU-的選擇
熟悉深度學習的人都知道,深度學習是須要訓練的,所謂的訓練就是在成千上萬個變量中尋找最佳值的計算。這須要經過不斷的嘗試識別,而最終得到的數值並不是是人工肯定的數字,而是一種常態的公式。經過這種像素級的學習,不斷總結規律,計算機就能夠實現像人同樣思考。於是,更擅長並行計算和高帶寬的-GPU,則成了你們關注的重點。
GPU-一個比較重要的優點就是他的內存結構。首先是共享內存。在-NVIDIA-披露的性能參數中,每一個流處理器集羣末端設有共享內存。相比於-CPU-每次操做數據都要返回內存再進行調用,GPU-線程之間的數據通信不須要訪問全局內存,而在共享內存中就能夠直接訪問。這種設置的帶來最大的好處就是線程間通信速度的提升(速度:共享內存>>全局內存)。
而在傳統的CPU構架中,儘管有高速緩存(Cache)的存在,可是因爲其容量較小,大量的數據只能存放在內存(RAM)中。進行數據處理時,數據要從內存中讀取而後在-CPU-中運算最後返回內存中。因爲構架的緣由,兩者之間的通訊帶寬一般在-60GB/s-左右徘徊。與之相比,大顯存帶寬的-GPU-具備更大的數據吞吐量。在大規模深度神經網絡的訓練中,必然帶來更大的優點。
另外一方面,若是要充分利用-GPU-資源處理海量數據,須要不斷向-GPU-注入大量數據。目前,PCIe-的數據傳輸速度還沒法跟上這一速度,若是想避免此類「交通擁堵」,提升數據傳輸速度能夠選擇應用-NVlink-技術的--GPU-卡片。
NVLink-是目前最快的-GPU-高速互聯技術,藉助這種技術,GPU-和-CPU-彼此之間的數據交換速度要比使用PCIe 時快-5-到-12-倍,應用程序的運行速度可加快兩倍。經過-NVLink 鏈接兩個-GPU-可以使其通訊速度提升至-80-GB/s,比以前快了-5-倍。
其中-Nvidia-的-Volta-架構計算卡使用的-NVLink-2.0-技術速度更快(20-25Gbps),單通道可提供-50-GB/S-的顯存帶寬。
並且就目前而言,愈來愈多的深度學習標準庫支持基於-GPU-的深度學習加速,通俗點描述就是深度學習的編程框架會自動根據-GPU-所具備的線程/Core-數,去自動分配數據的處理策略,從而達到優化深度學習的時間。而這些軟件上的全面支持也是其它計算結構所欠缺的。
簡單來看,選擇-GPU-有四個重要參數:浮點運算能力、顯存、數據傳輸與價格。
對於不少科學計算而言,服務器性能主要決定於-GPU-的浮點運算能力。特別是對深度學習任務來講,單精浮點運算以及更低的半精浮點運算性能則更爲重要。若是資金充足的狀況下,能夠選擇應用-NVLink-技術單精計算性能高、顯存大的-GPU-卡片。若是資金有限的話,則要仔細考量核心需求,選擇性價比更高的-GPU-卡片。
內存大小的選擇
心理學家告訴咱們,專一力這種資源會隨着時間的推移而逐漸耗盡。內存就是爲數很少的,讓你保存注意力資源,以解決更困難編程問題的硬件之一。與其在內存瓶頸上兜轉,浪費時間,不如把注意力放在更加緊迫的問題上。若是你有更多的內存,有了這一前提條件,你能夠避免那些瓶頸,節約時間,在更緊迫問題上投入更多的生產力。
因此,若是資金充足並且須要作不少預處理工做,應該選擇至少和-GPU-內存大小相同的內存。雖然更小的內存也能夠運行,可是這樣就須要一步步轉移數據,總體效率上則大打則扣。總的來講內存越大,工做起來越舒服。
強大的性能
R4220-8GX 是一款基於Intel® Xeon® 可擴展處理器的高性能計算平臺,支持8個NVLINK GPU加速器和6TB的內存,單精度浮點計算224TFLOPS、雙精度浮點計算112TFLOPS, 讓用戶體驗強大的計算性能。
靈活的配置
爲更加貼切的知足各類應用需求,客戶可根據需求選擇支持16個2.5寸SATA/SAS硬盤,網絡選擇多樣化,可選擇支持雙千兆、四千兆、雙千兆+雙萬兆搭配,全部網絡支持管理複用,知足各類不一樣的網絡應用場景。
優化的散熱
整機結構佈局充分考慮優化散熱和節約功耗,支持高溫環境。關鍵部件根據發熱量採用特殊設計,在保持性能的同時能夠下降風扇轉速,從而減低功耗和噪音。
合理的擴展
在支持4-8塊NVLINK的同時,還可有1個PCI-E插槽可用,可擴展100Gb infiniband HCA、Nvme SSD等、具備很是好的靈活性和兼容性。
便捷的管理
具有IPMI 遠程管理功能,實現非現場便可監控管理服務器要求,具備監控系統各部件的運行情況、遠程安裝操做系統、故障報警等功能。極大的縮減了維護開銷。
也能夠企業採購浪潮等公司的GPU一體化方案服務器來實施部署學習訓練應用,從而使得數據私有化和安全化。
結合實例介紹使用TensorFlow開發機器學習應用的詳細方法和步驟,着重講解了用於圖像識別的卷積神經網絡和用於天然語言處理的循環神經網絡的理論知識及其TensorFlow實現方法,並結合實際場景和例子描述了深度學習技術的應用範圍與效果。