深度學(xué)習(xí)服務(wù)器搭建
1 寫在前面
? ? ? ? 這次搭建服務(wù)器過程中參考了許多網(wǎng)上的資料,看的我眼花繚亂,可惜沒有找到特別適合新人入門的文章舔琅,正好寫一篇比較詳細(xì)的文章留作紀(jì)念洲劣,順便練習(xí)一下我的文筆备蚓。
? ? ? ? 其實(shí)按照別的人教程去裝軟件的最困難的地方就是“我們不一樣”,所以這篇文章可能只能給大家介紹我遇到的幾個(gè)問題和我如何去尋找解決方案的一些小小的經(jīng)驗(yàn)吧囱稽。
2 硬件和軟件環(huán)境
2.1 硬件環(huán)境
? ? ? CPU: Intel core i7-8700K
? ? ? GPU: NVIDIA RTX 2080Ti
? ? ? ? 這兩個(gè)PU的型號和后面軟件的安裝有一點(diǎn)點(diǎn)關(guān)系星著,但是影響不大粗悯。
2.2 軟件環(huán)境
? ? ? Linux Ubuntu 16.04?
? ? ? Anaconda python3.7
? ? ? Nvidia driver 418
? ? ? CUDA10.0
? ? ? cuDNN7.5
? ? ? pytorch 1.0
? ? ? ? 其實(shí)遇到的很多問題都是由于各個(gè)軟件之間的版本不是相互對應(yīng)的,所以裝了卸......卸了裝样傍,所以横缔,大家一定要先過一遍整篇文章再動(dòng)手!
3 ubuntu系統(tǒng)安裝
? ? ? 我這里裝的是ubuntu16.04衫哥,過程比較簡單茎刚。可以很容易就找到ubuntu的安裝教程(網(wǎng)上的資料比較全)撤逢。這里需要注意的是:如果是雙硬盤膛锭,記得把另一個(gè)硬盤也掛載到你的系統(tǒng)上蚊荣!
4 Nvidia driver安裝
? ? ? 這一步非常重要而且很關(guān)鍵初狰,NVIDIA驅(qū)動(dòng)的版本號決定了后面許多要安裝東西的版本號互例。
? ? ? 我這里選擇的是安裝時(shí)最新Nvidia driver 418。
? ? ? 安裝驅(qū)動(dòng)網(wǎng)上給過很多種方法媳叨,我比較推薦下面這種,因?yàn)槠渌椒ǘ疾皇呛芎糜谩?/p>
4.1 下載驅(qū)動(dòng)
? ? ? ? 安裝好linux系統(tǒng)打開后糊秆,如果顯示器是插在顯卡上的,會(huì)出現(xiàn)分辨率很低的現(xiàn)象痘番,且無法更改捉片。這一點(diǎn)很難受夫偶,因?yàn)槟銜?huì)發(fā)現(xiàn)你看不全網(wǎng)站的頁面!
? ? ? 出現(xiàn)這個(gè)問題是因?yàn)闆]有安裝英偉達(dá)的驅(qū)動(dòng)兵拢。所以我們第一步就要安裝一個(gè)驅(qū)動(dòng),如果大家有另一臺(tái)電腦说铃,建議大家下好以后拷到ubuntu系統(tǒng)里,因?yàn)榉直媛收娴暮茏屓祟^疼腻扇,不過如果你把HDMI的線插到了集成顯卡上就不會(huì)出現(xiàn)分辨率很低的問題了,但是會(huì)一卡一卡的幼苛。
? ? ? 打開nvidia官網(wǎng),輸入你的顯卡型號和操作系統(tǒng),找到合適的驅(qū)動(dòng)配并,下載就好!下載完成后將驅(qū)動(dòng)的安裝包放在ubuntu系統(tǒng)的根目錄下溉旋,方便后續(xù)操作。
4.2 安裝驅(qū)動(dòng)
1.禁用nouveau
? ? ? 其實(shí)我們在安裝cuda的時(shí)候會(huì)自帶英偉達(dá)顯卡驅(qū)動(dòng)观腊,不需要自己安裝算行。但是梧油,此時(shí)linux系統(tǒng)默認(rèn)啟動(dòng)的是主板自帶的集存顯卡纱意,所以我們要禁用集存顯卡婶溯。
編輯配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在文本的最后一行加入:
blacklist nouveau
執(zhí)行更新:
sudo update-initramfs -u
重啟后執(zhí)行:
lsmod | grep nouveau
如果沒有任何輸出就成功禁用了nouveau
2.進(jìn)入命令行界面并禁用圖像桌面
進(jìn)入命令行界面按:Ctrl+Alt+F1
進(jìn)入后就到了黑白的界面(看起來感覺自己非常厲害M得埂)
先輸入linux用戶名,再輸入密碼类少,然后執(zhí)行來禁用圖像桌面:
sudo /etc/init.d/lightdm stop
3. 安裝英偉達(dá)驅(qū)動(dòng)
這是非常關(guān)鍵的一步,首先進(jìn)入下載好的英偉達(dá)驅(qū)動(dòng)文件夾硫狞,給驅(qū)動(dòng)run文件賦予執(zhí)行權(quán)限:
sudo chmod a+x NVIDIA-Linux-x86_64-418.56.run
注意:NVIDIA-Linux-x86_64-418.56.run 應(yīng)當(dāng)為你驅(qū)動(dòng)的文件名,如果你嫌麻煩残吩,記得一開始就改個(gè)簡單的名字。
安裝英偉達(dá)驅(qū)動(dòng):
sudo sh ./NVIDIA-Linux-x86_64-418.56.run
注意:這一步因?yàn)椴荒軓?fù)制即彪,所以大家一定要看仔細(xì)命令,很容易輸錯(cuò)隶校!
安裝時(shí)全部選yes,路徑就默認(rèn)的選項(xiàng)即可深胳。
執(zhí)行以下指令,返回圖形界面:
sudo /etc/init.d/lightdm start
如果分辨率自動(dòng)修改成顯示器的默認(rèn)分辨率舞终,則表示安裝成功轻庆。
但是权埠!
? ? ? ? 網(wǎng)上其它教程在安裝過程中需要禁用opengl,否則會(huì)出現(xiàn)循環(huán)登陸的問題攘蔽。但是我禁用后呐粘,查看本機(jī)詳細(xì)信息時(shí)并不能看到顯卡型號满俗,又看到某博主說“臺(tái)式機(jī)可以選擇OpenGL”這句話作岖,所以冒了重裝系統(tǒng)的風(fēng)險(xiǎn)嘗試安裝了opengl,如果大家害怕出現(xiàn)循環(huán)登陸的問題痘儡,在安裝時(shí)應(yīng)當(dāng)改為如下命令:
sudo sh ./NVIDIA-Linux-x86_64-418.56.run –no-opengl-files
? ? ? ? 至此,驅(qū)動(dòng)就完美安裝好了渐尿,我大概安了五六次驅(qū)動(dòng),最后一次才覺得按驅(qū)動(dòng)是一件很簡單的事情砖茸。但萬事開頭難,驅(qū)動(dòng)真的是難到了我和另一位很厲害的學(xué)長凉夯!希望大家看到后可以少走彎路~
5 cuda10.0安裝
? ? ? ? 其實(shí)安裝的那一天cuda已經(jīng)出到了10.1采幌,我理所當(dāng)然的就下載了10.1劲够,后來裝到最后才發(fā)現(xiàn)pytorch還沒有出10.1的版本P莅!尊残!所以只好卸載重裝!(用著剛剛出的軟件寝衫,我覺得自己有在做時(shí)代的弄潮兒!)你們看到這篇文章的時(shí)候慰毅,已經(jīng)可以去安裝cuda10.1了~
5.1 下載cuda10.0
? ? ? ? 打開nivida官方網(wǎng)站去下載符合大家版本的cuda吧。
注意:1. 下載runfile版本,因?yàn)閞unfile可以選擇不安裝Nvidia driver东臀。
? ? ? ? ? ? 2. 這個(gè)網(wǎng)站點(diǎn)進(jìn)去后會(huì)讓大家下載最新版的cuda,如果需要舊版本惰赋,去Legacy Releases里去下載。
5.2 安裝cuda
1.進(jìn)入命令行界面并禁用圖像桌面
進(jìn)入命令行界面按:Ctrl+Alt+F1
進(jìn)入后就到了黑白的界面(看起來還是感覺自己非常厲害A薇簟)
先輸入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應(yīng)當(dāng)為你下載好的cuda的文件名击你,如果你嫌麻煩谎柄,記得一開始就改個(gè)簡單的名字。
2.如果你安裝的是cuda10.0:
? ? ? ? 看協(xié)議時(shí)需要一直按空格鍵或Enter鍵到100%谷誓。當(dāng)詢問是否要安裝Nvidia driver時(shí),一定要選no捍歪!其他的選擇accept和yes,安裝在默認(rèn)目錄就行糙臼。
3.如果你安裝的是cuda10.1:
? ? ? ? cuda10.1做了一個(gè)簡單圖形界面,記得把Nvidia driver前面的那個(gè)“X”去掉1涮印!
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. 重啟電腦(一定要重啟K鹇!!8Q埂)掏秩,執(zhí)行以下指令查看cuda是否安裝成功:
nvcc -V
如果成功會(huì)輸出詳細(xì)的內(nèi)容荆姆!
棒!你又成功完成了cuda的安裝胆筒!接下來的任務(wù)就比較簡單了~
6. cuDNN的安裝
cuDNN其實(shí)不太需要安裝,就是需要復(fù)制幾個(gè)文件到cuda下面腐泻。
6.1 下載cuDNN
? ? ? ? 同樣從nvidia官網(wǎng)下載cuDNN,需要簡單的注冊派桩。
? ? ? ? 請大家下載這個(gè)版本蚌斩,因?yàn)槲抑粫?huì)按照這本版本安裝......
6.2 安裝cuDNN
? ? ? ? 下載好后把文件拖到home里,郵件提取解壓到當(dāng)前文件夾送膳。然后會(huì)出現(xiàn)一個(gè)名字叫cuda的文件夾,我們需要把里面的文件復(fù)制到cuda10.0的文件夾里叠聋。但是linux的usr文件夾不能隨便粘貼復(fù)制的,所以運(yùn)行下面的指令碌补。
cd cuda? ?
sudo cp lib64/lib* /usr/local/cuda/lib64/? ?
sudo cp include/cudnn.h /usr/local/cuda/include/
更新網(wǎng)絡(luò)連接:
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
注意:這里的版本號肯定差別較大,建議大家自己打看這個(gè)文件夾搜索一下厦章,不要寫錯(cuò)了。
很簡單吧袜啃,到此,我終于可以:再見nvidia群发,你注冊個(gè)賬號密碼還那么多要求!熟妓!
7 Anaconda的安裝
7.1 下載Anaconda
從官網(wǎng)下載linux版本的Anaconda,這個(gè)速度蜜汁快滑蚯,可能是ipv6的原因吧抵栈。
7.2 安裝Anaconda
1.同樣把下載好的文件放到根目錄下坤次,打開終端:
bash anaconda.sh
注意:anaconda.sh是你下載的文件名古劲,可以改一個(gè)比較簡單的缰猴。
? ? ? ? 安裝時(shí)會(huì)問是否繼續(xù)這里輸入“yes”就好了。問配置問題的話直接按回車鍵滑绒,用默認(rèn)的配置就可以了。這樣再打開home疑故,就會(huì)多出一個(gè)anaconda3的文件夾,這就是安裝好的軟件纵势。
這里我們還需要輸入一下指令,更改python的運(yùn)行地址钦铁,因?yàn)長inux是有默認(rèn)的python地址的。
2.執(zhí)行以下指令更改環(huán)境變量牛曹,打開:
sudo gedit ~/.bashrc
在里面添加如下環(huán)境變量:
export PATH=/home/yourname/anaconda3/bin:$PATH
注意:這里需要把第二個(gè)地址改成自己的用戶名。
????????這個(gè)操作后你再輸入python黎比,就會(huì)顯示anaconda3,python3.7焰手,而不是ubuntu自帶的python2了。
? ? ? ? 簡單的anaconda安裝就結(jié)束了书妻,以后可能需要建立一些環(huán)境什么的,還要大家自己去學(xué)習(xí)一下躲履,這一部分我也很懵sorry!
8 pytorch的安裝
? ? ? ? 如果大家運(yùn)氣好的時(shí)候工猜,使用如下命令就可以很順利的安裝pytorch了,畢竟它就是python的一個(gè)庫篷帅。
pip install torch torchvision
????????可惜的是:我下載了很多次都不成功拴泌,真的很崩潰惊橱,不知道大家為什么這么推崇這個(gè)方法。而且如果安裝的pytorch版本很新的話税朴,清華的鏡像源并沒有我們需要的東西,速度真的很慢......而且還不能斷點(diǎn)續(xù)傳U帧!
????????所以這里推薦大家直接去pytorch官網(wǎng)下載whl文件觅廓。
下載好后直接:
pip install pytorch.whl
注意:pytorch.whl是你下載文件的名字。
緊接著:
pip install torchvision
這個(gè)比較快杈绸!
如果一切順利的話,我們的基礎(chǔ)環(huán)境配置就結(jié)束了蝇棉!
進(jìn)入python測試一下:
import torch
print(torch.cuda.is_available())
輸出結(jié)果是Ture就大功告成了=嬗馈篡殷!
9 寫在后面
? ? ? ? 環(huán)境的搭建工作稍微告一段落了埋涧,可能有人會(huì)問為什么選擇pytorch而不是tensorflow,其實(shí)我并沒什么偏好棘催,只是當(dāng)時(shí)tensorflow還不支持python3.7。
? ? ? 要特別感謝一個(gè)知乎上博主醇坝,他還回了我的私信,萬分感謝呼猪,這是他的文章,非常感謝他宋距!也要謝謝我麻煩過的那么多學(xué)長,無論是幫過我硬件還是軟件方面的谚赎。如果你們看到了這篇文章诱篷,真的非常感謝雳灵!
ps:如果大家有什么問題棕所,我會(huì)盡力幫大家解決的细办,但是!裝軟件真的是個(gè)玄學(xué)笑撞,也請大家記住,該重啟時(shí)一定重啟茴肥!