1.安裝環(huán)境簡介:
硬件:
- cpu:i7 6700k
- gpu:gtx 1070
- 內(nèi)存:32g
系統(tǒng):Ubuntu 14.04
- 安裝在一塊移動(dòng)硬盤上為啥不裝雙系統(tǒng)呢?不爽剔桨!移動(dòng)硬盤上裝Ubuntu的一個(gè)坑是裝之前需要確認(rèn)你的盤是否是4k對齊。你不確認(rèn)也行醉途,反正它死活都不讓你裝~捕犬。
- 系統(tǒng)語言選的是English跷坝,不推薦中文酵镜,在shell里面輸入中文路徑是一件萬分不爽的事兒。
- 環(huán)境就這樣柴钻,很純潔
注意:此時(shí)我的顯示屏連接線是連在主板上的淮韭,因?yàn)橄到y(tǒng)剛裝好gpu還沒有驅(qū)動(dòng)。
正式安裝之前請先看一下cuda開發(fā)庫的支持信息贴届。Ubuntu14.04裝完不用干啥靠粪,滿足要求。
2.裝顯卡驅(qū)動(dòng)
恩毫蚓,雖然我一直以官方文檔為準(zhǔn)占键。但是裝這個(gè)驅(qū)動(dòng),算了绍些,還是參考先驅(qū)的經(jīng)驗(yàn)吧捞慌。以下三個(gè)鏈接,第一個(gè)鏈接是官網(wǎng)的文檔柬批,我主要參考第二個(gè)和第三個(gè)。
(1)https://docs.nvidia.com/deploy/driver-persistence/index.html
(2)http://wxhp.org/ubuntu-install-nvidia-official-drivers.html
(3)http://wiki.ubuntu.org.cn/NVIDIA
- 參照第二個(gè)鏈接安裝過程中出現(xiàn)提示說:將要安裝程序?yàn)?2位袖订,將不安裝任何東西balalala...(-_- || 嚇?biāo)缹殞毩说剩还芰死^續(xù)吧)。安裝過程一路yes洛姑,沒有碰見說要從網(wǎng)上下載modules的那個(gè)提示上沐,所以就沒有選no。安裝完了之后楞艾,pa~提示:kernel Error ...balabala....(|_| 感覺世界沒有愛了参咙,花了那么長時(shí)間換來的就是全特么是error)。
- 安裝完了硫眯,
sudo start lightdm
(心如死灰)蕴侧,輸入登錄密碼,果然~還是跳回了登錄界面两入。谷歌ubuntu輸入密碼返回登錄界面净宵,按照排名靠前的幾個(gè)解決方案看了看,完全沒什么卵用裹纳,因?yàn)槲业奈募?quán)限和所屬用戶择葡、用戶組都是正確的。好吧剃氧,敏储,,還是去查看啟動(dòng)日志吧 - 查看
cat ~/.xsession-errors
朋鞍,錯(cuò)誤提示說:gnome session 啟動(dòng)失敗已添。這是什么鬼提示嘛妥箕,還是沒什么卵用。只知道gnome這個(gè)東西沒起來酝碳。捋一捋系統(tǒng)啟動(dòng)流程矾踱,想到gnome是個(gè)桌面管理程序,既然我在其他run level里面能夠成功使用賬戶名密碼登錄疏哗,說明起碼系統(tǒng)沒壞呛讲,在這個(gè)gnome程序里面卻進(jìn)不去,是不是gnome在啟動(dòng)什么東西的時(shí)候失敗了返奉,聯(lián)想到我之前卸了舊驅(qū)動(dòng)贝搁,裝了顯卡新驅(qū)動(dòng),而且我把顯示器的HDMI插頭接到了主機(jī)的主板上芽偏,不是顯卡上的HDMI接口雷逆。OK,猜想:是不是gnome想要啟動(dòng)顯示器污尉,但是呢系統(tǒng)現(xiàn)在默認(rèn)使用的gragphic是NVIDIA膀哲,我卻把HDMI插頭接口放在了intel集成顯卡的接口上,而intel集成顯卡又沒啟用被碗,所以失敗了某宪。。锐朴。死馬當(dāng)活馬醫(yī)兴喂,關(guān)機(jī),換到NVIDIA插口上焚志,啟動(dòng)衣迷,輸入密碼~~~~艾瑪,進(jìn)去了酱酬。 - 在換插口前我還運(yùn)行了兩條命令
sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove xserver-xorg-video-nouveau
這兩條命令運(yùn)行完之后壶谒,我還是沒法登錄進(jìn)系統(tǒng)。我粗略看了下執(zhí)行是顯示的內(nèi)容岳悟,貌似沒有卸載啥東西佃迄。所以就不知道我運(yùn)行的這兩條命令將來會產(chǎn)生什么影響,反正現(xiàn)在是進(jìn)系統(tǒng)了贵少,下一步準(zhǔn)備安裝cuda7.5和cuDnn呵俏。
2016.10.08
3.安裝cuda7.5(可跳過此部分,這是本安裝記錄的舊版本)
環(huán)境檢查(給予Ubuntu滔灶,其他系統(tǒng)環(huán)境查看這里的說明)
2016年11月19日
一個(gè)多月過去了普碎,之前驅(qū)動(dòng)裝完就放下了。剛開始其實(shí)不用一定非得要裝gpu版本的录平,在虛擬機(jī)里面裝了個(gè)cpu版本的做做實(shí)驗(yàn)也OK麻车∽褐澹看了一些神經(jīng)網(wǎng)絡(luò)相關(guān)的論文,做了些實(shí)驗(yàn)后动猬,現(xiàn)在覺得虛擬機(jī)不夠用了啤斗。這才回來安裝GPU版本的tensorflow。
一個(gè)多月赁咙,tensorflow官網(wǎng)已經(jīng)默認(rèn)支持最新的cuda toolkit 8.0钮莲,而且window平臺也開始逐步支持了。廢話不多說彼水,開始吧~
4.安裝cuda8.0
此部分內(nèi)容與第三步同樣是按照官網(wǎng)的教程使用的崔拥。官網(wǎng)文檔請走這里。
官方文檔里面包含九個(gè)章節(jié)凤覆,分別是:
- 引入
- 裝前檢查链瓦,確定依賴環(huán)境等
- 安裝包管理
- 安裝文件
- 交叉平臺安裝(目前只支持Ubuntu)
- 安裝后注意事項(xiàng)
- 高級設(shè)置
- 常見問題
- 其他注意事項(xiàng)
黑體部分為本安裝記錄會涉及到的,其他部分如有需要自取盯桦。
-
裝前檢查慈俯,確定依賴環(huán)境等
相關(guān)命令:
lspci | grep -i nvidia
uname -m && cat /etc/*release
gcc --version
uname -r
sudo apt-get install linux-headers-$(uname -r)
1.1 安裝與內(nèi)核版本一致的相關(guān)包
相關(guān)命令:sudo apt-get install linux-headers-$(uname -r)
ps: 參考官方文檔的2.1~2.4 , 2.7節(jié)
4.安裝文件
安裝文件可選方式有兩種,一種是distribution-specific packages安裝包拥峦,一種是distribution-independent package肥卡。有啥區(qū)別呢?就是后一種是.sh結(jié)尾的文件,可以在一些不常用的Linux平臺上安裝事镣,但是包管理器可能不支持更新升級,安裝起來也比較麻煩揪胃。前一種可以通過包管理器本地安裝或在線安裝璃哟,安裝升級方便。在官網(wǎng)下載的時(shí)候就能看到下載包的區(qū)別喊递,如下圖所示,第一個(gè)runfile個(gè)人不建議下載安裝随闪。下載第二個(gè)安裝。
下載好后改變bash路徑到cuda-repo-<distro><version><architecture>.deb文件所在的目錄骚勘,然后依次執(zhí)行如下命令
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
sudo apt-get update
sudo apt-get install cuda
一切都很順溜~~注意第一條命令不要直接復(fù)制就運(yùn)行了铐伴,替換成你下載的文件名。
ps: 參考官方文檔的2.5,3.6節(jié)
6.安裝后注意事項(xiàng)
6.1 把路徑/usr/local/cuda-8.0/bin
加到環(huán)境變量中去俏讹。
在/etc/profile 文件的末尾加了如下語句:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
保存后別忘了source /etc/profile
一下当宴。
6.2 安裝cuda的測試腳本
cuda-install-samples-8.0.sh <dir>
<dir>為一個(gè)當(dāng)前用戶具有讀寫權(quán)限的目錄,我運(yùn)行的命令如下:cuda-install-samples-8.0.sh ~
看一下當(dāng)前目錄泽疆,多了個(gè)NVIDIA_CUDA-8.0_Samples的文件夾
6.3 編譯例子程序測試是否安裝成功
把當(dāng)前目錄切換到剛才那個(gè)目錄文件下
cd ~/NVIDIA_CUDA-8.0_Samples
再執(zhí)行命令
make
嘩啦嘩啦~好多輸出户矢。這時(shí)候你再開一個(gè)shell窗口,切換到目錄~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
看看文件數(shù)量是不是在增長殉疼,可以通過如下命令統(tǒng)計(jì)當(dāng)前目錄文件數(shù)量ll | wc -l
梯浪。我編譯完成后一共是160個(gè)文件捌年。
6.4 運(yùn)行編譯后的二進(jìn)制文件
- 切換到目錄
~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
下,運(yùn)行如下腳本./deviceQuery
挂洛。運(yùn)行結(jié)果什么呢?失敗反正我安裝完后執(zhí)行這個(gè)腳本是失敗了,失敗的界面沒截圖~我就不重現(xiàn)它了礼预。
我沒有急著卸載重裝,回想所有安裝步驟都沒問題虏劲,于是有了終極解決方案:重啟~~托酸。對,沒看錯(cuò)就是重啟重啟一下運(yùn)行剛才這個(gè)命令會出現(xiàn)如下所示界面伙单,恭喜你成功了
上圖中主要看兩個(gè)地方获高,一個(gè)是看有沒有檢測到你的顯卡,也就是
Device 0: "GeForce GTX 1070"
的那一行吻育。還有就是最后一行Result = PASS
- 再運(yùn)行一個(gè)測試腳本``
PS:出錯(cuò)的時(shí)候網(wǎng)上查了下念秧,有人說不要使用deb的文件安裝。但是一想畢竟按照官方文檔一步一步下來沒有錯(cuò)布疼,我也不想再折騰摊趾。開始想看一下是不是源碼有問題,粗略看了下游两,好像沒啥問題(其實(shí)是看不懂)砾层,重啟就是死馬當(dāng)活馬醫(yī)~
ps: 本節(jié)參考了原文的6.1.1 , 6.2.1 , 6.2.2.2 和 6.2.2.3小節(jié)。
5.安裝cuDNN v5.1
這個(gè)最簡單贱案,按照tensorflow官網(wǎng)的教程來就行肛炮,不用按照cuDnn的文檔來。
- 下載cudnn
https://developer.nvidia.com/cudnn - 把壓縮文件解壓到cuda toolkit的安裝目錄宝踪,默認(rèn)是
/usr/local/cuda
侨糟。首先把當(dāng)前目錄切換到/usr/local/cuda
,然后運(yùn)行如下相關(guān)命令:
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
6.tensorflow安裝方式
我基本上所有方式都嘗試過了瘩燥,這次我選擇anaconda的安裝方式秕重。
- anaconda官網(wǎng)下載:https://www.continuum.io/downloads
我選的是python3.5 64位的Linux版本
下載好后,用命令bash bash Anaconda3-4.2.0-Linux-x86_64.sh
裝就好了厉膀。
中間要你輸入enter就敲一下回車溶耘,遇到more的時(shí)候就按空格鍵,遇到選yes或no服鹅,統(tǒng)統(tǒng)選yes就好凳兵。
裝完之后,記得要么重啟一下菱魔,要么shell里面運(yùn)行source ~/.bashrc
就好留荔。然后輸入which python
看一下路徑中是不是包含在anaconda的安裝目錄,是就對了。
哦對了聚蝶,你會發(fā)現(xiàn)如果你運(yùn)行sudo python
的時(shí)候杰妓,還是用的系統(tǒng)自帶的python。解決辦法嘛可以重建默認(rèn)python的軟連接到anaconda里面的python碘勉。也可以編輯/etc/profile
巷挥,把a(bǔ)naconda的bin目錄加到path里面去。
2.安裝tensorflow
直接上命令清單验靡,一行一行運(yùn)行就好倍宾。有特殊需求找官網(wǎng)去。
conda create -n tensorflow python=3.5
source activate tensorflow
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp35-cp35m-linux_x86_64.whl
pip install --ignore-installed --upgrade $TF_BINARY_URL
注意最后一行和官網(wǎng)不一樣胜嗓,官網(wǎng)是pip3 install --ignore-installed --upgrade $TF_BINARY_URL
高职。它用的是pip3,我沒裝上辞州,換成pip就好怔锌。細(xì)心的話會發(fā)先不是python2.x采用pip么?你裝的python3.5怎么用pip呢?我也,不知道变过,反正就是裝上了~python的庫基本上都支持python3了埃元,估計(jì)也沒必要搞個(gè)pip3了。
7. 運(yùn)行點(diǎn)代碼試試
輸入圖片中紅色框住的或指向的就行媚狰,其他的忽略岛杀。目的就是計(jì)算一個(gè)e的5次方。
8. 其他
shell窗口使用的是terminator崭孤,窗口多開类嗤,調(diào)節(jié)大小挺方便的。
git+pycharm+anaconda+jupyter
關(guān)于pycharm設(shè)置什么遠(yuǎn)程調(diào)試啊辨宠,代碼部署啊什么的土浸,如果有需要,回頭再寫彭羹。
完事兒~~