深度學習服務器搭建
1 寫在前面
? ? ? ? 這次搭建服務器過程中參考了許多網(wǎng)上的資料,看的我眼花繚亂,可惜沒有找到特別適合新人入門的文章,正好寫一篇比較詳細的文章留作紀念,順便練習一下我的文筆。
? ? ? ? 其實按照別的人教程去裝軟件的最困難的地方就是“我們不一樣”,所以這篇文章可能只能給大家介紹我遇到的幾個問題和我如何去尋找解決方案的一些小小的經(jīng)驗吧。
2 硬件和軟件環(huán)境
2.1 硬件環(huán)境
? ? ? CPU: Intel core i7-8700K
? ? ? GPU: NVIDIA RTX 2080Ti
? ? ? ? 這兩個PU的型號和后面軟件的安裝有一點點關系,但是影響不大。
2.2 軟件環(huán)境
? ? ? Linux Ubuntu 16.04?
? ? ? Anaconda python3.7
? ? ? Nvidia driver 418
? ? ? CUDA10.0
? ? ? cuDNN7.5
? ? ? pytorch 1.0
? ? ? ? 其實遇到的很多問題都是由于各個軟件之間的版本不是相互對應的,所以裝了卸......卸了裝,所以,大家一定要先過一遍整篇文章再動手!
3 ubuntu系統(tǒng)安裝
? ? ? 我這里裝的是ubuntu16.04,過程比較簡單。可以很容易就找到ubuntu的安裝教程(網(wǎng)上的資料比較全)。這里需要注意的是:如果是雙硬盤,記得把另一個硬盤也掛載到你的系統(tǒng)上!
4 Nvidia driver安裝
? ? ? 這一步非常重要而且很關鍵,NVIDIA驅動的版本號決定了后面許多要安裝東西的版本號。
? ? ? 我這里選擇的是安裝時最新Nvidia driver 418。
? ? ? 安裝驅動網(wǎng)上給過很多種方法,我比較推薦下面這種,因為其他方法都不是很好用。
4.1 下載驅動
? ? ? ? 安裝好linux系統(tǒng)打開后,如果顯示器是插在顯卡上的,會出現(xiàn)分辨率很低的現(xiàn)象,且無法更改。這一點很難受,因為你會發(fā)現(xiàn)你看不全網(wǎng)站的頁面!
? ? ? 出現(xiàn)這個問題是因為沒有安裝英偉達的驅動。所以我們第一步就要安裝一個驅動,如果大家有另一臺電腦,建議大家下好以后拷到ubuntu系統(tǒng)里,因為分辨率真的很讓人頭疼,不過如果你把HDMI的線插到了集成顯卡上就不會出現(xiàn)分辨率很低的問題了,但是會一卡一卡的。
? ? ? 打開nvidia官網(wǎng),輸入你的顯卡型號和操作系統(tǒng),找到合適的驅動,下載就好!下載完成后將驅動的安裝包放在ubuntu系統(tǒng)的根目錄下,方便后續(xù)操作。

