Install Cuda、Nividia driver、Cudnn for tensorflow-gpu in centos7

Install Cuda(rpm方式)

  1. 检查是否有兼容cuda的GPU
lspci | grep -i nvidi

从这个网站http://developer.nvidia.com 查看你的显卡是否兼容cuda

  1. 检查你的系统版本
uname -m && cat /etc/*release

根据系统版本和位数,选择cuda toolkit的版本 http://developer.nvidia.com/cuda-downloads
注意tensorflow目前的最新版(r1.4只支持到cuda8.0)

  1. 检查有无安装gcc
gcc --version
# if not installed
yum install -y gcc
  1. 检查系统是否安装了对应系统内核版本的Headers & Development包
sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

假如提示没有对应的包,则上https://rpm.pbone.net/查找对应的包下载到本地进行安装
注意:这两个包的版本一定要和系统内核版本一致,不一致则删除已有版本重新安装

  1. 通过rpm包安装cuda
    如前文所说通过http://developer.nvidia.com/cuda-downloads下载centos 7 64 位cuda 8.0的rpm包
# 添加yum的包储存库EPEL,满足DKMS和libvdpau等包的依赖关系
sudo yum install epel-release
# 安装储存库的元数据
sudo rpm --install rpm_name.rpm
# 清除yum储存库的缓存
sudo yum clean expire-cache
# 安装cuda
sudo yum install cuda
```6. 添加环境变量
```bash
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}}
```7. 检查安装是否成功
```bash
# 检查driver版本
cat /proc/driver/nvidia/version
# 运行cuda自带样例deviceQuery
sudo find / -name "deviceQuery"
# 进入deviceQuery的路径
cd deviceQuery_path && make 
# 运行样例deviceQuery
chmod +x ./deviceQuery && ./deviceQuery

安装新Nvidia driver

因为我的显卡是1080 ti,cuda安装里自带的驱动版本太低,导致显卡不能被nvidia-smi指令正确识别和使用,所以需要安装最新版的驱动,假如驱动安装正确的话,则无需更新驱动

  1. 从官网http://www.nvidia.com/Download/index.aspx下载新的驱动
  2. 关闭显卡自带驱动nouveau
# 把驱动加入黑名单中 
vi /etc/modprobe.d/blacklist.conf  
# 在文件末尾添加
blacklist nouveau
options nouveau modeset=0
# 使用 dracut重新建立initramfs image file
# 备份 the initramfs file
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# 重新建立 the initramfs file
sudo dracut  -v /boot/initramfs-$(uname -r).img $(uname -r)
# 重启系统至文本模式 init 3
# 检查nouveau driver确保没有被加载
lsmod | grep nouveau
# 假如没有任何输出内容,则表明显卡自带驱动nouveau已被正确关闭
```3. 安装nvidia 显卡的新驱动
```bash
chmod +x driver_name.run  && ./driver_name.run
```4. 检查显卡版本
```bash
cat /proc/driver/nvidia/version

添加cudnn

  1. 从官网https://developer.nvidia.com/cudnn下载cudnn压缩包。tensorflow目前版本(r1.4)使用的是cudnn6,所以下载的是cuDNN v6.0 (April 27, 2017), for CUDA 8.0。 实际安装中请根据自己需求选择所需要下载的版本
  2. 下载后,解压cudnn压缩包
    tar -xzvf cudnn-8.0-linux-x64-v6.tgz
  3. 添加文件到cuda工具箱的目录中
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*
```## 安装tensorflow-gpu
关于python or anaconda的安装在这里就不细写,网上一堆教程。
1. 从该网站https://pypi.python.org/pypi/tensorflow-gpu下载自己所需的tensorflow-gpu的whl包
2. 安装&测试
```bash
pip install tensorflow_gpu-1.4.1-cp36-cp36m-manylinux1_x86_64.whl 
ipython3
>>> import tensorflow
# 若import的指令没有报错,表明tensorflow-gpu安装成功,并且可以识别到cuda,cudnn的路径和文件

以上是jojen的笔记。
我大概记了一下我们踩的坑:

cuda版本

jojen在第一次下载cuda版本的时候,没有注意兼容性的问题,下载了cuda8,但是cuda8目前的tf版本并不支持,所以...first round, over
根据tf的版本,cuda8会在下一个tf版本中被支持。

内核+glibc等系统问题

关于内核,两位大神给了我两种不同的建议,一位大神建议我的是拿到系统以后先进行upgrade,另一位大神则认为内核这种东西,够用就行了,没必要追求最新。
最后我们选择后者,因为更新内核以后,驱动就和内核型号不匹配了...重新下载和内核匹配的驱动以后,glibc的版本又不匹配了....

最后只能重装大法好...

你可能感兴趣的:(Install Cuda、Nividia driver、Cudnn for tensorflow-gpu in centos7)