寫在前面:
總體上我們的Nvidia GPU的驅(qū)動安裝分為下面四步操作:
一.環(huán)境準(zhǔn)備
二.cuda安裝
三.cudnn安裝
四.驗證
本文所用環(huán)境信息描述:
os: ubuntu 14.04
gpu: Nvidia Tesla K80
好, 下面開始安裝操作.?
一. 環(huán)境準(zhǔn)備(預(yù)配置)
提前安裝 gcc , make , g++
apt-get install gcc make g++
1许蓖、環(huán)境確認(rèn)
由于tensorflow必須依賴cuda才能使用GPU資源屯换,所以我們首先需要查看系統(tǒng)的顯卡是否支持cuda功能:
$ lspci | grep -i nvidia
只有nvidia顯卡的特定型號才能支持cuda功能。接下來檢測系統(tǒng)的版本號
$ uname -m && cat /etc/*release
不同的系統(tǒng)對應(yīng)不同的cuda安裝包。接下來檢測GCC是否已經(jīng)被安裝 :
$ gcc –version
如果已經(jīng)安裝兼耀,則可以正常輸出版本信息倦踢。接下來安裝內(nèi)核頭文件 磁浇。大部分ubuntu系統(tǒng)內(nèi)核頭文件都已經(jīng)被事先安裝斋陪,但是有可能出現(xiàn)內(nèi)核頭文件的版本和內(nèi)核版本不匹配的情形,而如果不一致可能對cuda的使用帶來一定的隱患置吓,所以需要把內(nèi)核頭文件替換為和內(nèi)核版本相匹配的版本:
$ sudo apt-get install linux-headers-$(uname -r)
如果頭文件已經(jīng)是最新版本无虚,命令行會顯示已經(jīng)是最新版本,無需安裝衍锚。接下來檢測系統(tǒng)的驅(qū)動友题。對于原裝的linux系統(tǒng),默認(rèn)的顯卡驅(qū)動往往是自帶的nouveau驅(qū)動戴质。這是一個開源的驅(qū)動程序度宦,是為nvidia顯卡編寫踢匣,但是由于不兼容cuda技術(shù),所以在nouveau驅(qū)動的基礎(chǔ)上我們無法安裝cuda斗埂。我們的第一步工作就是禁用nouveau驅(qū)動符糊,安裝NVIDIA官方提供的顯卡驅(qū)動。
首先我們檢測系統(tǒng)中是否有nouveau模塊被載入呛凶。
$ lsmod | grep nouveau
如果有結(jié)果輸出,說明nouveau驅(qū)動已經(jīng)在運行行贪,這時候我們需要將其禁用并安裝官方所提供的驅(qū)動漾稀。modprobe.d文件夾中包含有內(nèi)核模塊的配置參數(shù),我們新建一個文件夾建瘫,來阻礙nouveau模塊加載崭捍。具體步驟如下:
新建blacklist-nouveau.conf:
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
加入如下內(nèi)容:
blacklist nouveau
options nouveau modeset=0
保存退出,然后更新initramfs:
$ sudo update-initramfs -u
接下來我們重啟電腦啰脚,在重啟之后檢測系統(tǒng)內(nèi)核中的nouveau模塊:
$ lsmod | grep nouveau
如果檢測不到殷蛇,那就說明禁用成功了,接下來我們可以進行下一步工作了橄浓。
二. cuda安裝
接下來的工作有兩種方式可以完成粒梦。其中一種是顯卡驅(qū)動和cuda工具箱一并自動化安裝,這種方法最簡單荸实。首先在官網(wǎng)下載最新.run版本匀们。
下載完后,用MD5 檢驗:
$ md5sum cuda_8.0.27_linux.run
這條指令會讓命令行輸出一床數(shù)字准给,這是下載文件的MD5碼泄朴,需要和官網(wǎng)去匹配,如果匹配不正確露氮,說明可能在下載過程中出現(xiàn)了損壞現(xiàn)象祖灰,需要重新下載。
在MD5碼匹配完成后畔规,我們可以直接運行安裝包:
$ sudo sh? cuda_8.0.61_375.26_linux-run
然后按照命令行提示局扶,按照默認(rèn)安裝設(shè)置。自動安裝完成后油讯,我們還需要手動設(shè)置環(huán)境變量详民,利用vim編輯:
$ sudo vim /etc/profile
輸入:
export PATH=/usr/local/cuda-8.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
為了讓文件立即生效,執(zhí)行:
$ source /etc/profile
這時候cuda8.0徹底安裝完畢了陌兑。但是整個工作還沒有完成沈跨,我們還需要對其進行測試,只有測試通過了兔综,才能開始安裝tensorflow饿凛。由于驅(qū)動和cuda工具箱是一起安裝的狞玛,所以我們需要確認(rèn)驅(qū)動已經(jīng)正確安裝,檢驗驅(qū)動版本:
$ cat /proc/driver/nvidia/version
如果能夠正確顯示涧窒,說明已經(jīng)正確安裝心肪。接下來,檢測cuda工具箱的安裝纠吴,首先看是否可以檢測到其版本:
$ nvcc -V
我們希望看到版本號能夠正常顯示硬鞍。但是如果顯示
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
那有可能是環(huán)境變量設(shè)置錯誤,需要重新設(shè)置環(huán)境變量戴已。
接下來我們可以進行樣本編譯測試了固该。由于這個步驟需要花費更長時間,所以應(yīng)該在以上測試都正確顯示的基礎(chǔ)上糖儡,如果以上測試出現(xiàn)問題伐坏,則需要根據(jù)提示尋找解決方法。
這時候握联,在用戶的主目錄~下會多出一個名為NVIDIA_CUDA-8.0_Samples的文件夾桦沉,我們進入這個文件夾:
$? cd ~/NVIDIA_CUDA-8.0_Samples
然后輸入:
$? make
接下來需要等待十幾到二十分鐘,在完成后金闽,進入文件夾~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
$? cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
執(zhí)行:
$ ./deviceQuery
結(jié)果顯示:
最后一行顯示Result=PASS纯露,如果失敗則顯示 Result = FAIL
執(zhí)行nvidia-smi命令也可以驗證驅(qū)動安裝的有效性:
root@10-19-69-124:/home/ubuntu# nvidia-smi
Wed Aug? 2 13:59:27 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66? ? ? ? ? ? ? ? Driver Version: 375.66? ? ? ? ? ? ? ? ? ? |
|-------------------------------+----------------------+----------------------+
| GPU? Name? ? ? ? Persistence-M| Bus-Id? ? ? ? Disp.A | Volatile Uncorr. ECC |
| Fan? Temp? Perf? Pwr:Usage/Cap|? ? ? ? Memory-Usage | GPU-Util? Compute M. |
|===============================+======================+======================|
|? 0? Tesla K80? ? ? ? ? Off? | 0000:00:08.0? ? Off |? ? ? ? ? ? ? ? ? ? 0 |
| N/A? 33C? ? P0? ? 73W / 149W |? ? ? 0MiB / 11439MiB |? ? 100%? ? ? Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? GPU Memory |
|? GPU? ? ? PID? Type? Process name? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Usage? ? ? |
|=============================================================================|
|? No running processes found? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+-----------------------------------------------------------------------------+
三. cudnn安裝
在cuda工具箱安裝完成后,我們可以接著安裝cudnn了呐矾。
cudnn可以在其官網(wǎng)下載苔埋。但是這里需要注意的是,往往需要登錄才能下載蜒犯。在下載完成后组橄,將其解壓并復(fù)制到以下兩個文件夾中
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
cd cuda
sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo cp ./lib64/libcudnn* /usr/local/cuda/lib64/
至此,cudnn安裝完畢后罚随。
四. 驗證
確認(rèn)顯卡驅(qū)動安裝有效:
ubuntu@10-19-69-124:~$nvidia-smi
Tue Jul 25 18:19:14 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.20? ? ? ? ? ? ? ? Driver Version: 375.20? ? ? ? ? ? ? ? ? ? |
|-------------------------------+----------------------+----------------------+
| GPU? Name? ? ? ? Persistence-M| Bus-Id? ? ? ? Disp.A | Volatile Uncorr. ECC |
| Fan? Temp? Perf? Pwr:Usage/Cap|? ? ? ? Memory-Usage | GPU-Util? Compute M. |
|===============================+======================+======================|
|? 0? Tesla K80? ? ? ? ? Off? | 0000:00:08.0? ? Off |? ? ? ? ? ? ? ? ? ? 0 |
| N/A? 35C? ? P0? ? 77W / 149W |? ? ? 0MiB / 11471MiB |? ? 100%? ? ? Default |
+-------------------------------+----------------------+----------------------+