4.2 安裝驅動
1.禁用nouveau
? ? ? 其實我們在安裝cuda的時候會自帶英偉達顯卡驅動,不需要自己安裝。但是,此時linux系統(tǒng)默認啟動的是主板自帶的集存顯卡,所以我們要禁用集存顯卡。
編輯配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在文本的最后一行加入:
blacklist nouveau
執(zhí)行更新:
sudo update-initramfs -u
重啟后執(zhí)行:
lsmod | grep nouveau
如果沒有任何輸出就成功禁用了nouveau
2.進入命令行界面并禁用圖像桌面
進入命令行界面按:Ctrl+Alt+F1
進入后就到了黑白的界面(看起來感覺自己非常厲害?。?/p>
先輸入linux用戶名,再輸入密碼,然后執(zhí)行來禁用圖像桌面:
sudo /etc/init.d/lightdm stop
3. 安裝英偉達驅動
這是非常關鍵的一步,首先進入下載好的英偉達驅動文件夾,給驅動run文件賦予執(zhí)行權限:
sudo chmod a+x NVIDIA-Linux-x86_64-418.56.run
注意:NVIDIA-Linux-x86_64-418.56.run 應當為你驅動的文件名,如果你嫌麻煩,記得一開始就改個簡單的名字。
安裝英偉達驅動:
sudo sh ./NVIDIA-Linux-x86_64-418.56.run
注意:這一步因為不能復制,所以大家一定要看仔細命令,很容易輸錯!
安裝時全部選yes,路徑就默認的選項即可。
執(zhí)行以下指令,返回圖形界面:
sudo /etc/init.d/lightdm start
如果分辨率自動修改成顯示器的默認分辨率,則表示安裝成功。
但是!
? ? ? ? 網(wǎng)上其它教程在安裝過程中需要禁用opengl,否則會出現(xiàn)循環(huán)登陸的問題。但是我禁用后,查看本機詳細信息時并不能看到顯卡型號,又看到某博主說“臺式機可以選擇OpenGL”這句話,所以冒了重裝系統(tǒng)的風險嘗試安裝了opengl,如果大家害怕出現(xiàn)循環(huán)登陸的問題,在安裝時應當改為如下命令:
sudo sh ./NVIDIA-Linux-x86_64-418.56.run –no-opengl-files
? ? ? ? 至此,驅動就完美安裝好了,我大概安了五六次驅動,最后一次才覺得按驅動是一件很簡單的事情。但萬事開頭難,驅動真的是難到了我和另一位很厲害的學長!希望大家看到后可以少走彎路~
5 cuda10.0安裝
? ? ? ? 其實安裝的那一天cuda已經(jīng)出到了10.1,我理所當然的就下載了10.1,后來裝到最后才發(fā)現(xiàn)pytorch還沒有出10.1的版本!!!所以只好卸載重裝?。ㄓ弥鴦倓偝龅能浖?,我覺得自己有在做時代的弄潮兒!)你們看到這篇文章的時候,已經(jīng)可以去安裝cuda10.1了~
5.1 下載cuda10.0
? ? ? ? 打開nivida官方網(wǎng)站去下載符合大家版本的cuda吧。
注意:1. 下載runfile版本,因為runfile可以選擇不安裝Nvidia driver。
? ? ? ? ? ? 2. 這個網(wǎng)站點進去后會讓大家下載最新版的cuda,如果需要舊版本,去Legacy Releases里去下載。

