天天看點

Ubuntu 16.04 上安裝 CUDA 9.0 詳細教程

https://blog.csdn.net/QLULIBIN/article/details/78714596

前言:

        本篇文章是基于安裝CUDA 9.0的經驗寫,CUDA9.0目前支援Ubuntu16.04和Ubuntu17.04兩個版本,如下圖所示(最下面的安裝方式我們選擇第一個,即runfile方式):

      大家可以先将CUDA檔案下載下傳下來,但是最好不要急于安裝,一定要先将NVIDIA給出官方指導手冊仔細看一下,然後再找幾篇好的部落格看一下,大緻了解一下CUDA的安裝過程,對安裝過程中可能出現的問題要大緻有一個了解,不到萬不得已不要重裝系統。

安裝建議:

1)去官網下載下傳CUDA的同時,一定要找份相應官方的安裝文檔仔細閱讀,盡可能按照它的步驟一步步走,不可偷懶。同時再找幾篇好的部落格作為參考,安裝之前做到胸有成竹。

2)在安裝之前一定要詳細檢查自己的電腦組態(單顯示卡還是雙顯示卡)、顯示卡的種類是否符合CUDA的安裝要求、系統是否滿足安裝要求。

3)安裝過程中每進行一項操作,都盡量去檢查一下該項操作是否操作成功。

安裝過程:

一、安裝、熟悉ubuntu16.04系統

安裝軟體之前最好對ubuntu的指令行有一些基本的了解,像sudo、cd、ls、nona、cat、chmod等等,這樣能夠在安裝過程中省去很多不必要的麻煩。(推薦大家去百度搜一下莫凡Python,他有關于ubuntu指令的視訊,每一集都很精煉,講的很好)

二、檢查自己的電腦環境是否具備安裝CUDA的條件

1) 驗證自己的電腦是否有一個可以支援CUDA的GPU

你可以電腦的配置資訊中找到顯示卡的具體型号,如果你是雙系統,在Windows下的裝置管理器中也可以查到顯示卡的詳細資訊;

你也可以在ubuntu的終端中輸入指令: $ lspci | grep -i nvidia ,會顯示出你的NVIDIA GPU版本資訊,不過不是很詳細。

我的顯示為(GeForceGT630M):

01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)

然後去CUDA的官網檢視自己的GPU版本是否在CUDA的支援清單中。

2) 驗證自己的Linux版本是否支援 CUDA(Ubuntu 16.04沒問題)

輸入指令:

