1. 如何安裝CUDA
PRE-INSTALLATION ACTIONS 安裝前准備
1.1.Verify You Have a CUDA-Capable GPU
在終端中輸入: $ lspci | grep -i nvidia ,會顯示自己的NVIDIA GPU版本信息
去CUDA的官網http://developer.nvidia.com/cuda-gpus查看自己的GPU版本是否在CUDA的支持列表中
1.2.Verify You Have a Supported Version of linux 檢查自己的linux版本是否支持,我安裝的是ubuntu14.04版本的,這個就沒有問題
在終端中輸入: $ uname -m && cat /etc/*release
終端顯示結果如下所示:
1.3. Verify the System Has gcc Installed
在終端中輸入: $ gcc --version
1.4. Verify the System has the Correct Kernel Headers and Development Packages Installed
在終端中輸入: $ uname –r 可以查看自己的kernel版本信息
在終端中輸入:$ sudo apt-get install linux-headers-$(uname -r)
可以安裝對應kernel版本的kernel header和package development
這四個小步驟我都比較順利,安裝好ubuntu後這些都裝好了,如果在某一步中有問題,可以參照官方文檔進行解決。
runfile安裝cuda 下載鏈接https://developer.nvidia.com/cuda-downloads
2.1.禁用 nouveau
終端中運行:$ lsmod | grep nouveau,如果有輸出則代表nouveau正在載入。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中創建文件blacklist-nouveau.conf,在文件中輸入以下兩行內容:
blacklist nouveau
options nouveau modeset=0
在終端中輸入:$ sudo update-initramfs –u
設置完畢可以再次運行
$ lsmod | grep nouveau 檢查是否禁用成功
如果運行後沒有任何輸出,則代表禁用成功(如果還有輸出,表示沒有禁用成功,不過也不要擔心,可以重啟電腦,再次運行該命令一般情況下會顯示禁用成功)。
2.2.重啟電腦,到達登錄界面時,alt+ctrl+f1,進入text mode,登錄賬戶
2.3.在text mode中輸入
$ sudo service lightdm stop 關閉圖形化界面
2.4.切換到cuda安裝文件的路徑
運行$ sudo sh cuda_7.5.18_linux.run
一般下載好cuda安裝包後直接放在home目錄下,就可以按照上面的代碼運行了,建議這么做。
遇到提示是否安裝openGL ,選擇no(如果你的電腦跟我一樣是雙顯,且主顯是非NVIDIA的GPU需要選擇no,否則可以選擇yes)。其他都選擇yes或者默認安裝成功後,會顯示installed,否則會顯示failed。
2.5. 輸入 $ sudo service lightdm start 重新啟動圖形化界面。
Alt + ctrl +F7,返回到圖形化登錄界面,輸入密碼登錄。
如果能夠成功登錄,則表示不會遇到循環登錄的問題,基本說明CUDA的安裝成功了。
2.6. 重啟電腦。檢查Device Node Verification。
檢查路徑~/dev下 有無存在名為nvidia*(以nvidia開頭)的多個文件(device files)
如果沒有的話,可以參考官方文檔里的指導步驟,進行添加。
添加過程:
a)在home下創建一個文檔,命名位modprobe,不要後綴,文檔的內容如下:
#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -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 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -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 0
else
exit 1
fi
b)將該文件復制到/etc/init.d目錄下
終端輸入: $ sudo chmod 755 /etc/init.d/modprobe
d)執行如下命令將腳本放到啟動腳本中去。
終端輸入: $ cd /etc/init.d
$ sudo update-rc.d modprobe defaults 95
注意:數字95其實可以隨便設置的。
e)關機然後重新啟動,去~/dev下面查看,不出意外此時應該有nvidia*系類文件了。
對於2.6的說明:很有必要說一下不管怎麼搞我的nvidia*文件總是出現不了,所以我放棄,不過好像並沒有太大的影響。這一點根據情況大家自己試試吧。
2.7. 設置環境變數。
終端中輸入 $ sudo gedit /etc/profile
在打開的文件末尾,添加以下兩行:
export PATH=/usr/local/cuda-7.5/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH
2.8. 重啟電腦,檢查上述的環境變數是否設置成功。
終端中輸入 : $ env
在輸出的環境變數中檢查有無上述 設置的變數,如果有則代表設置成功。
3. 檢查cuda是否安裝成功。
3.1.檢查 NVIDIA Driver是否安裝成功
終端輸入 :$ cat /proc/driver/nvidia/version 會輸出NVIDIA Driver的版本號
3.2檢查 CUDA Toolkit是否安裝成功
終端輸入 : $ nvcc –V 會輸出CUDA的版本信息
3.3嘗試編譯cuda提供的例子
切換到例子存放的路徑,默認路徑是 ~/NVIDIA_CUDA-7.5_Samples
終端輸入:$ make
注意:這里的make操作是將Samples文件夾下所有的demo都編譯了一遍,所以比較耗時,如果僅僅想測試某個例子,可以進入相應的文件夾去編譯即可。
如果出現錯誤的話,則會立即報錯停止,否則會開始進入編譯階段。
注意:我第一次運行的時候就報錯了,錯誤是缺少一些依賴庫,一般情況下也就是這個問題,按照如下方式安裝就好,其實也沒必要都安裝,不過安裝上也不會報錯:
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install build-essential
$ sudo apt-get install libx11-dev
$ sudo apt-get install libxmu-dev
$ sudo apt-get install libxi-dev
$ sudo apt-get install ibgl1-mesa-glx
$ sudo apt-get install llibglu1-mesa
$ sudo apt-get install libglu1-mesa-dev
安裝好後,在終端輸入: $ make
成功後,NVIDIA_CUDA-7.5_Samples文件夾下會出現一個bin文件夾。運行編譯生成的二進制文件。
編譯後的二進制文件 默認存放在~/NVIDIA_CUDA-7.5_Samples/bin中。
2. 如何查看ubuntu裝了cuda
1、在英偉達的官網上下載對應系統版本的cuda5.5工具包,我的筆記本是32位的,下載的包是cuda_5.5.22_linux_32.run,當然下載deb包也可以,deb包可雙擊安裝。推薦使用run包。
2、檢查自己的系統是否符合安裝條件,這一點很重要,我開始沒有檢測GCC,導致後面幾次安裝失敗。命令$lspci | grep -i nvidia ,檢測電腦是否安裝NVIDIA顯卡,命令$gcc --version,檢測GCC版本,注意:CUDA5.5隻支持GCC4.6版本,如果顯示的不是下圖所示,則需要重新將GCC鏈接。同時安裝頭文件和編譯環境$sudo apt-get install linux-headers-$(uname -r) build-essential
3、gcc版本是4.6的李嫌跳過此步。如果gcc版本不是4.6的,則需要將GCC重新鏈接,在目錄/usr/bin下,只需兩個命令即可完成重新鏈接。
$sudo mv gcc gcc.bak
$sudo ln -s gcc-4.6 gcc
4、刪除之前的Ubuntu nvidia驅動包,$sudo apt-get –purge remove nvidia*,並將開源驅動nouveau屏蔽掉,使用命令含擾清$sudo vim /etc/modprobe.d/blacklist.conf,添加blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv。
5、關閉圖形環境,$sudo stop lightdm,按Ctrl+Alt+F1,打開一個終端,登錄。進入下載的Ubuntu nvidia驅動安裝文件所在目錄,$sudo sh ./cuda_5.5.22_linux_32.run命令進行安裝。如果遇到failed,不用著急,打開安裝log,排查問題,warning不用管,看ERROR。
6、安談前裝完成後,需要重啟。此時電腦清晰多了,說明安裝成功。 從事GPU開發的我們還需要裝上cuda和openCL庫的支持:$sudo apt-get install nvidia-current-dev。
注意事項
ubuntu不需要重新編譯內核,記得centos和red hat需要,命令也簡單:$sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)