目錄html
本篇博客主要是解讀官方的文檔,預先的條件等,不涉及配置
若是想要安裝的話,請看我下一篇博客linux
Cuda Toolkit 9.2下載地址git
國內下載慢,加速方法見以前博客:獨家git加速github
cuDNN 下載地址ubuntu
用google帳號登錄:選擇須要的vim
選擇第一個:windows
若是有疑問建議直接查看緩存
官網說明-cuDNN安裝手冊bash
Cuda9.2的支持
Cuda9.0的支持
爲了確信是否顯卡驅動能夠正常使用
lspci | grep -i nvidia
若是有顯示,那麼你的GPU就具有了CUDA功能。
uname -m && cat /etc/*release
獲得如下顯示:
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"
NAME="Ubuntu"
VERSION="16.04.5 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.5 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
gcc --version
獲得結果:
gcc (Ubuntu 4.9.3-13ubuntu2) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
CUDA驅動程序要求在安裝驅動程序時安裝內核運行版本的內核頭文件和開發包,以及重建驅動程序時。例如,若是您的系統運行內核版本3.17.4-301,則還必須安裝3.17.4-301內核頭文件和開發包。
雖然Runfile安裝不執行包驗證,但若是當前沒有安裝這些包的版本,則驅動程序的RPM和Deb安裝將嘗試安裝內核頭和開發包。可是,它將安裝這些軟件包的最新版本,這些軟件包可能與您的系統正在使用的內核版本匹配,也可能不匹配。 所以,最好在安裝CUDA驅動程序以前以及更改內核版本時手動確保安裝正確版本的內核頭文件和開發包。
能夠經過運行如下命令找到系統正在運行的內核版本:
uname -r
安裝符合當前的kernel的內核頭文件和開發包:
sudo apt-get install linux-headers-$(uname -r)
能夠經過將
(9.2)http://developer.nvidia.com/cuda-downloads/checksums
(9.0)https://developer.download.nvidia.com/compute/cuda/9.0/Prod/docs/sidebar/md5sum.txt
上發佈的MD5校驗和與下載文件的校驗和進行比較來驗證下載。若是任一校驗和不一樣,則下載的文件已損壞,須要再次下載。
9.0的md5校驗
7a00187b2ce5c5e350e68882f42dd507 cuda_9.0.176_384.81_linux.run 19369a391a7475cace0f3c377aebbecb cuda_9.0.176_mac.dmg fca8046970f3e27539802aa0c06a3158 cuda_9.0.176_mac_network.dmg ecba5d6c7d86ab5c3c3be97330ca85a0 cuda_9.0.176_win10.exe 019d6e230bccef462fd0d7af61238c35 cuda_9.0.176_win10_network.exe 48d85427ddb4c0eae8ee46aea9d3126e cuda_9.0.176_windows.exe 8acb5a71367f83d7838723385742342f cuda_9.0.176_windows_network.exe be0f029e95881adc28cc31381207b522 cuda_cluster_pkgs_9.0.176_rhel6.tar.gz d0c6a642bd0f0367f90924704226e8c0 cuda_cluster_pkgs_9.0.176_rhel7.tar.gz 95a0042baddd9a5a265e5266f45a5d17 cuda_cluster_pkgs_9.0.176_ubuntu1604.tar.gz d76d08b6da82e54326851d43435a0c61 cuda-repo-fedora25-9.0.176-1.x86_64.rpm a58a6f09f8a1d56f5e6da1d87460e867 cuda-repo-fedora25-9-0-local-9.0.176-1.x86_64.rpm 918c8a71a00f89c5a733ef58011ad65c cuda-repo-opensuse422-9.0.176-1.x86_64.rpm 91f5e497e119ac22d9dfa6af1a117b47 cuda-repo-opensuse422-9-0-local-9.0.176-1.x86_64.rpm 4a1114e243d0e0908495d1ad6c92c239 cuda-repo-rhel6-9.0.176-1.x86_64.rpm 43e548a51e3705dd51d21b9926208600 cuda-repo-rhel6-9-0-local-9.0.176-1.x86_64.rpm f9b8e8c0de6863e7cb1ca47c5d9b8589 cuda-repo-rhel7-9.0.176-1.ppc64le.rpm 960afa71b11da89980990736c77e0495 cuda-repo-rhel7-9.0.176-1.x86_64.rpm 8c9d14558cf63e077a61bf78a5bcfb2a cuda-repo-rhel7-9-0-local-9.0.176-1.ppc64le.rpm f78a97891c183c47b0cc187a76eaa715 cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm dc2784693028df4855db8b31b3937c24 cuda-repo-sles122-9.0.176-1.x86_64.rpm c7a2664834c20cfe75f2d1956fc87ae8 cuda-repo-sles122-9-0-local-9.0.176-1.x86_64.rpm 4b8004dd747dbb664e85b17dec3fee51 cuda-repo-ubuntu1604_9.0.176-1_amd64.deb 70e7d1027e225043678e7150f7a6fd7b cuda-repo-ubuntu1604_9.0.176-1_ppc64el.deb e78e6ff56582f09a0cbc607049bdb2fd cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb 405d20e594b87f44fb8ed3b137e88707 cuda-repo-ubuntu1604-9-0-local_9.0.176-1_ppc64el.deb 3544486e0b99e633572a65bfb24058ed cuda-repo-ubuntu1704_9.0.176-1_amd64.deb d717d6649cbf90d32e3fd2c0c7202be0 cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb
9.2的MD5校驗:
8254739a33574820ff27628453fe33f3 cuda_9.2.64_mac.dmg be64422cf5c0bd2cfaa46da7846ac69b cuda_9.2.64_mac_network.dmg dd6e33e10d32a29914b7700c7b3d1ca0 cuda_9.2.88_396.26_linux.run af15dd3f975786f458532f3e76ddabb8 cuda_9.2.88_win10.exe 078adfc1368a4574f707f740cab0f7d0 cuda_9.2.88_win10_network.exe d087c023d2a2228b1677f574267b7dde cuda_9.2.88_windows.exe 5580c6cc8fcdcfbff57c26eae8c314d4 cuda_9.2.88_windows_network.exe 155f07336f25e6fda0a4cabe089d1714 cuda_cluster_pkgs_9.2.88_rhel6.tar.gz b08c07f824a42562a8381fb41a4f908d cuda_cluster_pkgs_9.2.88_rhel7.tar.gz 92953b1d3693651acb752fa28f0cc6dc cuda_cluster_pkgs_9.2.88_ubuntu1604.tar.gz 4843e002fd0cb5055d9c39cd00694206 cuda-repo-fedora27-9.2.88-1.x86_64.rpm ee2ac2f7fe6a5aad34ac2d531d0731a4 cuda-repo-fedora27-9-2-local-9.2.88-1.x86_64.rpm ab95956ffd611a7ebb38f550852fc309 cuda-repo-opensuse423-9.2.88-1.x86_64.rpm bc0d7fbf211a4b5a07b4a3b63cc89c10 cuda-repo-opensuse423-9-2-local-9.2.88-1.x86_64.rpm eec36b2c075269665e41149ea6c67fe6 cuda-repo-rhel6-9.2.88-1.x86_64.rpm 1340694af5858c9bd509315dd5b1266c cuda-repo-rhel6-9-2-local-9.2.88-1.x86_64.rpm 1121b80c9a16d58d009c042056482fb0 cuda-repo-rhel7-9.2.88-1.ppc64le.rpm 7bf25a80b002511501af8f555f384f86 cuda-repo-rhel7-9.2.88-1.x86_64.rpm 48f44700fbe87ba54f727bd5ddd89718 cuda-repo-rhel7-9-2-local-9.2.88-1.ppc64le.rpm c16d67b69f491053534abbdd35bf9696 cuda-repo-rhel7-9-2-local-9.2.88-1.x86_64.rpm 12a708a88fbd4f99c40f001794ff585b cuda-repo-sles123-9.2.88-1.x86_64.rpm 35dbcab7f84106673e3f1345ba3eede1 cuda-repo-sles123-9-2-local-9.2.88-1.x86_64.rpm 62937c222edc19cb49df06978348fea8 cuda-repo-ubuntu1604_9.2.88-1_amd64.deb 50fb1ccc35e098ff4499cbf954d66bcf cuda-repo-ubuntu1604_9.2.88-1_ppc64el.deb 3d3e8b7920780e35b839811cc9dd5b46 cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb 465cf1ddd9d6cc186edd6f5d7c96711f cuda-repo-ubuntu1604-9-2-local_9.2.88-1_ppc64el.deb 5cbe16157b4941289ca3eb5406633f23 cuda-repo-ubuntu1710_9.2.88-1_amd64.deb 1a5da1a97cbd322f91e87df565a7f669 cuda-repo-ubuntu1710-9-2-local_9.2.88-1_amd64.deb 2e222e145ef3232912679fa03a320c24 cuda_9.2.64.1_mac.dmg 0e615d99152b9dfce5da20dfece6b7ea cuda_9.2.88.1_linux.run 4e1a26062537287e0edb653c40a1cc29 cuda_9.2.88.1_windows.exe bb7ecdbac12aa2e7b485611901d1a7eb cuda-repo-fedora27-9-2-local-cublas-update-1-1.0-1.x86_64.rpm 3125beed3d35629dbc1046fbf9505707 cuda-repo-opensuse423-9-2-local-cublas-update-1-1.0-1.x86_64.rpm 54fe8c72d4d8f7731ad8e52fd1040342 cuda-repo-rhel6-9-2-local-cublas-update-1-1.0-1.x86_64.rpm b579c048ad60d79daa0eaf25733b212a cuda-repo-rhel7-9-2-local-cublas-update-1-1.0-1.ppc64le.rpm 783b48d12726130d6e1b3ac5d4511bac cuda-repo-rhel7-9-2-local-cublas-update-1-1.0-1.x86_64.rpm c581b59f0e724b7936e4c099aa72cba2 cuda-repo-sles123-9-2-local-cublas-update-1-1.0-1.x86_64.rpm 0ad9c90134f1fc2e8eb249256855c21a cuda-repo-ubuntu1604-9-2-local-cublas-update-1_1.0-1_amd64.deb d1761f5229b96d2fe4b8fc9654fed928 cuda-repo-ubuntu1604-9-2-local-cublas-update-1_1.0-1_ppc64el.deb 9d1174a17f0721dc520c2c6775eba342 cuda-repo-ubuntu1710-9-2-local-cublas-update-1_1.0-1_amd64.deb
要計算下載文件的MD5校驗和,請運行如下命令:
$ md5sum <file>
我下載的是cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
,因此用到的校驗碼爲d717d6649cbf90d32e3fd2c0c7202be0
,若是你下載的是cuda_9.0.176_384.81_linux.run
,那麼對應的校驗碼是7a00187b2ce5c5e350e68882f42dd507
以前安裝的版本會對現有版本形成衝突,須要卸載
Use the following command to uninstall a Toolkit runfile installation:
$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
Use the following command to uninstall a Driver runfile installation:
$ sudo /usr/bin/nvidia-uninstall
Use the following commands to uninstall a RPM/Deb installation:
$ sudo yum remove <package_name> # Redhat/CentOS $ sudo dnf remove <package_name> # Fedora $ sudo zypper remove <package_name> # OpenSUSE/SLES $ sudo apt-get --purge remove <package_name> # Ubuntu
Installation Instructions(下載界面提供):
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
官方說明提供:
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
使用本地倉庫進行安裝時:
$ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
使用網絡倉庫安裝時:
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<architecture>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
sudo apt-get remove --purge nvidia*
sudo apt-get install build-essential sudo apt-get install vim cmake git sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
,加入blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf sudo update-initramfs -u
重啓計算機 sudo reboot
sudo service lightdm stop
sudo sh cuda_<version>_linux.run --override --no-opengl-lib Do you accept the previously read EULA? (accept/decline/quit): accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64? ((y)es/(n)o/(q)uit): y Install the CUDA Toolkit? ((y)es/(n)o/(q)uit): y Enter Toolkit Location [ default is /usr/local/cuda-9.1 ]: Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y Install the CUDA Samples? ((y)es/(n)o/(q)uit): y Enter CUDA Samples Location [ default is /home/user ]:
若是安裝沒有報錯,重啓使驅動生效。檢查驅動狀態: nvidia-smi
。
$ export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}} $ export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
編譯運行CUDA測試用例(自行查看官方說明)。
The PATH variable needs to include /usr/local/cuda-9.0/bin
To add this path to the PATH variable:
$ export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
In addition, when using the runfile installation method, the LD_LIBRARY_PATH variable needs to contain /usr/local/cuda-9.0/lib64 on a 64-bit system, or /usr/local/cuda-9.0/lib on a 32-bit system
To change the environment variables for 64-bit operating systems:
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
To change the environment variables for 32-bit operating systems:
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Note that the above paths change when using a custom install path with the runfile installation method.
When the driver is loaded, the driver version can be found by executing the command
$ cat /proc/driver/nvidia/version
The version of the CUDA Toolkit can be checked by running nvcc -V
in a terminal window. The nvcc command runs the compiler driver that compiles CUDA programs. It calls the gcc compiler for C code and the NVIDIA PTX compiler for the CUDA code.
The NVIDIA CUDA Toolkit includes sample programs in source form. You should compile them by changing to ~/NVIDIA_CUDA-9.0_Samples
and typing make
. The resulting binaries will be placed under ~/NVIDIA_CUDA-9.0_Samples/bin
.
編譯後,找到並運行 DEVICEQUERY 下 〜/ NVIDIA_CUDA- 9.0 _Samples
from the command line as the superuser.
Running the bandwidthTest program ensures that the system and the CUDA-capable device are able to communicate correctly.
Unzip the cuDNN package.
$ tar -xzvf cudnn-<>.tgz
Copy the following files into the CUDA Toolkit directory.(注意路徑)
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
編譯運行CUDA測試用例(自行查看官方說明)
主要問題:NVIDIA驅動裝不上(或者裝完圖形界面出現問題)、驅動裝上了但和CUDA要求的版本不匹配
安裝過程出現 "The driver installation is unable to locate the kernel source. ",使用uname -r查看內核版本,若是高於4.10,如4.13.0,CUDA 9.1自帶驅動不支持最新Linux內核,請降級內核:
sudo apt-get purge linux-image-4.13.0-26-generic sudo apt-get purge linux-headers-4.13.0-26-generic
Update initramfs image:
sudo update-initramfs -u
重啓,使用 uname -r 命令確保內核版本正確
若是確認內核版本沒問題了,還出現(1)的問題,再嘗試安裝如下包:
apt-get install linux-source apt-get source linux-image-$(uname -r) apt-get install linux-headers-$(uname -r)
Install NVIDIA Driver and CUDA.md
安裝caffe2