如何搭建一台深度學習伺服器

2021-07-10 10:29:16 字數 3486 閱讀 4056

this post was kindly contributed by 資料科學中的r和python - go there to comment and to read the full post.

在計算機時代的早期,一名極客的滿足感很大程度上**於能diy一台機器。到了深度學習的時代,前面那句話仍然是對的。

緣起那麼就有三個選擇項:

a、購買組裝好的伺服器,例如nvidia digits 

devbox

b、購買雲服務,例如amazon的

gpu服務

c、自己攢一台深度學習伺服器。

a項從價效比上不合算,而且不一定買的到。b項的雲服務對於研究探索性質工作而言也比較貴,機器配置也不一定合適,所以我們就c項了。

硬體選擇:基本思路是單顯示卡機器,保留公升級空間

顯示卡選擇:

先解釋一點,深度學習為什麼需要顯示卡計算?

gpu 是為大規模的並行運算而優化;

gpu 上則更多的是運算單元(整數、浮點的乘加單元,特殊運算單元等等);

gpu 往往擁有更大頻寬的視訊記憶體,因此在大吞吐量的應用中也會有很好的效能。

這裡有乙個很有趣的

,解釋了gpu和cpu的計算區別。

所以顯示卡選擇最重要,因為準備基於cuda計算(cuda (compute unified device architecture) 是nvidia開發的gpu平行計算環境。),所以只能選擇nvida系列的。在英偉達產品系列中,有消費領域的geforce系列,有專業繪圖領域的quadro系列,有高效能計算領域的tesla系列,如何選擇?

有**研究,太高的精度對於深度學習的錯誤率是沒有提公升的,而且大部分的環境框架都只支援單精度,所以雙精度浮點計算是不必要,tesla系列都去掉了。從顯示卡效能的指標看,cuda核心數要多,gpu頻率要快,視訊記憶體要大,頻寬要高。這樣,最新titan x算是**便宜量又足的選擇。

cpu選擇:

在深度學習任務中,cpu並不負責主要任務,單顯示卡計算時只有乙個核心達到100%負荷,所以cpu的核心數量和顯示卡數量一致即可,太多沒有必要,但是處理pcie的頻寬要到40。

主機板選擇:

需要支援x99架構,支援pcie3.0,還要支援4通道ddr4記憶體架構。如果要搞四顯示卡並行,pcie頻寬支援要達到40,並且支援4-way nvida sli技術。

記憶體:達到視訊記憶體的二倍即可,當然有錢的話越大越好。

電源問題:乙個顯示卡的功率接近300w,四顯示卡建議電源在1500w以上,為了以後擴充套件,選擇了1600w的電源。

機箱散熱:

因為各種部件相當龐大,需要有良好散熱功能的大機箱,選擇了tt thermaltake core v51機箱,標配3個12cm風扇。未來如果需要還可以加裝水冷裝置。

以上就是主要硬體環境的選擇和安裝。

軟體環境安裝:

主要安裝了ubuntu系統,cuda環境,以及theano、keras環境

1、安裝ubuntu 14.04(不要安裝麒麟版本)

2、安裝cuda 7.5 deb檔案(自帶顯示卡驅動)

2.2執行如下命令安裝:

$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb

$ sudo apt-get update

$ sudo apt-get install cuda

2.3設定環境變數:sudo gedit /etc/profile

$ export path=/usr/local/cuda-7.5/bin:$path

$ export ld_library_path=/usr/local/cuda-7.5/lib64:$ld_library_path

2.4重啟機器:用其中乙個樣例進行驗證測試

$ cuda-install-samples-7.5.sh ~

$ cd ~/nvidia_cuda-samples_7.5/5_simulations/nbody

$ make

$ ./nbody

或者在sample目錄中make測試專案1_utility,再執行./devicequery

3、安裝python以及theano工具

3.2 修改了theano配置檔案,使之預設由gpu運算

在主目錄下新建.theanorc檔案

.theanorc中輸入下面的內容

[cuda]

root=/usr/local/cuda/bin/

[global]

floatx = float32

device = gpu0

[nvcc]

fastmath = true

3.3 安裝完成後參考如下位址進行測試

theano_flags=floatx=float32,device=gpu python `python -c "import os, theano; print os.path.dirname(theano.__file__)"`/misc/check_blas.py

3.4 安裝keras

通過anaconda安裝pip install keras

注意keras依賴的theano是dev版本的,需要從github下原始碼來安裝。注意本系統此時有兩個python,所以要寫路徑

sudo /home/user/anaconda/bin/python setup.py develop

4、設定遠端伺服器呼叫

4.1 安裝ssh,啟動服務

4.2 設定notebook server

在ipython中如下命令設定密碼:

from ipython.lib import passwd

passwd()

記下生成的字串。

建立乙個ipython配置檔案,比如起名叫myserver

ipython profile create myserver

vim ~/.ipython/profile_myserver/ipython_notebook_config.py

c = get_config()

啟動服務

ipython notebook --profile=myserver

4.3 遠端瀏覽器呼叫

遠端中瀏覽器登陸輸入密碼,即可進入ipython notebook。

如果需要保持連線,則

nohup ipython notebook --profile=myserver

殺掉連線

lsof nohup.out

kill -9 "pid"

完工!最後的硬體配置:

cpu: intel x99平台 i7 5960k

記憶體: ddr4 2800 32g(8g*4)

主機板: gigabyte x99-ud4

顯示卡: gtx titan x

硬碟: ssd+普通硬碟

系統和軟體

作業系統: ubuntu 14.04.3 x64

cuda: 7.5

anaconda 2.3

theano 7.0

keras 2.0

如何搭建一台深度學習伺服器

在計算機時代的早期,一名極客的滿足感很大程度上 於能diy一台機器。到了深度學習的時代,前面那句話仍然是對的。那麼就有三個選擇項 a 購買組裝好的伺服器,例如nvidia digits devbox b 購買雲服務,例如amazon的gpu服務 c 自己攢一台深度學習伺服器。a項從價效比上不合算,而...

如何科學的搭建一台深度學習伺服器?

在如今的時代,人工智慧的技術已經開始使用在各行各業,例如人臉識別等計算機視覺技術已經開始廣泛的使用在人們的日常生活中去 如果我們要自己去訓練模型,首先我們需要的是尋找到資料集,因為深度學習的技術是需要有非常多的資料,其次最為重要的也就是 算力 深度學習模型的訓練需要基於強大算力平台。也就是gpu,深...

linux深度學習伺服器搭建 建立使用者 載入硬碟

這個部分算是比較雜亂的部分吧,畢竟今天又遇到不少坑,主要問題在建立使用者與硬碟的載入問題上了。建立使用者算是比較簡單了,伺服器涉及到多賬戶,建立新賬戶時候也不需要分配管理員許可權,所以就簡單多了。使用useradd可以建立使用者,並且指定home路徑。比如我想建立username使用者,在root下...