$ uname -m && cat /etc/*release

結果顯示:

x86_64

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=16.04

......

3) 驗證系統是否安裝了gcc

在終端中輸入: $  gcc –v  

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609

若未安裝請使用下列指令進行安裝:

sudo apt-get  install  build-essential

ubuntu 安裝gcc

2018年03月26日 16:04:35 騡兒 閱讀數:17363

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/shenquanyue/article/details/79699466

一定要記得先update,不然找不到gcc

sudo apt-get update           
  • 1

然後輸入下述指令即可

sudo apt-get install gcc           

4) 驗證系統是否安裝了kernel header和 package development

a、檢視正在運作的系統核心版本:

在終端中輸入: $  uname –r

4.10.0-40-generic

b、在終端中輸入:$  sudo apt-get install linux-headers-$(uname -r)

可以安裝對應kernel版本的kernel header和package development

更新了 0 個軟體包,新安裝了 0 個軟體包,要解除安裝 0 個軟體包,有 4 個軟體包未被更新。

表示系統裡已經有了,不用重複安裝。

若以上各項驗證檢查均滿足要求,便可進行下面的正式安裝過程。如果沒有滿足要求的話,可以參考cuda的官方文檔,裡面有詳細的針對每個問題的解決方案。

三、選擇安裝方式

CUDA提供兩種安裝方式:package manager安裝和runfile安裝, package manager 安裝方式相對簡單一些,但是我在閱讀别人部落格的過程中發現選擇這種方式在安裝過程中問題可能多一點,失敗的機率較大。為了減少不必要的麻煩我選擇runfile安裝方式。

下載下傳cuda安裝包:cuda官網下載下傳,根據系統資訊選擇對應的版本,runfile安裝的話最後一項要選擇 runfile檔案。

下載下傳完後,用MD5 檢驗,如果序号不和,得重新下載下傳(由于當時沒有儲存,這裡我采用了别人的截圖,注意這裡的cuda版本号,人家采用的cuda_8.0)

輸入指令:$  md5sum cuda_9.0.176_linux.run

四、runfile安裝cuda

1) 禁用 nouveau驅動

終端中運作:$  lsmod | grep nouveau,如果有輸出則代表nouveau正在加載。需要我們手動禁掉nouveau。

Ubuntu的nouveau禁用方法:

a、在/etc/modprobe.d中建立檔案blacklist-nouveau.conf

輸入指令:$  sudo vi /etc/modprobe.d/blacklist-nouveau.conf                       (利用vi編輯器編輯和儲存檔案)

在檔案中輸入一下内容:

blacklist nouveau

options nouveau modeset=0

b、執行:

$ sudo update-initramfs –u

c、再執行:

$  lsmod | grep nouveau

若無内容輸出,則禁用成功,若仍有内容輸出,請檢查操作,并重複上述操作。

注:vi是Linux終端下或控制台下常用的編輯器,基本的操作方式為:vi /路徑/檔案名

例如:vi /etc/fstab表示顯示/etc/fstab檔案的内容。使用鍵盤上的Page Up和Page Down鍵可以上下翻頁;按下Insert鍵,可以見到視窗左下角有“Insert”字樣,表示目前為插入編輯狀态,這時從鍵盤輸入的内容将插入到光标位置;再按下Insert鍵,左下角将有“Replace”字樣,表示目前為替換編輯狀态,這時從鍵盤輸入的内容将替換光标位置的内容。編輯完内容後,按下Esc鍵,并輸入“:wq”,然後回車就可以儲存退出。

如果不想儲存而直接退出,則按下Esc鍵後,輸入“:q!”,然後回車即可。“wq”表示Write和Quit,即儲存退出;“q!”表示忽略修改強行退出。

以下操作建議手機拍照,建議把下載下傳的cuda_9.0.176_384.81_linux.run檔案重命名為cuda.run并移動到Home檔案夾下(為了安裝友善)

2) 重新開機電腦,進入登入界面的時候,不要登入進入桌面(否則可能會失敗,若不小心進入,請重新開機電腦),直接按Ctrl+Alt+F1進入文本模式(指令行界面),登入賬戶。

3) 輸入 $ sudo service lightdm stop 關閉圖形化界面

4) 切換到cuda安裝檔案的路徑:$  cd Home/

運作$ sudo sh cuda_7.5.18_linux.run

按照提示一步步操作

注:a、一定要按照提示)輸入相應字元,例如有的需要輸入accept,有的需要輸入yes;

                b、遇到提示是否安裝openGL ,選擇no(如果你的電腦跟我一樣是雙顯,且主顯是非NVIDIA的GPU在工作需要選擇no,否則可以yes),其他都選擇yes或者預設即可。(如果您的電腦是雙顯示卡且在這一步選擇了yes,那麼你極有可能安裝完CUDA之後,重新開機圖形化界面後遇到登入界面循環問題:輸入密碼後又跳回密碼輸入界面。

這是因為你的電腦是雙顯,而且用來顯示的那塊GPU不是NVIDIA,則OpenGL Libraries就不應該安裝,否則你正在使用的那塊GPU(非NVIDIA的GPU)的OpenGL Libraries會被覆寫,然後GUI就無法工作了。)

安裝成功後,會顯示installed,否則會顯示failed。

5) 輸入 $ sudo service lightdm start 重新啟動圖形化界面。

同時按住Alt + ctrl +F7,傳回到圖形化登入界面,輸入密碼登入。

如果能夠成功登入,則表示不會遇到循環登入的問題,基本說明CUDA的安裝成功了。

如果你遇到了重複登陸情況,不用急着重裝系統,官方教程上有提及,原因上一步的注中有提及,在安裝openGL時你可能不注意選擇了yes,請解除安裝cuda,然後重裝。

解除安裝:由于登陸進入不到圖形使用者界面(GUI),但我們可以進入到文本使用者界面(TUI)

在登陸界面狀态下,按Ctrl + Alt + f1,進入TUI

執行

$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

$ sudo /usr/bin/nvidia-uninstall

然後重新開機

$ sudo reboot

重新安裝.run   再次安裝時請一定留意,在提示是否安裝OpenGL時,你的是雙顯示卡應該選則n。

6) 重新開機電腦,檢查Device Node Verification。

$ ls /dev/nvidia*

可能出現a、b兩種結果,請對号入座。

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

a中的一個或兩個,但沒有/dev/nvidia-num,即檔案顯示不全。

不用着急也不用急着重裝系統(我在安裝時就是這種情況),官方指導中有詳細的解決方案,但是我的方法和官方稍微有些出入。

首先要添加一個啟動腳本(添加啟動腳本的方法大緻有兩種,我采用最直接的方法,另一種可以先建立一個檔案然後通過mv的方式移動到啟動檔案夾下,可自行百度)

$ sudo vi /etc/rc.local

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

#!/bin/sh -e

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

然後把下列内容除了#!/bin/bash外複制到其中,(before exit 0 )儲存退出。

#!/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

# 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

下次重新開機時,你應該能直接看到/dev目錄下的三個nvidia的檔案

輸入:$ ls /dev/nvidia*

結果顯示:/dev/nvidia0       /dev/nvidiactl       /dev/nvidia-uvm

成功!

7) 設定環境變量。

終端中輸入 $ sudo gedit /etc/profile

在打開的檔案末尾,添加以下兩行。

64位系統:

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

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\

                                                   ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

32位系統:

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\

儲存檔案,并重新開機。因為source /etc/profile是臨時生效,重新開機電腦才是永久生效。

這裡有點與官方安裝文檔稍有不同,需要說明:

官方文檔裡說隻需在終端中運作上述兩條export語句即可,但如果不将它們不寫入/etc/profile檔案的話,這樣的環境變量在你退出終端後就消失了,不起作用了,是以寫入才是永久的做法。

8) 重新開機電腦,檢查上述的環境變量是否設定成功。

a、 驗證驅動版本

敲入

$ cat /proc/driver/nvidia/version

結果顯示

NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.81 Sat Sep 2 02:43:11 PDT 2017

GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b、 驗證CUDA Toolkit

$ nvcc -V       會輸出CUDA的版本資訊

 如果是這樣的:

The program 'nvcc' is currently not installed. You can install it by typing:

sudo apt-get install nvidia-cuda-toolkit

可能是環境配置沒有成功,請重複上述步驟7)。

五、 嘗試編譯cuda提供的例子

1)打開終端輸入:$   cd /home/xxx/NVIDIA_CUDA-9.0_Samples        其中xxx是你自己的使用者名,通過指令cd進入NVIDIA_CUDA-9.0_Samples目錄。

然後終端輸入:$ make

系統就會自動進入到編譯過程,整個過程大概需要十幾到二十分鐘,請耐心等待。如果出現錯誤的話,系統會立即報錯停止。

第一次運作時可能會報錯,提示的錯誤資訊可能會是系統中沒有gcc,

解決辦法就是通過指令重新安裝gcc就行,在終端輸入:$ sudo apt-get install gcc 安裝完gcc後, 再make就正常了。

如果編譯成功,最後會顯示Finished building CUDA samples,如下圖所示。

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

編譯後的二進制檔案 預設存放在NVIDIA_CUDA-9.0_Samples/bin中。

接着在上一個終端中輸入 :$  cd /home/lxxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release       其中xxx是你自己的使用者名

然後在終端輸入 :$ ./deviceQuery  

結果如下圖所示:看到類似如下圖檔中的顯示,則代表CUDA安裝且配置成功,其中 Result = PASS代表成功,若失敗 Result = FAIL

3)最後再檢查一下系統和CUDA-Capable device的連接配接情況

終端輸入 : $ ./bandwidthTest

看到類似如下圖檔中的顯示,則代表成功

最後祝大家都能愉快安裝使用CUDA

Python爬蟲全棧教學,零基礎教你成程式設計大神

零基礎學爬蟲,你要掌握學習那些技能?

    weixin_38498050

    雨落心安: 這是我看到的最好的一篇回答,唯一安裝成功的一次,謝謝你。(2周前#14樓)

    echoamor

    echoamor: 部落客,安裝cuda第一步就顯示找不打cuda.run這個檔案,怎麼回事啊(3周前#13樓)

    weixin_42186404

    CirSQ: 感謝部落客!成功啦(1個月前#12樓)

    qq_39722119

    Aurelio-Sy: 按照你的步驟,/dev目錄下的三個nvidia的檔案 試了幾次都沒有怎麼辦?(2個月前#11樓)

    hampeter

    hampeter: 感謝部落客,第一次就成功!(3個月前#10樓)

    cow66

    nice肥牛: 66666成功了(4個月前#9樓)

    TantanPower

    DeepPower: 部落客的教程很給力,成功安裝。在文本行界面安裝時,遇到問題“/”主分區分少了, 後面重裝系統,給“/”多分了空間,成功安裝。(6個月前#8樓)

    qq_33614902

    33614902: 成功加1,點贊!(7個月前#7樓)

    hjq376247328

    deeebug: 感謝部落客,一次成功(7個月前#6樓)

    LN_IOS

    Coder_Nan: 謝謝樓主(7個月前#5樓)

    weixin_41490373

    weixin_41490373: 常感謝部落客,我在3月31日安裝的CUDA9.1,按照你的方法安裝成功了。

---------------------  

作者:QLULIBIN  

來源:CSDN  

原文:https://blog.csdn.net/QLULIBIN/article/details/78714596  

版權聲明:本文為部落客原創文章,轉載請附上博文連結!