Centos 7.3 配置 cuda 8.0 + cudnn 6
由于之前安装的cuda 9.2不支持tensorflow,所以需要卸载之前的cuda版本重新安装
-
卸载cuda 9.2 版本
1.1 卸载cuda
$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
1.2 卸载Nvidia驱动
$ sudo /usr/bin/nvidia-uninstall
-
pre-installation
2.1 查看系统版本
$ cat /etc/redhat-release
2.2 确认有可执行的gpu
$ lspci | grep -i nvidia
2.3 确认linux版本正确
$ uname -m && cat /etc/*release
2.4 确认系统安装了gcc
$ gcc --version
2.5 查看内核版本
$ uname -r
-
Installation
我们采用.runfile的形式安装,到cuda历史版本链接下载好符合自己版本的.runfile文件
3.1 禁用Nouveau驱动
输入$ lsmod | grep nouveau
后,如果有输出,说明自带驱动仍在运行
禁用自带驱动, 创建文件到 "/usr/lib/modprobe.d/blacklist-nouveau.conf"并写入blacklist nouveau options nouveau modeset=0
然后regenerate the kernel inittramfs(第一次没有运行这条指令,安装Nvidia驱动失败)
$ dracut --force
3.2 重启进入文本模式(Centos进入文本界面的方式跟Ubuntu不一样,这里要特别注意)$ systemctl set-default multi-user.target $ init 3 $ reboot
3.3 运行CUDA安装文件
$ sudo sh cuda_<version>_linux.run
【注意】按照提示安装,除了询问是否安装openGL选‘否’, 其余都选默认3.4 重启进入图形界面
$ systemctl set-default graphical.target $ init 5
-
Post-installation
4.1 环境配置$ cd ~ #进入用户目录, 如果以用户身份登陆,则进入到"/home/用户名/"目录下 $ vim .bashrc
打开配置文件,写入
export PATH=$PATH:/usr/local/cuda-8.0/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
退出并保存 ,然后运行
$ source .bashrc
4.2 确认安装成功
4.2.1 确认Nvidia Driver:
$ nvidia-smi
4.2.2 确认cuda
$ nvcc --vesion
4.2.3 查看cudnn版本
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
-
中途遇到的问题
5.1 Nvidia驱动安装失败
之前是按照官方教程上来的, 由于之前有ubuntu安装成功的经验就不太在意细节。所以没有运行 $ dracut --force
。而且Centos通过“ctrl + Alt + F1” 也是没有办法进入文本模式的,必须通过
$ systemctl set-default multi-user.target
$ init 3
$ reboot
这一系列指令才可以进入
5.2 都安装好后,import tensorflow出现了
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory
5.2.1 去cuda的安装路径下去找这个文件:
$ find /usr -name "libcublas*"
结果是有这个文件的
5.2.2 进入路径配置文件$ vi ~/.bashrc
发现路径也是没有问题的
5.2.3 保险起见又source了.bashrc文件,还是报错
5.2.4 最后发现,是因为我们的工作环境是学校利用docker技术分给我们的一个节点,我们root了以后, cd ~
以后进入的是总区的目录,而不是我们用户的目录,,,,,配置了我们自己工作区的.bashrc文件之后就正常了