摘要:本文作者詳細描述了自己組裝深度學習服務器的過程,從主板電源機箱等的選取到部件的安裝,再到服務器的設置,可謂面面俱到。注本文旨在討論服務器設置及多用戶協作,部件組裝和軟件安裝過程是關于創建自己的的文章的簡化版本。
本文作者詳細描述了自己組裝深度學習服務器的過程,從 CPU、GPU、主板、電源、機箱等的選取到部件的安裝,再到服務器的設置,可謂面面俱到。作者指出,組裝者首先要弄清自己的需求,然后根據預算做出合理的選擇。
注:本文旨在討論服務器設置及多用戶協作,部件組裝和軟件安裝過程是 Slav Ivanov 關于創建自己的 DL Box 的文章(https://medium.com/m/global-identity?redirectUrl=https://blog.slavv.com/the-1700-great-deep-learning-box-assembly-setup-and-benchmarks-148c5ebe6415)的簡化版本。
我剛開始學習 fast.ai 課程的第一部分——「Practical Deep Learning for Coders」,我想搭建自己的服務器來訓練模型,作為使用 AWS p2 和存儲的升級。我將會使用更大的數據集,并且我不希望在訓練模型時因為缺乏足夠的處理能力而等待數小時,因此構建自己的 DL rig 服務器對我來說是一個不錯的選擇,而且從長遠來看,它將為我節省大量的時間和金錢,而且可以積累組裝服務器的良好經驗。
組裝
列出部件清單
在準備部件之前,你要弄清楚自己到底想從機器中得到什么。個人而言,我想獲得以下改進:
比 Amazon p2 更加強大
容納額外 GPU、RAM、存儲及定制液體冷卻的空間
可以用很久的硬件
預算控制在 3000 美元左右
我用 pcpartpicker.com來細化各個部件,因為它可以將對比和組裝其它部件變得非常簡單,而且還具備很不錯的部件兼容性檢查器。我將詳細解釋選擇每個部件的原因以及它們如何與整個系統協同工作。以下是我的服務器鏈接地址:https://pcpartpicker.com/b/CgpG3C。
GPU: GTX 1080 Ti Hybrid
因為你要使用顯卡來訓練模型,所以這是組裝過程中最重要的一部分,因此,GPU 越強大,你處理大型數據集的速度就越快。GPU 內存越大,處理能力也就越強(如:訓練速度更快,批尺寸更大……)。我為自己的服務器選了兩塊這種顯卡,因為我在預算里為它們預留了空間,這樣我就能用其中一塊顯卡訓練模型,讓另一個用戶在第二塊卡上訓練其模型。你可以根據自己的預算縮減 GPU 內存(1070、1060 等),防止與其它部件爭搶預算。Hybrid 1080 GPU 也不錯,因為除了大多數 GPU 具有的正常風扇冷卻之外,它還預裝了 aio 水冷系統。1080 Ti 在滿負載運行時會過熱,因此,在訓練模型時,良好的冷卻系統對于延長顯卡壽命并保持其性能至關重要。關于顯卡選擇的更多細節,請參見 http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/,該文幫助我真正了解了如何選擇適合深度學習環境的顯卡。
CPU: AMD Threadripper 1900x
雖然你用顯卡訓練神經網絡,但 CPU 依然很重要,因為你要用它來進行數據準備等操作,因此那些多核 CPU 將有助于加快速度。我用的是「線程撕裂者」Treadripper,因為這是市面上非常新的一款多核 CPU(ThreadRipper 2 代有 32 個內核!),而且比因特爾價格低得多。1900x 是去年發布的基礎版 TR,它只有 8 個內核,不過我對這臺服務器的整體目標是保持它的可升級性。
需要注意的一點是,在選擇 CPU 時,要確保有 8 或 16 個 pcie 插槽供顯卡使用,這樣才能保證它們在低負載下發揮較好的性能,否則就有堵塞系統的風險。在高端 CPU 上,如果你的服務器中有 4 個顯卡,那么你就有足夠的 pcie 插槽。
主板:MSI X399 SLI Plus
選擇這塊主板是因為它是一塊完整的 ATX 板,可容納 4 個 GPU,RAM 最多可達 128GB。正如我前面所說,這個服務器的主要目標之一是保持它可升級。
內存:32GB Corsair Vengeance LPX DDR4 (2 x 16GB)
內存越大,處理大型數據集就越容易。我的下一個升級計劃是再添加兩個 16GB RAM 內存條,這也是我沒有安裝四通道內存(4 個 8GB 內存條)的原因,盡管它會提高我的服務器的性能。
存儲:256GB Samsung SSD & 2TB HDD
我把 Ubuntu、我的所有庫、我在 SSD 上正在使用的數據集以及手里的其它所有數據都存在 2TB 的機械硬盤上。
冷卻器:Corsair H100i v2 液體冷卻器
「線程撕裂者」沒有備用冷卻器(如果你有 30 美元的余款,至少應該買一個便宜的二手冷卻器),所以我想要一個可以全天候使用的、便宜又容易維護的冷卻器。這款集各種優點于一身的冷卻器非常容易安裝,而且非常可靠(在數十萬臺機組中,可能只有一兩臺發生冷卻液泄漏)、安靜。
電源:EVGA SuperNOVA 1000w 80 + Gold Certified
較好有一個功率超過技術要求的 PSU。PCPartpicker 的功率計算器能夠大致算出你需要多大的功率(我的服務器是 824w),然而它經常在數量上出錯,因此較好進行安全操作,以防你的計算機無法打開。「Gold Certified」只是指 PSU 的效率(浪費了多少功率作為熱量)。
機箱:Corsair 760T Full Tower
我選擇這個機箱是因為它的價格和內部空間大小。雖然它并不能提高你的模型訓練速度,但是透明的側面板和紅色的 LED 確實讓你看起來更酷。
這幅圖里的東西花掉了我一年的積蓄和畢業的錢
把部件整合到一起
你可能不太了解如何組裝一臺電腦,這個過程其實就像組裝一套昂貴的樂高積木一樣。任何人都可以做到,因為它真的很簡單。我將快速介紹如何組裝電腦,并且我強烈建議你在組裝自己的電腦時觀看完整的視頻。這些說明幾乎適用于任何你正在使用的電腦,就像我上面鏈接的視頻指南一樣。
第一步:組裝 CPU
這可能是組裝電腦過程中最可怕的部分,因為你必須遵循特定的步驟,并且可能由于一些小意外而毀掉價值 430 美元的 CPU(如弄斷一個 CPU 的引腳)。不過這一步其實很簡單,你只需確保組裝前看過視頻教程即可。對于 Threadripper 來說,安裝過程略有不同,因為在大多數主板上,你不需要「鎖緊」處理器,而是使用單個扣架即可。
照片來源:Slav Ivanov
第二步:組裝電源設備
電源的安裝順序并沒有對錯之分,但我喜歡先把 PSU 放進盒子里,因為有些情況下你需要把 PSU 卡進一個插槽里,這樣做你才能「穿過主板」。
第三步:組裝其它部件
這是至關重要的一步,一旦主板安裝好,那其他部分的安裝會變得很容易。我將按照如下順序進行安裝:
安裝 RAM。這很簡單,只需把內存條向正確的方向移動,并把插槽正確地按進主板即可(請參閱安裝手冊,因為插槽要根據你擁有的內存條個數決定)。
安裝 CPU 冷卻器。的小麻煩是為了與 TR 兼容,我必須更換安裝支架,這需要很大的力氣。安裝散熱器需要 8 個螺栓,我已安裝完畢。
安裝顯卡。只需要把顯卡安裝到主板的特定卡槽中即可(像內存條一樣,參照你的手冊,看哪些插槽可以把顯卡放入),再把散熱器固定在你的機箱上。要確保你的散熱器在 GPU 上方。在上圖中我犯了個小錯誤,所以不得不把它重新掛在機箱的前板上。
安裝存儲器。為了獲得更好的散熱效果我卸掉了一塊驅動板,所以我把 SSD 和 HDD 放在右下角的單驅動器槽里。
第四步:安裝成功?
現在可以打開你的設備了。開始因為我設備的電源鍵上正負線接反了,所以我的設備并沒有成功打開,但后來還是出現了預期的白光和紅光。如果一切順利,你可以看到你的電腦屏幕被點亮,然后主板開始搜索引導設備。
設置服務器
安裝操作系統
下一步是安裝操作系統。我使用的是 Linux,因為大多數 DL 框架都是針對該系統設計的。使用的臺式機是 Ubuntu 16.04 LTS, 用 USB 就可安裝全部的東西。有很多像 UNetbootin 或 Rufus(僅用于 Windows)的免費工具,可以先下載到 U 盤中備用。這是一個介紹在 Mac 上創建可啟動 USB 的完整過程的教程(https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-macos?_ga=2.169997348.541383618.1529376295-1852780805.1529376295#0),如果你用 Windows,可以打開此鏈接:https://www.howtogeek.com/howto/linux/create-a-bootable-ubuntu-usb-flash-drive-the-easy-way/。
設置 SSH
第一步:端口映射
你需要對所有的路由器進行類似處理,如果是 apple 的路由器可以遵循這個指南:https://portforward.com/apple/,操作如下:1. 為你的服務器設置一個靜態 IP,防止它在每次關閉時更改。2. 用 Apple Airport Utility 登錄你的路由器。3. 為服務器映射端口,完成這一步需要找到服務器的 MAC 地址,如何在 Ubuntu 找到地址可以查看此鏈接:http://technologyinfinite.blogspot.com/2016/07/three-simple-ways-to-find-mac-address.html。
第二步:創建一個動態 IP 地址
我之前為服務器創建過動態 IP 地址,可以允許我在終端遠程連接它。你可以通過該網站(http://canyouseeme.org/)驗證它的有效性。
鍵入一個如下所示的命令連接到我的服務器:
ssh [my_username]@[my_ip] -L 8888:[dl-rig_static_ip]:8889
我的服務器在端口 8888 上運行,jupyter notebooks 運行在 8889 上(-L 選項將指定的本機端口重新定向到不同的主機和端口)。這樣我們就可以在本地運行我們的設備,與服務器同時測試,以便訓練。如果不想這樣,在-L 之前把所有東西輸入進去即可。在下一節我會解釋如何更改運行 jupyter notebooks 的端口。
安裝深度學習/機器學習庫
現在需要安裝所有的與深度學習/機器學習相關的庫。我會將安裝腳本進行分節,這樣你就容易理解這些內容。該腳本是基于 Jeremy Howard』s 編寫的 install-gpu.sh(https://github.com/fastai/courses/blob/master/setup/install-gpu.sh),這里邊很多東西不僅僅是因為它們是實用性工具,更是因為這也是我們要在 Fastai 中使用的。
首先,我們需要保證系統是的,并且安裝了所有我們需要的基礎工具包:
sudo apt-get update
sudo apt-get --assume-yes upgrade
sudo apt-get --assume-yes install tmux build-essential gcc g++ make binutils unzip
sudo apt-get --assume-yes install software-properties-common
sudo apt-get --assume-yes install git
下一步是下載和安裝所有 CUDA GPU 的驅動包:
mkdir ~/downloadscd ~/downloads
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
sudo apt-get --assume-yes upgrade
sudo apt-get --assume-yes autoremove
sudo apt-get install cuda-toolkit-9.0 cuda-command-line-tools-9-0
現在我們開始驗證是否正確安裝了 CUDA:
sudo modprobe nvidia
nvcc --version
nvidia-smi
現在開始,我們將 CUDA(Nvidia Deep Learning api)添加到路徑變量:
cat >> ~/.bashrc << "EOF"
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
EOF
source ~/.bashrc
下一步是安裝 CuDNN 庫(創建神經網絡所需):
wget http://files.fast.ai/files/cudnn-9.1-linux-x64-v7.tgz
tar xf cudnn-9.1-linux-x64-v7.tgz
sudo cp cuda/include/*.* /usr/local/cuda/include/
sudo cp cuda/lib64/*.* /usr/local/cuda/lib64/
現在我們為當前用戶安裝 Anaconda:
wget "https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh"
bash "Anaconda3-5.0.1-Linux-x86_64.sh" -b
cd ~
echo "export PATH="$HOME/anaconda3/bin:$PATH"" >> ~/.bashrc
export PATH="$HOME/anaconda3/bin:$PATH"
conda install -y bcolz
conda upgrade -y --all
下一步,安裝 Tensorflow 和 Keras:
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp36-cp36m-linux_x86_64.whl
pip install keras
mkdir ~/.keras
echo "{
? ? "image_dim_ordering": "tf",
? ? "epsilon": 1e-07,
? ? "floatx": "float32",
? ? "backend": "tensorflow"
}" > ~/.keras/keras.json
接下來,我們將為 Fastai 安裝 Python 依賴項:
mkdir -p ~/development/_training/ml
cd ~/development/_training/ml
git clone https://github.com/fastai/fastai.git
cd fastai
conda env update
以下幾節將介紹如何配置 jupyter notebook:
# Leaving the next line uncommented will prompt you to provide a password to
# use with your jupyter notebook.
jupass=`python -c "from notebook.auth import passwd; print(passwd())"`
# To hardcode the password to "jupyter" comment line above and uncomment the line below.
#jupass=sha1:85ff16c0f1a9:c296112bf7b82121f5ec73ef4c1b9305b9e538af
# create ssl cert for jupyter notebook
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout $HOME/mykey.key -out $HOME/mycert.pem -subj "/C=IE"
# configure notebook
echo "c.NotebookApp.certfile = u"/home/{user}/mycert.pem"" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.keyfile = u"/home/{user}/mykey.key"" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.password = u""$jupass""" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.ip = "*"" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.open_browser = False" >> $HOME/.jupyter/jupyter_notebook_config.py
要更改默認端口以在(端口 8888)上運行 Jupyter notebook,請取消注釋,并輸入所需端口。這樣就可以在服務器和本地同時運行你的筆記本,也可以在你使用筆記本時讓多個用戶使用他們自己的筆記本。
#echo "c.NotebookApp.port = 9999" >> $HOME/.jupyter/jupyter_notebook_config.py
現在我們開始配置 tmux,這個工具可以使我們在終端窗口創建多個「窗口」,同時在斷開連接后仍能保持程序的運行。因為這個文件能夠幫助我們理解 tmux 的所有功能,所以需要檢查此文件。它非常的有用,因為你可以在一個窗口中運行你的筆記本,在另一個窗口中監視 GPU 使用,并在第三個窗口中打開一個 linux 終端:
pip install tmuxp
mkdir ~/.tmuxp
接下來,我們將創建 tmuxp 的配置文件,該文件將在一個命令中對開發環境進行設置,這樣我們每次想處理事務的時候就無需配置窗口、啟用 jupyter notebook 了。對于 fastai 環境,我們將從 tmuxp 加載 fastai 開始。請參見使用 tmuxp 的鏈接,此處是 bash 腳本中的文檔,此鏈接用于在服務器重啟時保存 tmux 會話。現在讓我們配置運行環境。
cat > $HOME/.tmuxp/fastai.yml < session_name: fastai windows: - window_name: dev window ? layout: main-vertical ? options: ? ? main-pane-width: 140 ? shell_command_before: ? ? # run as a first command in all panes ? ? - cd ~/development/_training/ml/fastai ? ? - source activate fastai ? panes: ? ? - shell_command: ? ? ? - clear ? ? - shell_command: ? ? ? - clear ? ? ? - jupyter notebook ? ? - shell_command: ? ? ? - watch -n 0.5 nvidia-smi Tmuxp-config 因為我們不再需要這些,所以可以刪除安裝文件: cd ~/downloads rm -rf cuda-repo-ubuntu1604_9.0.176-1_amd64.deb xf cudnn-9.1-linux-x64-v7.tgz Anaconda3-5.0.1-Linux-x86_64.sh ? ? ? ? cd ~ 就是這樣。在我寫這篇文章的時候,服務器一直在全天候運行,無問題、無噪聲、非常輕松地通過了訓練。 其他參考資料來源: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 https://towardsdatascience.com/building-your-own-deep-learning-box-47b918aea1eb https://medium.com/impactai/setting-up-a-deep-learning-machine-in-a-lazy-yet-quick-way-be2642318850? 原文鏈接:https://waydegg.github.io/making-a-dl-server.html#making-a-dl-server ? ? 商業智能與數據分析群 興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識 QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4813.html
摘要:受到其他同行在上討論更好經驗的激勵,我決定買一個專用的深度學習盒子放在家里。下面是我的選擇從選擇配件到基準測試。即便是深度學習的較佳選擇,同樣也很重要。安裝大多數深度學習框架是首先基于系統開發,然后逐漸擴展到支持其他操作系統。 在用了十年的 MacBook Airs 和云服務以后,我現在要搭建一個(筆記本)桌面了幾年時間里我都在用越來越薄的 MacBooks 來搭載一個瘦客戶端(thin c...
摘要:很明顯這臺機器受到了英偉達的部分啟發至少機箱是這樣,但價格差不多只有的一半。這篇個文章將幫助你安裝英偉達驅動,以及我青睞的一些深度學習工具與庫。 本文作者 Roelof Pieters 是瑞典皇家理工學院 Institute of Technology & Consultant for Graph-Technologies 研究深度學習的一位在讀博士,他同時也運營著自己的面向客戶的深度學習產...
摘要:文章翻譯自深度學習是一個計算需求強烈的領域,的選擇將從根本上決定你的深度學習研究過程體驗。因此,今天就談談如何選擇一款合適的來進行深度學習的研究。此外,即使深度學習剛剛起步,仍然在持續深入的發展。例如,一個普通的在上的售價約為美元。 文章翻譯自:Which GPU(s) to Get for Deep Learning(http://t.cn/R6sZh27)深度學習是一個計算需求強烈的領域...
摘要:幸運的是,這些正是深度學習所需的計算類型。幾乎可以肯定,英偉達是目前執行深度學習任務較好的選擇。今年夏天,發布了平臺提供深度學習支持。該工具適用于主流深度學習庫如和。因為的簡潔和強大的軟件包擴展體系,它目前是深度學習中最常見的語言。 深度學習初學者經常會問到這些問題:開發深度學習系統,我們需要什么樣的計算機?為什么絕大多數人會推薦英偉達 GPU?對于初學者而言哪種深度學習框架是較好的?如何將...
摘要:旗下產品有藍威仿真云計算平臺藍威風場規劃智能決策平臺電子可靠性分析云平臺。而快杰云主機采用了第二代處理器,主頻高達另外,云主機采用的網絡增強技術使得內網的最大包量可達萬,同步配置的云盤帶來的存儲性能高達萬。過去,高性能計算(HPC)因其高昂的成本和復雜的編程,長期只能被應用于軍事、科研等高精尖領域。隨著工業制造、生物醫藥、基因檢測、影視渲染等行業的數字化轉型,各領域對于高性能芯片、存儲和內網...
閱讀 2222·2023-04-26 01:57
閱讀 3240·2023-04-25 16:30
閱讀 2324·2021-11-17 09:38
閱讀 1068·2021-10-08 10:14
閱讀 1382·2021-09-23 11:21
閱讀 3677·2019-08-29 17:28
閱讀 3450·2019-08-29 15:27
閱讀 944·2019-08-29 13:04