机房断电导致已经配置好的Centos7深度学习机器突然运行不了Tensorflow。并且出现以下情况,运行
nvidia-smi
显示
貌似没有问题。但是其实在运行深度学习框架的时候运行不了。
估计是显卡驱动坏了。
重装吧。
首先卸载显卡驱动。
目前我知道的显卡驱动安装方式有三种
1、CUDA(.run)下载以后安装带上显卡驱动;
2、显卡驱动.run文件安装
3、集成软件包安装(yum等)
接下来介绍后两种安装方式的卸载方式
1、显卡驱动.run文件安装:
找到.run文件
输入例如:
sh NVIDIA-Linux-x86-270.41.19.run --uninstall
2、yum安装:
确认是否为yum安装
yum list installed
找到以NVIDIA为首的包:
其中版本号和 中查询出来的版本号一样的那个包。
然后yum remove 该包。
卸载完成以后开始重装显卡驱动。
以下是我在本次安装中的步骤:
1、添加ElRepo源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
2、安装显卡驱动检查
yum install nvidia-detect
3、运行
nvidia-detect -v
390.48即为我想要的版本号
4、下载该版本的.run文件
5、进入安装前的准备工作
yum -y update //注意这是升级系统
yum -y groupinstall "GNOME Desktop" "Development Tools"
yum -y install kernel-devel
再次提醒:第一句话是升级系统酌情使用。
yum -y install epel-release
yum -y install dkms
6、编辑grub文件
vim /etc/default/grub
在“GRUB_CMDLINE_LINUX”中添加
rd.driver.blacklist=nouveau nouveau.modeset=0
随后生成配置
grub2-mkconfig -o /boot/grub2/grub.cfg
7、创建blacklist
vim /etc/modprobe.d/blacklist.conf
添加
blacklist nouveau
8、更新配置
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)
9、重启
reboot
10、确认禁用了nouveau
lsmod | grep nouveau
若无输出则禁用成功
11、开始安装
sh NVIDIA-Linux-x86_64-390.48.run
安装完成重启。
至此显卡驱动安装完成。
接下来是重新安装CUDA和Cudnn
卸载部分不再赘述,有很多教程。在这里说一点
就是通过在线.rpm文件下载,然后通过yum来安装CUDA,是没有uninstall_cuda-x.x.pl的
这种情况,还是利用yum remove来删除。还有就是如果这个时候删除usr/local/cuda文件夹,再使用yum install cuda
这个指令来安装cuda是不会在该位置重新生成cuda文件夹的。这就需要使用.run文件来安装。
CUDA安装:
推荐安装:.run文件方式。
搜索要按照的CUDA的版本,注意如果是TensorFlow框架的使用者们9.1的框架慎用,目前的1.7还不支持。
CUDNN安装:
比较简单但是安装前注意和TF框架还有CUDA的匹配问题。
至此所有安装完成。