5.2 安裝cuda
1.進入命令行界面并禁用圖像桌面
進入命令行界面按:Ctrl+Alt+F1
進入后就到了黑白的界面(看起來還是感覺自己非常厲害?。?/p>
先輸入linux用戶名,再輸入密碼,然后執(zhí)行來禁用圖像桌面:
sudo /etc/init.d/lightdm stop
2.執(zhí)行以下指令,安裝cuda:
sudo sh cuda_10.0.130_410.48_linux.run
注意:
1.cuda_10.0.130_410.48_linux.run應當為你下載好的cuda的文件名,如果你嫌麻煩,記得一開始就改個簡單的名字。
2.如果你安裝的是cuda10.0:
? ? ? ? 看協(xié)議時需要一直按空格鍵或Enter鍵到100%。當詢問是否要安裝Nvidia driver時,一定要選no!其他的選擇accept和yes,安裝在默認目錄就行。
3.如果你安裝的是cuda10.1:
? ? ? ? cuda10.1做了一個簡單圖形界面,記得把Nvidia driver前面的那個“X”去掉!!
3.安裝好后,執(zhí)行以下指令打開圖形界面:
sudo /etc/init.d/lightdm start
4.執(zhí)行以下指令更改環(huán)境變量,打開:
sudo gedit ~/.bashrc
在里面添加如下環(huán)境變量:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export? LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-10.0
注意:記得把cuda-10.0換成你的版本號
5. 重啟電腦(一定要重啟!?。。?,執(zhí)行以下指令查看cuda是否安裝成功:
nvcc -V
如果成功會輸出詳細的內(nèi)容!
棒!你又成功完成了cuda的安裝!接下來的任務就比較簡單了~
6. cuDNN的安裝
cuDNN其實不太需要安裝,就是需要復制幾個文件到cuda下面。
6.1 下載cuDNN
? ? ? ? 同樣從nvidia官網(wǎng)下載cuDNN,需要簡單的注冊。
? ? ? ? 請大家下載這個版本,因為我只會按照這本版本安裝......

6.2 安裝cuDNN
? ? ? ? 下載好后把文件拖到home里,郵件提取解壓到當前文件夾。然后會出現(xiàn)一個名字叫cuda的文件夾,我們需要把里面的文件復制到cuda10.0的文件夾里。但是linux的usr文件夾不能隨便粘貼復制的,所以運行下面的指令。
cd cuda? ?
sudo cp lib64/lib* /usr/local/cuda/lib64/? ?
sudo cp include/cudnn.h /usr/local/cuda/include/
更新網(wǎng)絡連接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.1.3? # 自己查看.so的版本
sudo ln -sf libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
注意:這里的版本號肯定差別較大,建議大家自己打看這個文件夾搜索一下,不要寫錯了。
很簡單吧,到此,我終于可以:再見nvidia,你注冊個賬號密碼還那么多要求??!
7 Anaconda的安裝
7.1 下載Anaconda
從官網(wǎng)下載linux版本的Anaconda,這個速度蜜汁快,可能是ipv6的原因吧。
7.2 安裝Anaconda
1.同樣把下載好的文件放到根目錄下,打開終端:
bash anaconda.sh
注意:anaconda.sh是你下載的文件名,可以改一個比較簡單的。
? ? ? ? 安裝時會問是否繼續(xù)這里輸入“yes”就好了。問配置問題的話直接按回車鍵,用默認的配置就可以了。這樣再打開home,就會多出一個anaconda3的文件夾,這就是安裝好的軟件。
這里我們還需要輸入一下指令,更改python的運行地址,因為Linux是有默認的python地址的。
2.執(zhí)行以下指令更改環(huán)境變量,打開:
sudo gedit ~/.bashrc
在里面添加如下環(huán)境變量:
export PATH=/home/yourname/anaconda3/bin:$PATH
注意:這里需要把第二個地址改成自己的用戶名。
????????這個操作后你再輸入python,就會顯示anaconda3,python3.7,而不是ubuntu自帶的python2了。
? ? ? ? 簡單的anaconda安裝就結束了,以后可能需要建立一些環(huán)境什么的,還要大家自己去學習一下,這一部分我也很懵sorry!
8 pytorch的安裝
? ? ? ? 如果大家運氣好的時候,使用如下命令就可以很順利的安裝pytorch了,畢竟它就是python的一個庫。
pip install torch torchvision
????????可惜的是:我下載了很多次都不成功,真的很崩潰,不知道大家為什么這么推崇這個方法。而且如果安裝的pytorch版本很新的話,清華的鏡像源并沒有我們需要的東西,速度真的很慢......而且還不能斷點續(xù)傳?。?/p>
????????所以這里推薦大家直接去pytorch官網(wǎng)下載whl文件。

下載好后直接:
pip install pytorch.whl
注意:pytorch.whl是你下載文件的名字。
緊接著:
pip install torchvision
這個比較快!
如果一切順利的話,我們的基礎環(huán)境配置就結束了!
進入python測試一下:
import torch
print(torch.cuda.is_available())
輸出結果是Ture就大功告成了??!
9 寫在后面
? ? ? ? 環(huán)境的搭建工作稍微告一段落了,可能有人會問為什么選擇pytorch而不是tensorflow,其實我并沒什么偏好,只是當時tensorflow還不支持python3.7。
? ? ? 要特別感謝一個知乎上博主,他還回了我的私信,萬分感謝,這是他的文章,非常感謝他!也要謝謝我麻煩過的那么多學長,無論是幫過我硬件還是軟件方面的。如果你們看到了這篇文章,真的非常感謝!
ps:如果大家有什么問題,我會盡力幫大家解決的,但是!裝軟件真的是個玄學,也請大家記住,該重啟時一定重啟!