摘要
Ubuntu18.04安裝Tensorflow-gpu,坑成馬。
不想踩坑?有緣千里來(lái)相會(huì),這篇文章將梳理出作者遇到的所有天坑。
對(duì)于下列問(wèn)題,你可以在本文中找到答案
- 安裝Nvidia驅(qū)動(dòng)時(shí)提示顯卡被占用?
- 安裝Nvidia驅(qū)動(dòng)時(shí)提示gcc版本太高?
- 安裝Nvidia驅(qū)動(dòng)的正確姿勢(shì)?
- 驅(qū)動(dòng)裝炸了,卸載Nvidia驅(qū)動(dòng)的正確姿勢(shì)?
- CUDA安裝與配置的正確姿勢(shì)?
- cnDNN安裝與配置的正確姿勢(shì)?
前排提醒!!!
如果Ubuntu提示系統(tǒng)升級(jí),千萬(wàn)不要點(diǎn)!千萬(wàn)不要點(diǎn)!千萬(wàn)不要點(diǎn)!一鍵爆炸了解一下。
正文
組件版本:
Operating System : Unbuntu 18.04 LTS
Nvidia Graphic Card : Nvidia 940MX
Nvidia Driver: NVIDIA-Linux-x86_64-410.78
CUDA : CUDA 9.0
cuDNN : cuDNN 7.1.4
Tensorflow : 1.5.0 GPU Version
請(qǐng)保證你的系統(tǒng)是純凈的,安裝過(guò)后沒(méi)有進(jìn)行過(guò)任何多余操作
-
禁用預(yù)安裝的nouveau驅(qū)動(dòng)
用下面的指令創(chuàng)建新文件blacklist-nouveau.conf*
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf并添加如下內(nèi)容
blacklist nouveau options nouveau modeset=0Okay. 關(guān)閉文件,執(zhí)行下列命令,重啟。
sudo update-initramfs -u sudo reboot重啟完成后,用下面這個(gè)命令,檢驗(yàn)nouveau是否已經(jīng)被禁用了。
lspci | grep nouveau如果被禁用了,那么terminal里不會(huì)輸出任何東西。
-
安裝 gcc 6
從CUDA 4.1版本開(kāi)始,現(xiàn)在支持gcc 4.5。gcc 4.6和4.7不受支持
從CUDA 5.0版本開(kāi)始,現(xiàn)在支持gcc 4.6。gcc 4.7不受支持
從CUDA 6.0版本開(kāi)始,現(xiàn)在支持gcc 4.7
從CUDA 7.0版本開(kāi)始,完全支持gcc 4.8,在Ubuntu 14.04和Fedora 21上支持4.9
從CUDA 7.5版開(kāi)始,完全支持gcc 4.8,在Ubuntu 14.04和Fedora 21上支持4.9
從CUDA 8版本開(kāi)始,Ubuntu 16.06和Fedora 23完全支持gcc 5.3
從CUDA 9版本開(kāi)始,Ubuntu 16.04,Ubuntu 17.04和Fedora 25完全支持gcc 6
CUDA 9在CUDA中不支持gcc 7作者執(zhí)筆寫(xiě)這篇文章時(shí),Ubuntu18.04 LTS自帶的gcc版本是7.3.0。CUDA9.0是不支持gcc 7的。因此你需要安裝一個(gè)低版本的gcc。在這里我選用gcc 6,下列命令可用于安裝gcc 6。
sudo apt-get install gcc-6 sudo apt-get install g++-6建立 soft link :
sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++此時(shí)你應(yīng)該已經(jīng)可以在terminal里調(diào)用gcc了,用下面的命令進(jìn)行測(cè)試。
gcc --version
-
安裝Nvidia驅(qū)動(dòng)
根據(jù)你顯卡的型號(hào),去Nvidia官網(wǎng)下載對(duì)應(yīng)驅(qū)動(dòng)安裝程序的runfile版本。
按
Ctrl+Alt+F3,進(jìn)入文本命令行。登錄,使用下面的兩行指令終止GUI操作。對(duì)于Ubuntu18.04來(lái)說(shuō),第二行應(yīng)該管用。sudo service lightdm stop sudo service gdm3 stop用如下指令運(yùn)行.run文件
sudo $DRIVER_DIR/NVIDIA-Linux-x86_64-410.78.run如果你發(fā)現(xiàn)不能運(yùn)行,在運(yùn)行之前,嘗試用先用下面的指令
chmod u+x $DRIVER_DIR/NVIDIA-Linux-x86_64-410.78.run你可能會(huì)發(fā)現(xiàn)安裝程序會(huì)提示你缺少很多依賴,例如
make。按照安裝程序的指示,用apt把該裝的都裝了。等所有依賴都安裝完畢,你應(yīng)該就可以順利安裝驅(qū)動(dòng)了。期間你可能會(huì)遇到各種各樣的提示框,說(shuō)的還很嚇人。在下也不懂。選YES就是了,反正是純凈系統(tǒng),大不了重頭再來(lái)。安裝完成后,用下面的指令測(cè)試是否安裝成功。
nvidia-smi
-
安裝 CUDA 9.0
根據(jù)你所要使用的Tensorflow版本選擇對(duì)應(yīng)的CUDA的runfile安裝程序下載。
tensorflow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 | 備注:7.0.4/ 7.0.5/ 7.1.2不明確
tensorflow-gpu v1.8.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
tensorflow-gpu v1.7.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
tensorflow-gpu v1.6.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
tensorflow-gpu v1.5.0 | cuda9.0 | cuDNN 不明確 | 備注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
tensorflow-gpu v1.4.0 | cuda8.0 | cuDNN 6.0 | 備注:6.0正常使用, 7.0.5不能用,5.1未知
tensorflow-gpu v1.3.0 | cuda8.0 | cuDNN 6.0 | 備注:6.0正常使用, 7.0.5不能用,5.1未知
tensorflow-gpu v1.2.0 | cuda8.0 | cuDNN 5.1 | 備注:5.1正常使用, 6.0/ 7.0.5 未知
tensorflow-gpu v1.1.0 | cuda8.0 | cuDNN 5.1 | 備注:5.1正常使用, 6.0/ 7.0.5 未知Ref: https://blog.csdn.net/lifuxian1994/article/details/81103530
運(yùn)行
sudo $CUDA_DIR/cuda_9.0.176_384.81_linux.run開(kāi)頭的協(xié)議太長(zhǎng),按空格加速跳過(guò)。之后你將進(jìn)行一系列的選擇,除了問(wèn)你 “是否要安裝CUDA自帶的Nvidia驅(qū)動(dòng)程序” 選NO之外, 其余全選YES。我們剛剛自己安裝了驅(qū)動(dòng),不用它的。
順利安裝完成后,用下列指令將CUDA路徑加入系統(tǒng)變量
export PATH=$PATH:/usr/local/cuda-9.0/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64上面的指令只能在當(dāng)前terminal有用。如果想永久設(shè)置,打開(kāi)下面的文件,并把上面兩行放到文件的最后。
~/.bashrc用下面的指令測(cè)試CUDA是否安裝成功
nvcc --version你應(yīng)該可以得到nvcc編譯器對(duì)應(yīng)的版本信息
-
安裝Tensorflow-gpu
我們使用
pip安裝Tensorflow-gpu。pip應(yīng)該沒(méi)有隨系統(tǒng)安裝,沒(méi)有pip的先用下面的指令安裝pip。sudo apt install python-pip然后執(zhí)行下面的指令安裝tensorflow-gpu 1.5.0
pip install tensorflow-gpu==1.5.0如果你不加 '==1.5.0',將默認(rèn)安裝最新版本(本人執(zhí)筆時(shí)是1.12.0)
安裝完成后,用下列指令測(cè)試tensorflow是否安裝成功。pip list你應(yīng)當(dāng)可以看到tensorflow-gpu 1.5.0在列表之中。但現(xiàn)在距離安裝完成還差一步之遙。
-
安裝 cuDNN
下載cuDNN的Ubuntu版本的Runtime安裝程序(.deb格式文件)。下載完成后,雙擊即可安裝。
現(xiàn)在,萬(wàn)事俱備,你可以用下面的python程序測(cè)試Tensorflow-gpu版本是否被成功安裝。
import tensorflow as tf sess = tf.Session() a = tf.constant(1) b = tf.constant(2) print(sess.run(a+b))Expected output
3If 3 is printed on your screen, congratulations! You are ready to go.
