Ubuntu18.04下搭建TensorFlow-GPU環境詳細過程
網上關於Ubuntu16.04及14.04安裝cuda、cudnn等的教程較多,Ubuntu18.04的介紹很少。本文主要介紹Ubuntu18.04下如何安裝英偉達驅動以及cuda、cudnn和Anaconda等程式設計環境。
博主硬體為ThinkPadT450(GeForce 940M顯示卡),雙固態硬碟雙系統(Ubuntu和Windows10),具體怎麼安裝百度教程很多,這裡就不做介紹了。
讓我們進入正題:
1.安裝顯示卡驅動
- 檢查自己電腦的gpu是否CUDA-capable
[email protected]:~$ lspci | grep -i nvidia 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940M] (rev a2)
- 禁用nouveau
[email protected]:~$ lsmod | grep nouveau
如果有輸出說明nouveau正在載入
開啟禁用列表
[email protected]:~$ sudo gedit /etc/modprobe.d/blacklist.conf
在開啟文字的最後一行新增:
blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv
執行以下命令來禁止核心中nouveau
:~$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
更新,重啟
[email protected]:~$ update-initramfs -u
[email protected]:~$ sudo reboot
再次檢視是否禁用nouveau
[email protected]:~$ lsmod | grep nouveau
以上步驟可能是Ubuntu18.04的非必要操作,如果是單顯示卡主機,禁用nouveau驅動重啟後可能會導致無法進入Ubuntu影象介面,可以按Ctrl+Alt+F3,Ubuntu18.04好像是F3,16.04是F1進入文字編輯介面安裝NVIDI顯示卡驅動,可以參考
實際上,博主在執行完以上步驟後,並沒有重啟電腦,直接執行以下操作,替換為英偉達驅動即完成了顯示卡的更新。
重點:
1.首先刪除舊的NVIDIA驅動:
[email protected]:~$ sudo apt-get purge nvidia-*
2.新增Graphic Drivers PPA
[email protected]:~$ sudo add-apt-repository ppa:graphics-drivers/ppa
[email protected]:~$ sudo apt-get update
3.尋找驅動版本
[email protected]:~$ ubuntu-drivers devices
4.安裝好 最新的驅動
[email protected]:~$ sudo apt-get install nvidia-396
5.重啟
[email protected]:~$ sudo reboot
6.掛載nvidia驅動
[email protected]:~$ nvidia modprobe nvidia
7.檢視驅動的安裝狀態
[email protected]:~$ sudo nvidia-smi
8.開啟nvidi驅動設定程式
[email protected]:~$ sudo nvidia-settings
9.在終端輸入命令,實時檢視GPU的使用情況:
[email protected]:~$watch -n 1 nvidia-smi
10.到Ubuntu18.04系統的“軟體和更新” 選擇相應的附加驅動
2.安裝cuda、cudnn
博主嘗試安裝過9.1版和10.0版的cuda和cudnn,都沒有成功。9.1版的可能是因為cudnn用的是9.0的導致沒有編譯成功。後來試用9.0版本編譯成功,如果想要嘗試9.0外的其他版本,可以參考連結
參考下載連結下載9.0版本的cuda和cudnn,博主下載的是16.04的本地執行檔案runfile(local),需要下載一個執行程式和相應的補丁,所有檔案如下:
cuda_9.0.176_384.81_linux.run
cuda_9.0.176.1_linux.run
cuda_9.0.176.2_linux.run
cuda_9.0.176.3_linux.run
cuda_9.0.176.4_linux.run
cudnn下載cudnn7.05 for 9.0,如果是9.1的cuda則需要選擇for9.1的
下載完所有檔案就可以開始安裝了,因為CUDA 9.0僅支援GCC 6.0及以下版本,Ubuntu18.04gcc,g++版本較高,所有先要替換成低版本的gcc,g++:
1.安裝4.8版本
[email protected]:~$ sudo apt-get install gcc-4.8
[email protected]:~$ sudo apt-get install g++-4.8
2.cd到/usr/bin目錄下,將它改為連結到gcc-4.8
[email protected]:~$ ls -l gcc*
[email protected]:~$ sudo mv gcc gcc.bak
[email protected]:~$ sudo ln -s gcc-4.8 gcc
對g++進行同樣的操作
[email protected]:~$ ls -l g++* [email protected]:~$ sudo mv g++ g++.bak [email protected]:~$ sudo ln -s g++-4.8 g++
檢視版本:
[email protected]:~$ gcc --version [email protected]:~$ g++ --version
3.安裝cuda9.0
[email protected]:~$ sudo sh cuda_9.0.176_384.81_linux.run
[email protected]:~$ sudo cuda_9.0.176.1_linux.run
[email protected]:~$ sudo cuda_9.0.176.2_linux.run
[email protected]:~$ sudo cuda_9.0.176.3_linux.run
[email protected]:~$ sudo cuda_9.0.176.4_linux.run
一直按回車鍵安裝,碰到是否安裝Driver可以選擇否(因為之前已經安裝),Samples也可以不安裝
4.新增環境變數,修改配置
[email protected]:~$ sudo gedit ~/.bashrc
export CUDA_HOME=/usr/local/cuda-9.0 export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin:${PATH}
5.設定環境變數和動態連結庫,在命令列輸入:
[email protected]:~$ sudo gedit /etc/profile
export PATH=/usr/local/cuda/bin:$PATH
[email protected]:~$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
6.修改後儲存配置:(會導致 /usr/local/cuda/lib64/libcudnn.so.7 不是符號連結?)
[email protected]:~$ sudo ldconfig
[email protected]:~$ ln -sf /usr/local/cuda-9.0/lib64/libcudnn.so.7.0.5 /usr/local/cuda-9.0/lib64/libcudnn.so.7
[email protected]:~$ sudo ldconfig
7.安裝cudnn
解壓cudnn-9.0-linux-x64-v7.tgz
把相應檔案複製到/usr/local/cuda/ CUDA安裝資料夾裡,
[email protected]:~$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
[email protected]:~$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
[email protected]:~$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
至此,就可以安裝Anaconda、pycharm、tensorflow等等工具了
3.安裝Anaconda
下載Anaconda3-5.2.0 Linux版,cd到檔案路徑
[email protected]:~$ bash Anaconda3-5.2.0-Linux-x86_64.sh -b