基本按照上面的说明安装。
1、系统要求及检查方法
cuda8对系统的要求见下表,我的操作系统是debian8,并不在cuda8支持的linux版本清单里面,不过gcc和glibc这些版本都比较新,因此后面的安装都是按照Ubuntu 16.04的要求来执行。
Distribution | Kernel | GCC | GLIBC | ICC | PGI | XLC | CLANG |
---|---|---|---|---|---|---|---|
x86_64 | |||||||
RHEL 7.x | 3.10 | 4.8.2 | 2.17 | 15.0.4 16.0 | 16.3+ | NO | 3.8+ |
RHEL 6.x | 2.6.32 | 4.4.7 | 2.12 | ||||
CentOS 7.x | 3.10 | 4.8.2 | 2.17 | ||||
CentOS 6.x | 2.6.32 | 4.4.7 | 2.12 | ||||
Fedora 23 | 4.2.3 | 5.3.1 | 2.22 | ||||
OpenSUSE 13.2 | 3.16.6 | 4.8.3 | 2.19 | ||||
SLES 12 | 3.12.28 | 4.8.6 | 2.19 | ||||
SLES 11 SP4 | 3.0.101 | 4.3.4 | 2.11 | ||||
Ubuntu 16.04 | 4.4.0 | 5.3.1 | 2.23 | ||||
Ubuntu 14.04 | 3.13 | 4.8.2 | 2.19 | ||||
ARMv8 (aarch64) | |||||||
Ubuntu 14.04 | 3.13 | 4.8.2 | 2.19 | NO | NO | NO | NO |
POWER8(*) | |||||||
RHEL 7.x | 3.10 | 4.8.2 | 2.17 | NO | NO | 13.1.2 | NO |
Ubuntu 16.04 | 4.4.0 | 5.3.1 | 2.23 | NO | NO | 13.1.2 | NO |
$ lspci | grep -i nvidia
如果什么都没输出,就说明显卡不对,以下是我的输出:
05:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40m] (rev a1)
2)确定linux版本
$ uname -m && cat /etc/*release
这个没啥好说的,我的是debian8
3)gcc版本
$ gcc --version
我的是gcc (GCC) 4.8.5
4)确定已经安装了kernel header
建议不管之前装没装,都手动安装一下,这个不同的linux系统有不同的安装方法,debian8安装ubuntu的方法安装:
$ sudo apt-get install linux-headers-$(uname -r)
5)卸载之前安装的cuda和显卡驱动版本
下面两张表告诉我们什么情况下需要卸载之前的版本,对应cuda来说,只有之前安装过相同版本才需要卸载,显卡驱动则只要是RPM/Deb方式安装的都需要卸载,由于我之前用run的方式安装了7.5版本,本次安装打算使用run的方式,因此不需要卸载之前的版本
Installed Toolkit Version == X.Y | Installed Toolkit Version != X.Y | ||||
RPM/Deb | run | RPM/Deb | run | ||
Installing Toolkit Version X.Y | RPM/Deb | No Action | Uninstall Run | No Action | No Action |
run | Uninstall RPM/Deb | Uninstall Run | No Action | No Action |
Installed Driver Version == X.Y | Installed Driver Version != X.Y | ||||
RPM/Deb | run | RPM/Deb | run | ||
Installing Driver Version X.Y | RPM/Deb | No Action | Uninstall Run | No Action | Uninstall Run |
run | Uninstall RPM/Deb | No Action | Uninstall RPM/Deb | No Action |
2、选择安装方式及下载安装文件
cuda有两种安装方式:安装包方式和run文件方式。如果你的操作系统在cuda的支持清单上面,建议采用安装包方式比较省事。run文件方式对各个linux版本的兼容性较好,我的系统是debian8,不在支持清单里面,因此选择run文件方式。安装文件从http://developer.nvidia.com/cuda-downloads下载,debian8选择linux -> x86_64 -> ubuntu -> 16.04(最新版本) -> runfile(local)
3、安装
首先,需要关掉Nouveau drivers,用下面命令确认是否运行着Nouveau drivers:
$ lsmod | grep nouveau
如果没有输出任何内容,则说明没有运行Nouveau drivers,否则需要关掉。不同的系统关掉方法不太一样,Ubuntu的方法如下:
创建文件/etc/modprobe.d/blacklist-nouveau.conf,写入下面的内容
blacklist nouveau
options nouveau modeset=0
运行下面的命令刷新系统
$ sudo update-initramfs -u
接着就比较简单,直接root权限运行下载下来的runfile,一路yes就可以了
4、环境设置及验证
安装完成以后,需要设置下面两个环境变量:
$ 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}}
然后跑一下samples看看是否没问题。安装runfile的时候默认把samples拷到~/NVIDIA_CUDA-8.0_Samples,进到该目录,make命令编译samples,这个编译时间会比较久。编译完成以后,编译出来的程序在bin目录下,编译程序会根据不同机器生成不同路径,我的是bin/x86_64/linux/release。进入该路径以后,运行./deviceQuery,输出内容最后两行为:
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = Tesla K40m
Result = PASS
PASS表示测试通过,CUDA Driver Version = 8.0说明我们跑的确实是cuda8
再运行./bandwidthTest测一下主机和GPU之间的数据传输带宽,这块Tesla K40m卡还不错,传输带宽能达到10298.3 MB/s。如果没问题,输出内容最后一行应该为Result = PASS
至此,整个cuda8安装过程到此结束。