ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12

1.安裝環(huán)境簡(jiǎn)介:

硬件:

  1. cpu:i7 6700k
  2. gpu:gtx 1070
  3. 內(nèi)存:32g

系統(tǒng):Ubuntu 14.04

  • 安裝在一塊移動(dòng)硬盤(pán)上為啥不裝雙系統(tǒng)呢?不爽!移動(dòng)硬盤(pán)上裝Ubuntu的一個(gè)坑是裝之前需要確認(rèn)你的盤(pán)是否是4k對(duì)齊。你不確認(rèn)也行,反正它死活都不讓你裝~。
  • 系統(tǒng)語(yǔ)言選的是English,不推薦中文,在shell里面輸入中文路徑是一件萬(wàn)分不爽的事兒。
  • 環(huán)境就這樣,很純潔

注意:此時(shí)我的顯示屏連接線是連在主板上的,因?yàn)橄到y(tǒng)剛裝好gpu還沒(méi)有驅(qū)動(dòng)。

正式安裝之前請(qǐng)先看一下cuda開(kāi)發(fā)庫(kù)的支持信息。Ubuntu14.04裝完不用干啥,滿足要求。


cuda8安裝環(huán)境支持對(duì)照表

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è)鏈接安裝過(guò)程中出現(xiàn)提示說(shuō):將要安裝程序?yàn)?2位,將不安裝任何東西balalala...(-_- || 嚇?biāo)缹殞毩耍还芰死^續(xù)吧)。安裝過(guò)程一路yes,沒(méi)有碰見(jiàn)說(shuō)要從網(wǎng)上下載modules的那個(gè)提示,所以就沒(méi)有選no。安裝完了之后,pa~提示:kernel Error ...balabala....(|_| 感覺(jué)世界沒(méi)有愛(ài)了,花了那么長(zhǎng)時(shí)間換來(lái)的就是全特么是error)。
  • 安裝完了,sudo start lightdm(心如死灰),輸入登錄密碼,果然~還是跳回了登錄界面。谷歌ubuntu輸入密碼返回登錄界面,按照排名靠前的幾個(gè)解決方案看了看,完全沒(méi)什么卵用,因?yàn)槲业奈募?quán)限和所屬用戶、用戶組都是正確的。好吧,,,還是去查看啟動(dòng)日志吧
  • 查看cat ~/.xsession-errors,錯(cuò)誤提示說(shuō):gnome session 啟動(dòng)失敗。這是什么鬼提示嘛,還是沒(méi)什么卵用。只知道gnome這個(gè)東西沒(méi)起來(lái)。捋一捋系統(tǒng)啟動(dòng)流程,想到gnome是個(gè)桌面管理程序,既然我在其他run level里面能夠成功使用賬戶名密碼登錄,說(shuō)明起碼系統(tǒng)沒(méi)壞,在這個(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集成顯卡又沒(méi)啟用,所以失敗了。。。死馬當(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)行完之后,我還是沒(méi)法登錄進(jìn)系統(tǒng)。我粗略看了下執(zhí)行是顯示的內(nèi)容,貌似沒(méi)有卸載啥東西。所以就不知道我運(yùn)行的這兩條命令將來(lái)會(huì)產(chǎn)生什么影響,反正現(xiàn)在是進(jìn)系統(tǒng)了,下一步準(zhǔn)備安裝cuda7.5和cuDnn。
    2016.10.08

3.安裝cuda7.5(可跳過(guò)此部分,這是本安裝記錄的舊版本)

環(huán)境檢查(給予Ubuntu,其他系統(tǒng)環(huán)境查看這里的說(shuō)明)

檢查系統(tǒng)是否有相關(guān)環(huán)境.png


2016年11月19日


  • 一個(gè)多月過(guò)去了,之前驅(qū)動(dòng)裝完就放下了。剛開(kāi)始其實(shí)不用一定非得要裝gpu版本的,在虛擬機(jī)里面裝了個(gè)cpu版本的做做實(shí)驗(yàn)也OK。看了一些神經(jīng)網(wǎng)絡(luò)相關(guān)的論文,做了些實(shí)驗(yàn)后,現(xiàn)在覺(jué)得虛擬機(jī)不夠用了。這才回來(lái)安裝GPU版本的tensorflow。

  • 一個(gè)多月,tensorflow官網(wǎng)已經(jīng)默認(rèn)支持最新的cuda toolkit 8.0,而且window平臺(tái)也開(kāi)始逐步支持了。廢話不多說(shuō),開(kāi)始吧~


4.安裝cuda8.0

此部分內(nèi)容與第三步同樣是按照官網(wǎng)的教程使用的。官網(wǎng)文檔請(qǐng)走這里

官方文檔里面包含九個(gè)章節(jié),分別是:

  1. 引入
  2. 裝前檢查,確定依賴環(huán)境等
  3. 安裝包管理
  4. 安裝文件
  5. 交叉平臺(tái)安裝(目前只支持Ubuntu)
  6. 安裝后注意事項(xiàng)
  7. 高級(jí)設(shè)置
  8. 常見(jiàn)問(wèn)題
  9. 其他注意事項(xiàng)

黑體部分為本安裝記錄會(huì)涉及到的,其他部分如有需要自取。

  1. 裝前檢查,確定依賴環(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)
檢查系統(tǒng)是否有相關(guān)環(huán)境

1.1 安裝與內(nèi)核版本一致的相關(guān)包
相關(guān)命令:sudo apt-get install linux-headers-$(uname -r)

安裝與內(nèi)核版本一致的相關(guān)包

ps: 參考官方文檔的2.1~2.4 , 2.7節(jié)

4.安裝文件
安裝文件可選方式有兩種,一種是distribution-specific packages安裝包,一種是distribution-independent package。有啥區(qū)別呢?就是后一種是.sh結(jié)尾的文件,可以在一些不常用的Linux平臺(tái)上安裝,但是包管理器可能不支持更新升級(jí),安裝起來(lái)也比較麻煩。前一種可以通過(guò)包管理器本地安裝或在線安裝,安裝升級(jí)方便。在官網(wǎng)下載的時(shí)候就能看到下載包的區(qū)別,如下圖所示,第一個(gè)runfile個(gè)人不建議下載安裝。下載第二個(gè)安裝。

cuda安裝包選擇

下載好后改變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 文件的末尾加了如下語(yǔ)句:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
保存后別忘了source /etc/profile一下。
6.2 安裝cuda的測(cè)試腳本
cuda-install-samples-8.0.sh <dir> <dir>為一個(gè)當(dāng)前用戶具有讀寫(xiě)權(quán)限的目錄,我運(yùn)行的命令如下:cuda-install-samples-8.0.sh ~
看一下當(dāng)前目錄,多了個(gè)NVIDIA_CUDA-8.0_Samples的文件夾

查看Samples

6.3 編譯例子程序測(cè)試是否安裝成功
把當(dāng)前目錄切換到剛才那個(gè)目錄文件下
cd ~/NVIDIA_CUDA-8.0_Samples
再執(zhí)行命令
make
嘩啦嘩啦~好多輸出。這時(shí)候你再開(kāi)一個(gè)shell窗口,切換到目錄~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
看看文件數(shù)量是不是在增長(zhǎng),可以通過(guò)如下命令統(tǒng)計(jì)當(dāng)前目錄文件數(shù)量ll | wc -l。我編譯完成后一共是160個(gè)文件。

文件計(jì)數(shù)

6.4 運(yùn)行編譯后的二進(jìn)制文件

  • 切換到目錄~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release下,運(yùn)行如下腳本./deviceQuery。運(yùn)行結(jié)果什么呢?失敗反正我安裝完后執(zhí)行這個(gè)腳本是失敗了,失敗的界面沒(méi)截圖~我就不重現(xiàn)它了。
    我沒(méi)有急著卸載重裝,回想所有安裝步驟都沒(méi)問(wèn)題,于是有了終極解決方案:重啟~~。對(duì),沒(méi)看錯(cuò)就是重啟重啟一下運(yùn)行剛才這個(gè)命令會(huì)出現(xiàn)如下所示界面,恭喜你成功了

cuda安裝測(cè)試

上圖中主要看兩個(gè)地方,一個(gè)是看有沒(méi)有檢測(cè)到你的顯卡,也就是Device 0: "GeForce GTX 1070"的那一行。還有就是最后一行Result = PASS

  • 再運(yùn)行一個(gè)測(cè)試腳本``
第二個(gè)測(cè)試

PS:出錯(cuò)的時(shí)候網(wǎng)上查了下,有人說(shuō)不要使用deb的文件安裝。但是一想畢竟按照官方文檔一步一步下來(lái)沒(méi)有錯(cuò),我也不想再折騰。開(kāi)始想看一下是不是源碼有問(wèn)題,粗略看了下,好像沒(méi)啥問(wèn)題(其實(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è)最簡(jiǎn)單,按照tensorflow官網(wǎng)的教程來(lái)就行,不用按照cuDnn的文檔來(lái)。

  1. 下載cudnn
    https://developer.nvidia.com/cudnn
  2. 把壓縮文件解壓到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安裝方式

我基本上所有方式都嘗試過(guò)了,這次我選擇anaconda的安裝方式。

  1. anaconda官網(wǎng)下載:https://www.continuum.io/downloads
    我選的是python3.5 64位的Linux版本
    下載好后,用命令bash bash Anaconda3-4.2.0-Linux-x86_64.sh裝就好了。
    中間要你輸入enter就敲一下回車(chē),遇到more的時(shí)候就按空格鍵,遇到選yes或no,統(tǒng)統(tǒng)選yes就好。
    裝完之后,記得要么重啟一下,要么shell里面運(yùn)行source ~/.bashrc就好。然后輸入which python看一下路徑中是不是包含在anaconda的安裝目錄,是就對(duì)了。
python

哦對(duì)了,你會(huì)發(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,我沒(méi)裝上,換成pip就好。細(xì)心的話會(huì)發(fā)先不是python2.x采用pip么?你裝的python3.5怎么用pip呢?我也,不知道,反正就是裝上了~python的庫(kù)基本上都支持python3了,估計(jì)也沒(méi)必要搞個(gè)pip3了。

7. 運(yùn)行點(diǎn)代碼試試

輸入圖片中紅色框住的或指向的就行,其他的忽略。目的就是計(jì)算一個(gè)e的5次方。


例子

8. 其他

shell窗口使用的是terminator,窗口多開(kāi),調(diào)節(jié)大小挺方便的。
git+pycharm+anaconda+jupyter
關(guān)于pycharm設(shè)置什么遠(yuǎn)程調(diào)試啊,代碼部署啊什么的,如果有需要,回頭再寫(xiě)。

完事兒~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,048評(píng)論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,414評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,169評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,722評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,465評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,823評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,813評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,000評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,554評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,513評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,722評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,125評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,430評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,237評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,482評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容