一:安裝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