1.兩塊顯卡
2.tensorflow1.5只支持到cuda9.0
3.電腦硬件信息如下圖:
安裝單系統(tǒng)(語言英文)
1.不自動更新+不下載第三方
2.分區(qū):
?sda1:第一個? bios reserve(bios保留分區(qū))?? 掛載在biosgrub 主分區(qū)? 1M
?sda2: 第二個? ETX4? 掛載在 /? 主分區(qū)? 50G~幾乎整個磁盤的大小
?sda3: 第三個? 交換空間(swap)邏輯分區(qū)? 內(nèi)存大小 68888M
安裝驅(qū)動
ps. ppa源安裝無法匹配正確版本驅(qū)動
1.去官網(wǎng)下載最新的驅(qū)動run文件,選擇系統(tǒng)的時候,不要選擇ubuntu16.04,選擇的話容易選到deb文件,應(yīng)該選擇linux-64bit版本
2.安裝NVIDIA驅(qū)動程序(如果事先有裝但失敗的,先卸載)
$? sudo apt remove --purge nvidia*
3.禁用驅(qū)動
1)在Ubuntu16.04中蝇率,我們可以通過以下操作禁用nouveau:
a.在/etc/modprobe.d中創(chuàng)建文件blacklist-nouveau.conf
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在文件中輸入以下內(nèi)容:
blacklist nouveau
options nouveau modeset=0
b.執(zhí)行
$ sudo update-initramfs -u
c.查看nouveau是否已經(jīng)成功禁用
$? lsmod | grep nouveau
若無內(nèi)容輸出,則禁用成功,若仍有內(nèi)容輸出恼布,請檢查上述操作,并重復(fù)搁宾。
操作無誤但仍有輸出折汞,則可重啟,進(jìn)入用戶登錄界面時(不要登錄進(jìn)桌面)盖腿,按Ctrl+Alt+F1進(jìn)入字符終端界面字支,輸入用戶名和密碼進(jìn)行登錄,登錄成功后奸忽,再次查看
$? lsmod | grep nouveau
這時堕伪,我們已經(jīng)成功禁用了nouveau,無輸出
2)關(guān)閉圖形化界面
$sudoservice lightdm stop
3)安裝驅(qū)動
注意進(jìn)入你下載的目錄
給驅(qū)動run文件賦予執(zhí)行權(quán)限:
sudo chmod a+x NVIDIA-Linux-x86_64-390.46.run
#后面的參數(shù)非常重要栗菜,不可省略:
sudo ./NVIDIA-Linux-x86_64-390.46.run –no-opengl-files
–no-opengl-files:表示只安裝驅(qū)動文件欠雌,不安裝OpenGL文件。這個參數(shù)不可省略疙筹,否則會導(dǎo)致登陸界面死循環(huán)富俄,英語一般稱為”login loop”或者”stuck in login”。
–no-x-check:表示安裝驅(qū)動時不檢查X服務(wù)而咆,非必需漫蛔。
–no-nouveau-check:表示安裝驅(qū)動時不檢查nouveau,非必需祝谚。
-Z, --disable-nouveau:禁用nouveau锨阿。此參數(shù)非必需,因為之前已經(jīng)手動禁用了nouveau涯捻。
-A:查看更多高級選項浅妆。
必選參數(shù)解釋:因為NVIDIA的驅(qū)動默認(rèn)會安裝OpenGL,而Ubuntu的內(nèi)核本身也有OpenGL障癌、且與GUI顯示息息相關(guān)凌外,一旦NVIDIA的驅(qū)動覆寫了OpenGL,在GUI需要動態(tài)鏈接OpenGL庫的時候就引起問題涛浙。
可以使用下面的命令打開圖形化界面:
sudo service lightdm start
之后康辑,按照提示安裝摄欲,成功后重啟即可。 如果提示安裝失敗疮薇,不要急著重啟電腦蒿涎,重復(fù)以上步驟,多安裝幾次即可惦辛。
Driver測試:
nvidia-smi
#若列出GPU的信息列表劳秋,表示驅(qū)動安裝成功
nvidia-settings
#若彈出設(shè)置對話框,亦表示驅(qū)動安裝成功,我們沒有出正確結(jié)果胖齐,但目前沒有發(fā)現(xiàn)問題
CUDA9.0 安裝
到NVIDIA官網(wǎng)中玻淑,找到CUDA 9.0并下載,注意與tensorflow版本對應(yīng)
之后,重啟系統(tǒng)呀伙,在登錄界面時按Ctrl+Alt+F1進(jìn)入字符終端界面补履,登錄成功后,
關(guān)閉圖形化界面
$ sudo service lightdm stop
找到下載文件的路徑剿另,鍵入下面的命令安裝:
$ sudo sh cuda_9.0.176_384.81_linux.run
單擊回車箫锤,直到提示“是否為NVIDIA安裝驅(qū)動?”
選擇否雨女,因為已經(jīng)安裝好驅(qū)動程序谚攒,其他都是默認(rèn)。
最后你會看到cuda驅(qū)動氛堕、sample馏臭、tookit已經(jīng)安裝成功,但是缺少一些庫。
添加這些庫
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
重新啟動圖形化界面
$ sudo service lightdm start
同時按住Alt + ctrl +F7讼稚,返回到圖形化登錄界面括儒,輸入密碼登錄。
如果能夠成功登錄锐想,則表示不會遇到循環(huán)登錄的問題帮寻,基本說明CUDA的安裝成功了
重啟電腦,檢查Device Node Verification
$ sudo reboot
$ ls /dev/nvidia*
a赠摇、若結(jié)果顯示
/dev/nvidia0? ? /dev/nvidiactl? ? /dev/nvidia-uvm
或顯示出類似的信息固逗,應(yīng)該有三個(包含一個類似/dev/nvidia-uvm的),則安裝成功蝉稳。
b抒蚜、大多數(shù)結(jié)果可能會是這樣
ls: cannot access/dev/nvidia*: No such file or directory
或是這樣的掘鄙,只出現(xiàn)
/dev/nvidia0? ? /dev/nvidiactl
a中的一個或兩個耘戚,但沒有/dev/nvidia-uvm,即文件顯示不全操漠。
解決方法:
首先要添加一個啟動腳本
$ sudo vim /etc/rc.local
把文件的第一行的#!/bin/sh -e中的-e去掉收津,
在#!/bin/sh和exit 0之間饿这,添加以下內(nèi)容
/sbin/modprobe nvidia
if["$?" -eq 0];then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA- 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if["$?" -eq 0];then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
保存文件并重啟,再次查看撞秋,這時你應(yīng)該能直接看到/dev目錄下的三個nvidia的文件
輸入:
$ ls /dev/nvidia*
結(jié)果顯示:
/dev/nvidia0? ? /dev/nvidiactl? ? /dev/nvidia-uvm
成功长捧!如果還是沒有出現(xiàn),先不管他吻贿,跑后面的samples例子串结,然后會出來
接著,設(shè)置環(huán)境變量舅列。
終端中輸入
$ sudo vim /etc/profile
在打開的文件末尾肌割,添加以下兩行。
64位系統(tǒng):
$export PATH=/usr/local/cuda-9.0/bin:$PATH
$export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
32位系統(tǒng):
$export PATH=/usr/local/cuda-9.0/bin:$PATH
$export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib:$LD_LIBRARY_PATH
保存文件帐要,并重啟把敞。因為source /etc/profile是臨時生效,重啟電腦才是永久生效榨惠。
重啟電腦奋早,檢查上述的環(huán)境變量是否設(shè)置成功。
a.驗證驅(qū)動版本
$ cat /proc/driver/nvidia/version
b.驗證CUDA Toolkit
$ nvcc -V
如果這里面出不來赠橙,那么先編譯運(yùn)行例子后再回來驗證
最后耽装,我們需要嘗試編譯cuda提供的例子,看cuda能否正常運(yùn)行
打開終端輸入(注意你安裝的路徑期揪,替換user_name)
$ cd /home/user_name/NVIDIA_CUDA-9.0_Samples
$ make
系統(tǒng)就會自動進(jìn)入到編譯過程剂邮,整個過程大概需要十幾到二十分鐘,請耐心等待横侦。如果出現(xiàn)錯誤的話挥萌,系統(tǒng)會立即報錯停止。
如果編譯成功枉侧,最后會顯示Finished building CUDA samples引瀑,如下圖所示。
運(yùn)行編譯生成的二進(jìn)制文件榨馁。
編譯后的二進(jìn)制文件默認(rèn)存放在NVIDIA_CUDA-9.0_Samples/bin中憨栽。
接著在終端中輸入 :
$ cd bin/x86_64/linux/release$ ./deviceQuery
結(jié)果如下圖所示:看到類似如下圖片中的顯示,則代表CUDA安裝且配置成功翼虫,其中 Result = PASS代表成功,若失敗 Result = FAIL
最后再檢查一下系統(tǒng)和CUDA-Capable device的連接情況
終端輸入 :
$ ./bandwidthTest
看到類似如下圖片中的顯示屑柔,則代表成功
在官網(wǎng)上下載適合cuda版本的deb文件或tgz文件。? cudnn-9.0-linux-x64-v7.1.tgz
把頭文件和庫文件拷貝到cuda的安裝目錄中珍剑,首先確保cuda的安裝目錄是/usr/local/cuda/掸宛,之前安裝cuda時,已經(jīng)默認(rèn)安裝目錄為/usr/local/cuda/了
sudo?tar?-xzvf? cudnn-9.0-linux-x64-v7.1.tgz
sudo?cp?cuda/include/cudnn.h?/usr/local/cuda/include??
sudo?cp?cuda/lib64/libcudnn*?/usr/local/cuda/lib64??
文件拷貝成功
查看cudnn版本
sudo?cat?/usr/local/cuda/include/cudnn.h?|?grep?CUDNN_MAJOR?-A2??
安裝Anaconda
然后執(zhí)行:bash Anaconda×××-Linux-x86_64.sh 招拙,然后一直enter鍵唧瘾,中途會遇到([y]/n)? 的提示措译,輸入y即可。
安裝好后饰序,在終端輸入Python即可看見:Python 3.6.4 |Anaconda, Inc.|领虹,表明安裝成功。
安裝tensorflow(cpu版)
官方的建議是即時你有g(shù)pu求豫,但也可以先裝一個cpu版塌衰,創(chuàng)建環(huán)境的命令為:
conda?create?-n?tensorflow?python=3.6??
(一定要指定python版本,python=3.6)
source?activate?tensorflow?#激活tensorflow環(huán)境??
cd?/Downloads#切換到whl文件所在文件夾??
pip?install?--ignore-installed?--upgrade?tensorflow-1.5.0-py3-none-linux_x86_64.whl?#不要用sudo?pip蝠嘉,也不要用pip3??
(tensorflow)$?python??
import?tensorflow?as?tf??
hello?=?tf.constant('Hello,?TensorFlow!')??
sess?=?tf.Session()??
sess.run(hello)??
GPU版下載對應(yīng)GPU版本猾蒂,安裝方式一樣
opencv安裝