天天看點

ubuntu14.04+cuda8.0配置

一:安裝cuda

1:參考:http://blog.csdn.net/ymshan92/article/details/53529389

    http://blog.csdn.NET/tornadozou/article/details/51322576

http://blog.csdn.net/masa_fish/article/details/51882183

2:判斷安裝環境:根據官方提供的cuda配置pdf檢測GPU,系統等資訊。

3:下載下傳安裝包: 這裡的CUDA安裝實際是适用于MXnet等多種深度學習軟體包的。通過NVIDIA官方連結下載下傳安裝CUDA驅動和工具包,在 https://developer.nvidia.com/cuda-downloads 選擇對應的安裝方式。

4:安裝cuda前安裝些必要的庫:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev  

5: 删除已有nvidia,拉黑名單

sudo apt-get remove --purge nvidia*    

sudo nano /etc/modprobe.d/blacklist.conf

6:  blacklist.conf加入

    blacklist amd76x_edac    

    blacklist vga16fb    

    blacklist nouveau    

    blacklist rivafb    

    blacklist nvidiafb    

    blacklist rivatv    

注:這種方式也可能不能徹底禁用nouveau,在此基礎上可以移除以下檔案,以防萬一,其中xxxxxx為你的版本檔案,自己根據路徑檢視一下就可以了/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau/nouveau.ko

/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org第二位檔案一般是隐藏的具體操作

cd/lib/modules/xxxxxxxx/kernel/drivers/gpu/drm/nouveau

sudo rm -rf nouveau.ko

sudo rm -rf nouveau.ko.org

再更新

 sudo update-initramfs –u

更新完畢

此時終端輸入指令檢查:

  lsmod | grep nouveau  

 如果沒有輸出則禁用成功 ,如果還有輸出,不要怕 終端輸入指令:  sudo reboot 重新開機電腦。重新開機電腦後再次在終端輸入指令:lsmod | grep nouveau ; 如果沒有輸出則禁用成功。如果還有,則禁用失敗。

7:重新開機下,按Ctrl+Alt+F1, 登陸後安裝

sudo service lightdm stop

sudo sh cuda_8.0.61_375.26_linux.run

按照提示一步一步來當提示到是否需要安裝openGL時選擇n。其他選擇預設y。

最後能看到

  cuda的驅動、sample、tookit已經安裝成功。

8:重新啟動圖形化界面:

sudo service lightdm start

這時會發現螢幕分辨率變為4:3(等配置完path在處理)

9:Path 配置:

終端輸入指令:

 sudo gedit etc/profile

在文本中添加

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

  export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/lib

儲存。使之生效指令:

source /etc/profile   %(此處顯示無法執行該指令,無解決辦法,暫時跳過)

10:解決螢幕分辨率4:3的問題

退出圖形界面,按ctrl+alt+f1進入指令行終端

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

sudo touch /etc/X11/xorg.conf

(稍後安裝完prime再重新開機)

9:處理Nvidia和Intel雙顯示卡下ubuntu登入循環問題:

在雙顯示卡下,cuda7.5安裝完成後,重新開機時很可能會遇到登入循環的問題,即正确輸入帳号密碼的情況下無法登入到圖形視窗,始終卡這裡采用nvidia-prime手動切換工作顯示卡,Ctrl+Alt+F1, 登陸後安裝

  sudo apt-get install nvidia-prime

為了友善切換,再安裝一個名為prime-indicator的軟體,可以不用輸入指令而在GPU間切換的功能,并且可以顯示目前顯示卡

sudo add-apt-repository ppa:nilarimogard/webupd8

sudo apt-get update

sudo apt-get install prime-indicator

重新開機後登入選擇NVIDIA顯示卡即可(螢幕右上角)(此時發現NVIDIA setting報錯,沒有顯示卡切換項You do not appear to be using the NVIDIA X driver.  Please edit your X configuration file (just run `nvidia-xconfig` as root), and restart the X server.)

暫時跳過

10:驗證是否安裝完成:

1)檢查 NVIDIA Driver是否安裝成功

 cat /proc/driver/nvidia/version

會輸出NVIDIADriver的版本号

2)檢查 CUDA Toolkit是否安裝成功

終端輸入 : $nvcc -V 會輸出CUDA的版本資訊

c) 嘗試編譯cuda提供的例子

切換到例子存放的路徑,預設路徑是~/NVIDIA_CUDA-8.0_Samples(即 /home/seujss/NVIDIA_CUDA-8.0_Samples, seujss是你自己的使用者名)

然後終端輸入:

$make

如果出現錯誤的話,則會立即報錯停止,否則會開始進入編譯階段。我的第一次運作時出現了報錯,提示的錯誤資訊是系統中沒有gcc,然後在終端運作

 $sudo apt-get install gcc

安裝完gcc後再make就正常了整個編譯的時間持續比較長,耐心等待,大概十幾分鐘是需要的。

d)運作編譯生成的二進制檔案。

編譯後的二進制檔案

預設存放在~/NVIDIA_CUDA-8.0_Samples/bin中。

(NOTE一下:很多裝caffe的使用者都是再根目錄下的cuda檔案夾中build sample ,根目錄的為/usr/local/cuda/sample,再該檔案夾用指令 sudo make all -j4,此時

生成的可執行檔案夾為/usr/local/cuda/sample/bin/x86_64/Linux/release)

切換路徑 : cd

~/NVIDIA_CUDA-8.0_Samples/bin 終端輸入:$./deviceQuery

看到類似如下圖檔中的顯示,則代表CUDA安裝且配置成功(congratulation!!)

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GT 630M"

  CUDA Driver Version / Runtime Version          8.0 / 8.0

  CUDA Capability Major/Minor version number:    2.1

  Total amount of global memory:                 964 MBytes (1010696192 bytes)

  ( 2) Multiprocessors, ( 48) CUDA Cores/MP:     96 CUDA Cores

  GPU Max Clock rate:                            950 MHz (0.95 GHz)

  Memory Clock rate:                             900 Mhz

  Memory Bus Width:                              128-bit

  L2 Cache Size:                                 131072 bytes

  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048)

  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers

  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers

  Total amount of constant memory:               65536 bytes

  Total amount of shared memory per block:       49152 bytes

  Total number of registers available per block: 32768

  Warp size:                                     32

  Maximum number of threads per multiprocessor:  1536

  Maximum number of threads per block:           1024

  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)

  Max dimension size of a grid size    (x,y,z): (65535, 65535, 65535)

  Maximum memory pitch:                          2147483647 bytes

  Texture alignment:                             512 bytes

  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)

  Run time limit on kernels:                     No

  Integrated GPU sharing Host Memory:            No

  Support host page-locked memory mapping:       Yes

  Alignment requirement for Surfaces:            Yes

  Device has ECC support:                        Disabled

  Device supports Unified Addressing (UVA):      Yes

  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0

  Compute Mode:

     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GT 630M

Result = PASS