环境:Centos7.4+cuda9.0+cudnn7.4.1
首先踩过的坑:
1.安装完Nvidia驱动后无法进入图形化界面
2.安装完cuda后,import tensorflow时报ImportError: libcublas.so.9.0: cannot open shared object file: No such file...问题
第一个坑可在下文中找到解决答案
第二个坑:
原因1:cuda9.0以及cudnn7未能安装或正确安装。
解决方案:安装cuda及对应cudnn,已安装情况下检查路径usr/local/cuda-9.0/lib64下是否有 libcublas.so.9.0文件
原因2:tensorflow版本与cuda不对应。
解决方案:升级tensorflow
LZ是这个错误:安装的tensorflow-gpu1.12
下载cuda10.0,cuda9.2与对应版本的cudnn都发生这个错误
因为对应的tensorflow不能做到对上兼容,所以需要到官网查找好对于tensorflow-gpu版本对应的cuda、cudnn下载
原因3:路径未加入环境
这里是对应的用户方案
解决方案:sudo gedit ~/.bashrc 在文档尾部加上
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
如果之前添加过但写法与此不同,仍然报错,请按此格式添加,本人之前写的是
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH,改成上边的写法就不报错了。
添加完路径之后别忘了 source ~/.banshrc
如果要所有用户都可行
sudo gedit /etc/profile 在文档尾部加上
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
如果之前添加过但写法与此不同,仍然报错,请按此格式添加,本人之前写的是
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH,改成上边的写法就不报错了。
Centos7.4系统的安装
这里系统安装还是利用启动U盘来安装系统。制作启动U盘是通过Refus软件来制作的,当然也可以通过其他常用启动U盘制作软件来制作(如老毛桃等)。
这里要注意选择分区是哪一种,GPT还是
Nvidia驱动的安装
首先centos等系统安装的都是自带的nouveau驱动,所以我们需要先禁用该功能
以下功能最好在root用户下进行,防止权限不够
sudo vi /etc/default/grub
添加`rd.driver.blacklist=nouveau` 在开头
之后
vi /lib/modprobe.d/dist-blacklist.conf
在 blacklist nvidiafb
前面加#
之后添加
blacklist nouveau
options nouveau modeset=0将其加入黑名单
下一步备份镜像
1.备份镜像 sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
2.重建镜像 sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
之后可以重启reboot
启动之后:
lsmod | grep nouveau
没有输出即为屏蔽好了
随即开始安装Nvidia驱动
首先去Nvidia官网下载与自己电脑显卡对应的驱动
我们这里的驱动安装最好在Cuda安装后再进行安装,不然会出现玄学错误ImportError: libcublas.so.9.0:
进入到下载的文件下,一般火狐下载的是在下载文件下,建议将文件移动到英文文件夹下,因为纯命令行界面显示不了中文字符
首先修改文件权限可执行 755// chmod 755 NV*
注意:这里有坑Nvidia默认安装opengl,而这个会与Gnome桌面冲突,就会造成开机无法进入图形化界面的问题
因此:
安装nvidia时执行:sh NV* --no-opengl-files
Cuda9.0以及Cudnn7.4.1安装
Cuda9.0与Cudnn7.4.1都可以通过官网下载,只是Cudnn需要先进行登陆,需要注册一个nvidia官网帐号
这里给出链接:
Cuda这里我们通过runfile文件进行安装
首先centos7 切换到root用户下//su root
之后进入到纯命令行multi-user化界面输入//init 3
进入到下载的文件下,一般火狐下载的是在下载文件下,建议将文件移动到英文文件夹下,因为纯命令行界面显示不了中文字符
首先修改文件权限可执行 755// chmod 755 cuda_9.0*
执行run文件// ./cuda_9.0* // *是通配符,可输入文件全名
这里第一个弹出的选no 因为我们后面自己安装对应版本的Nvidia驱动
后面都可以选默认的,重写xconfiguration 根据自己情况
Cudnn的安装
进入对应文件夹下面
1 tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz
2 sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
3 sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
4 sudo chmod a+r /usr/local/cuda/include/cudnn.h
5 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
两个都安装好后就可以输入nvcc -V看输出的信息了
Tensorflow-gpu的安装
这里可以通过python的pip直接安装,以下为Centos python3.6.1安装教程
在make编译之前一定要先安装openssl-devel,不然会出现pip安装错误的情况
1、检查python版本
[root@bogon ~]# python -V
Python 2.7.5
[root@bogon ~]#
2、安装必要的库文件
# yum -y install zlib zlib-devel gcc
3、下载python3.6.1
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
用base镜像源下载安装openssl-devel
yum --enablerepo=base --enablerepo=updates install openssl-devel
因为新版的pip默认要使用SSL,可以通过设置修改,先安装openssl-devel,然后编译安装,只是在编译的过程中加入 --enable-optimizations(优化构建python)
4、解压安装
# xz -d Python-3.6.1.tar.xz
# tar -xvf Python-3.6.1.tar
# cd Python-3.6.1/
# ./configure --prefix=/usr/local/python3 --enable-optimizations
# make && make install
5、永久添加环境变量
# vim/etc/profile
添加 export PATH="$PATH:/usr/local/python3/bin"
添加完成后 source /etc/profile
**临时添加环境变量为 # export PATH="$PATH:/usr/local/python3/bin" 终端结束后环境变量生效
6、打开python3.6
[root@bogon ~]# python3
Python 3.6.1 (default, May 19 2017, 04:11:00)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
7、修改/usr/bin/python链接//这步可有可无,根据自己是否需要保留python2决定
# cd/usr/bin
# mv python python.bak
# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
修改后可直接用 # python打开python3