1. 程式人生 > >筆記本雙顯示卡ubuntu16.04系統 cuda8.0的安裝和配置

筆記本雙顯示卡ubuntu16.04系統 cuda8.0的安裝和配置

1 CUDA安裝

1.1 安裝前的檢查

1.1.1 確認具備支援cuda的NVIDIA 顯示卡

輸入lspci | grep -i nvidia,確認計算機搭載Nvidia的獨立顯示卡,並且該型號支援CUDA. https://developer.nvidia.com/cuda-gpus站點上列舉了支援的GPU型號及其效能。

如上圖,本機安裝的是GT 635M顯示卡,下圖是該顯示卡支援的特性。

1.1.2 檢視作業系統版本

使用命令 uname -m && cat /etc/*release檢查linux發行版本,本機安裝的是64 bit-Ubuntu 16.04.2.

 

1.1.3 檢查gcc版本

輸入命令gcc –version,系統自帶的GCC編譯器版本是5.4.0.

 

1.2 從.run檔案安裝

本人使用runfile檔案安裝, 首先從https://developer.nvidia.com/cuda-downloads 下載 .run格式的安裝檔案,注意需要與作業系統版本相符。[CUDA_Quick_Start_Guide.pdf]

根據多次嘗試和失敗的教訓,CUDA安裝需要注意3點:1.停用Nouveau服務,否則不能安裝NVIDIA驅動;2.不要安裝opencl,否則無法登入使用者;3.不更新x-start配置檔案,否則具有雙顯示卡的筆記本會黑屏,預設不從自帶螢幕輸出影象。

1.2.1 關閉Nouveau服務

Nouveau是Ubuntu自帶的第三方開源N卡驅動,安裝NVIDIA官方驅動之前需要禁用Nouveau.

安裝指南中給出的方法如下:

1. 建立檔案/etc/modprobe.d/blacklist-nouveau.conf並加入以下內容:

blacklist nouveau

options nouveau modeset=0

2.重建核心initramfs:

$ sudo update-initramfs -u

但該方法並不一定能成功禁用Nouveau,如果失敗,可以嘗試增加以下步驟:

1. remove all nvidia packages ,skip this if your system is fresh installed 

sudo apt-get remove nvidia* && sudo apt autoremove

2. install some packages for build kernel:

sudo apt-get install dkms build-essential linux-headers-generic

3. now block and disable nouveau kernel driver:

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

Insert follow lines to the blacklist.conf:

blacklist nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias lbm-nouveau off

save and exit.

4. Disable the Kernel nouveau by typing the following commands(nouveau-kms.conf may not exist,it is ok):

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

5. build the new kernel by:

sudo update-initramfs -u

6. reboot 

確認下Nouveau已經被禁用,使用命令: lsmod | grep nouveau,如果沒有任何相關的返回結果,則說明已經禁用成功。

1.2.2 安裝CUDA

CUDA的安裝程式中包含了NVIDIA驅動,因此無需提前安裝驅動(單獨安裝顯示卡驅動也可以)。因為涉及到顯示卡驅動程式,安裝時首先要關閉圖形介面即x-windows服務。

輸入sudo service lightdm stop,然後Ctrl+Alt+F1進入命令列終端,定位到安裝檔案所在目錄,如果只有一個cuda開頭的檔案,可以用正則表示式表示,鍵入:

sudo sh cuda*.run

前文已經提到過,如果是intel+NVIDIA的筆記本,安裝時注意不要安裝OpenCL庫,也不要更新x-start配置檔案。

安裝完成後如上圖所示,啟動圖形介面程式,重啟。

sudo service lightdm start

Reboot

上圖中,安裝完成後顯示缺少libGLU、libx11等庫,進入圖形介面之後用apt安裝即可:

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

【http://blog.csdn.net/10km/article/details/61915535】

1.2.3 新增環境變數

設定系統變數和編譯時庫的路徑變數:

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

$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注意在shell視窗中執行這兩條命令,只在該視窗中生效。一勞永逸的方法是在/etc/profile中新增這兩行。這樣,重啟後應該就可以使用cuda的編譯器nvcc命令了。

1.3 Apt方式安裝cuda,單獨安裝驅動

如果十分不幸(比如我)的話,從.run檔案安裝完cuda後,在終端中輸入nvcc是提示找不到該程式的,問題可能出在環境變數上,新增之後只在當前終端中生效,關閉後又恢復原樣了。並且NVIDIA的驅動也會出現莫名其妙的問題,nvidia-setting開啟後說沒有使用該驅動。這個時候可以試試apt方式安裝cuda。

1.3.1 先裝驅動

在安裝cuda前,先裝好顯示卡驅動為佳。下載驅動安裝程式NVIDIA-Linux-x86_64-384.90.run.安裝前同意需要先禁用nouveau,關閉圖形介面(參見1.2.2),然後執行
sudo  NVIDIA* -no-x-check -no-nouveau-check -no-opengl-files
後面的引數是關閉x服務,禁用nouveau,不安裝opengl. 安裝完成後會詢問是否要更新xorn,選no. 如果安裝步驟出錯了,可以用nvidia-uninstall解除安裝後重新安裝。

驅動安裝正確之後,用nvidia-setting就可以開啟X server setting了。這裡還有一個坑,就是要儘量關閉bios的保護,例如secure boot、memory protect等。

1.3.2 使用apt安裝cuda-toolkit

很簡單,sudo apt-get install nvidia-cuda-toolkit

但版本是7.5, 並且沒有sample例程,如果需要的話要去別的地方找(https://developer.nvidia.com/cuda-code-samples這裡可以下載到)。好處是可以一鍵安裝所需的依賴包,並配置好變數,直接就能執行。

1.4 執行例程

如果在安裝時已經選擇了安裝samples,輸入以下命令可以執行一個nbody的例程,用於檢驗安裝是否正確。

$cuda-install-samples-8.0.sh ~

$cd ~/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody

$make

$./nbody

1.5 小結

CUDA自帶了NVIDIA的驅動,如果不能用,使用nvidia-uninstall命令解除安裝之後,單獨安裝驅動。驅動安裝時要先禁用Nouveau,筆記本雙顯示卡不能安裝Opengl,不要更新xorg.conf配置,不需要安裝Bumblebee軟體,否則獨立顯示卡不能啟動。這短短几十個字是筆者花費30個小時嘗試安裝配置的總結。

/*-------------------

2. Reboot into runlevel 3 by temporarily adding the number "3" and the word

"nomodeset" to the end of the system's kernel boot parameters.

3. Run the installer silently to install with the default selections (implies acceptance of

the EULA):

sudo sh cuda_<version>_linux.run --silent

4. Create an xorg.conf file to use the NVIDIA GPU for display:

$ sudo nvidia-xconfig

5. Reboot the system to load the graphical interface.

6. Set up the development environment by modifying the PATH and

LD_LIBRARY_PATH variables:

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

$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

7. Install a writable copy of the samples then build and run the nbody sample:

$cuda-install-samples-8.0.sh ~

$cd ~/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody

$make

$./nbody

-----------------------------*/

同樣要關閉x-windows服務,在命令列下安裝

sudo service lightdm stop

sudo ./cuda_8.0.61_375.26_linux.run

安裝時選擇不裝opencl.

最新版本的cuda中包含了NVIDIA 的驅動,所以只裝這一個就行了。

2 開發環境

codeblocks+nvcc

3 環境配置

codeblock配置nvcc編譯器,參見:

http://blog.csdn.net/cparent/article/details/50607456