Ubuntu 14.04搭建GPU版本的Tensorflow環境(2)

Ubuntu 14.04搭建GPU版本的Tensorflow環境(2)

本文續 。

Device Node Verification

執行

$ ls /dev/nvidia*

可能出現a), b), c),d)三種結果,請對號入座。

a) 若結果顯示

/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

或顯示出類似的信息,應該有三個(包含一個類似/dev/nvidia-nvm的),則安裝成功

b)如果運氣有點背,結果是這樣的

ls: cannot access /dev/nvidia*: No such file or directory

或是這樣的,只出現

/dev/nvidia0 /dev/nvidiactl

中的一個或兩個,但沒有/dev/nvidia-num,我安裝的時候是這種情況

把下面的.sh文件隨便命個名(我命名為Nka.sh)

#!/bin/bash/sbin/modprobe nvidiaif [ "$?" -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 255else exit 1fi/sbin/modprobe nvidia-uvmif [ "$?" -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 0else exit 1fi

然後執行

$ sudo chmod +x nka.sh$ sudo ./nka.sh$ ls /dev/nvidia*/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

成功!

1, 這種做不太友好,我的意思是,當下次重啟電腦時,你使用ls /dev/nvidia*指令時,你是看不到那三個nvidia的文件了。所以你又得手動執行

sudo ./Nka.sh指令了,是不是很煩!其實上面的.sh文件是startup scipt,也就是啟動腳本。顧名思義,就是在系統啟動時,自動加載的。哈,這麼棒的功能就是我們想要的。

2, 添加啟動腳本的方法大致有兩種,我就此介紹一種最傻瓜化的方法。

$ sudo vi /etc/rc.local

如果你是第一次打開這個文件,它應該是空的(除了一行又一行的#註釋項外)。這文件的第一行是

#!/bin/sh -e

把-e去掉(這步很重要,否則它不會加載這文本的內容)

然後把Nka.sh的內容除了#!/bin/bash外複製到其中,(before

exit 0 )保存退出。

下次重啟時,你應該能直接看到/dev目錄下的三個nvidia的文件

$ ls /dev/nvidia*/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

c) 如果人品實在不好,結果是這樣的

modprobe: ERROR: could not insert 'nvidia_uvm': Operation not permitted

當出現這種情況時,可能是驅動打起架來了。

執行

$ sudo apt-get autoremove --purge nvidia-* #把nvidia驅動清個乾乾淨淨$ sudo reboot #一定記得重啟,不然你會後悔的!

然後

$ sudo ./Nka.sh$ ls /dev/nvidia*

這時,應該可以見到

/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm

d) 未知,有點悲傷的告訴你,少年,我只能幫到這了,建議網上另尋方案,或重裝.run。Gook Luck!

環境的配置

打開系統配置文件

$ sudo vi /etc/profile

在文件最後添加

export PATH=/usr/local/cuda-8.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

保存退出

執行

$ source /etc/profile

讓文件立即生效。

最後執行

sudo apt-get install libcupti-dev

至此cuda 8.0安裝完畢。

驗證安裝

執行

$ cat /proc/driver/nvidia/version

結果顯示

NVRM version: NVIDIA UNIX x86_64 Kernel Module 361.77 Sun Jul 17 21:18:18 PDT 2016GCC version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

執行

$ nvcc -V

結果顯示

nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2016 NVIDIA CorporationBuilt on Wed_May__4_21:01:56_CDT_2016Cuda compilation tools, release 8.0, V8.0.26

下載 cuDNN V6.0 庫文件並添加到cuda-8.0庫

由於cuda-8.0支持的最新的tensorflow版本是tensorflow 1.5,tensorflow 1.5需要cuDNN 6.0的版本。

到官網下載cuDNN:https://developer.nvidia.com/cudnn,選擇對應的library for linux的版本(需要先註冊,才能下載)。

解壓並將內容copy到/usr/local/cuda-8.0/include和lib64目錄中:

sudo tar xvzf cudnn-8.0-linux-x64-v5.1.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64

sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

安裝Tensorflow

ubuntu下安裝tensorflow參見文章 。安裝的大體流程類似,由於需要安裝歷史版本的tensorflow,通過

(tensorflow)$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.5.1-cp34-cp34m-linux_x86_64.whl

安裝GPU版本的TensorFlow V1.5.

測試Tensorflow

Enter the following short program inside the python interactive shell:

# Pythonimport tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))

If the system outputs the following, then you are ready to begin writing TensorFlow programs:

Hello, TensorFlow!


分享到:


相關文章: