1. 检查GPU设备识别
$ sudo lspci | grep NVIDIA
3D controller: NVIDIA Corporation Device 1b38 (rev a1) 表示为P40
2. 获取cuda网络源,并配置:
NVidia官方源地址:
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/)
$wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.44-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1404_8.0.44-1_amd64.deb
$ sudo apt-get update
3. 安装cuda 8.0
$ sudo apt-get install cuda-8.0
注:在安装前请uname -a 检测当前内核版本,然后确保对应版本的kernel-header包已经安装:(否则无法正常编译驱动)
$ uname -a
$ Linux X-X-X-X 3.13.0-123-generic #172-Ubuntu SMP Mon
$ sudo aptitude search 3.13.0-123-generic
$ p linux-cloud-tools-3.13.0-123-generic - Linux kernel version specific cloud tools for version 3.13.0-123
$ p linux-headers-3.13.0-123-generic - Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
$ p linux-headers-3.13.0-123-generic:i386 - Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
$ sudo apt-get install linux-headers-3.13.0-123-generic
3.1 查看驱动状态
$ sudo nvidia-smi
看到如下输出表示GPU驱动正常:
4. 测试GPU基本功能(可选)
4.1 增加LD path:
$ export LD_LIBRARY_PATH="/usr/local/cuda-7.5/lib64:/usr/lib64/:$LD_LIBRARY_PATH"
4.2 安装cuda examples
$ cd /usr/local/cuda/bin
$ sh cuda-install-samples-8.0.sh ~/cuda-test/
$ cd ~/cuda-test/NVIDIA_CUDA-8.0_Samples
$ make
$ ./bin/x86_64/linux/release/deviceQuery 获取设备状态
$ ./bin/x86_64/linux/release/bandwidthTest 测试设备带宽
Note: 如果编译过程发现lnvcuvid的错误,可以执行:
$ find . -type f -execdir sed -i 's/UBUNTU_PKG_NAME = "nvidia-367"/UBUNTU_PKG_NAME = "nvidia-375"/g' '{}' \
其中nvidia-375是当前安装的驱动的版本
5. 安装cudnn
(选装,注:不同AI框架对cudnn的版本支持不同)
5.1 https://developer.nvidia.com/cudnn 下载cudnn软件包。需要注册nvidia账号后才能下载
5.2 安装(案例使用cudnn5.1, 因为TensorFlow目前仅支持5.1)
ubuntu 可以选择 cuDNN v5.1 Runtime Library for Ubuntu14.04 (Deb)
6. 关闭ubuntu自动更新内核及nvidia Tools
建议操作:
$ sudo vim /etc/apt/apt.conf.d/10periodic
将APT::Periodic::Update-Package-Lists "1";修改为 APT::Periodic::Update-Package-Lists "0"; 以禁止ubuntu自动更新软件包。
7. 其他
nvidia-smi 发现 GPU使用率100%
这个问题是系统读取gpu状态信息不准确导致,执行下列命令可更正,让系统读取命令正确。
# nvidia-smi -pm 1