从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano

# 2018/8/3

2019年1月12

conda 安装cuda工具包(了解一下,注意cuda版本和cudnn版本要匹配):

conda install cudatoolkit=8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/

conda install cudnn=7.0.5 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

conda search cudnn ,搜寻依赖包的版本

-----------------------------------------------------分割线------------------------------------------------------

安装环境介绍

        系统镜像:CentOS-7-x86_64-DVD-1511.iso

        gpu驱动:  NVIDIA-Linux-x86_64-390.77.run

        cuda版本:cuda_9.0.176_384.81_linux.run

        cudnn版本:cudnn-9.0-linux-x64-v7.1.solitairetheme8

安装流程图


从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第1张图片

具体操作步骤:

装系统,配IP联网,开启ssh,更改yum源。

1. 本文主要想介绍gpu驱动等的安装,centos7系统的安装等步骤不再赘述。

2.通过lspci命令查看显卡型号,如下图1所示,网上很多教程说用 lspci | grep -i nvidia,这样是可以查看到系统是否配置gpu,但却把gpu的型号过滤掉了。

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第2张图片
图1.GPU型号查看

从图中可以看出我有2个gpu,型号为GeForce GTX 1080,然后从这里下载了英伟达显卡驱动如图2所示:

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第3张图片
图2.NVIDIA驱动程序下载

产品类型:GeForce,产品系列,产品家族,根据型号填写,操作系统为Linux64位。

3.下载好后,在安装显卡驱动之前需先安装gcc,gcc-c++,kernel-devel,kernel-headers,这里kernel-devel,kernel-headers的版本要和操作系统内核一致,通过uname -r查看,我的系统为 3.10.0-327.el7.x86_64,然后从这里下载了rpm包  kernel-devel-3.10.0-327.el7.x86_64.rpm、kernel-headers-3.10.0-327.el7.x86_64.rpm,安装命令如下:

rpm -ivh kernel-devel-3.10.0-327.el7.x86_64.rpm

rpm -ivh kernel-headers-3.10.0-327.el7.x86_64.rpm

yum install gcc

yum install gcc-c++

4. 安装显卡驱动,先修改驱动包的权限为755,再执行安装,命令如下,安装过程根据提示执行

Chmod 755 NVIDIA-Linux-x86_64-390.77.run

./NVIDIA-Linux-x86_64-390.77.run

5.下一步该安装cuda了,cuda版本对显卡(gpu)驱动版本有要求如下图3所示:

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第4张图片
图3.cuda与显卡驱动版本对应

我安装的是显卡驱动的NVIDIA-Linux-x86_64-390.77.run,因此CUDA9.1及以下的都满足,然后我随便从这里下载了cuda_9.0.176_384.81_linux.run。

6. 安装CUDA,修改文件权限为755,执行安装,命令如下,安装过程根据提示进行:

chmod 755 cuda_9.0.176_384.81_linux.run

./cuda_9.0.176_384.81_linux.run

7. 添加环境变量, vim ~/.bashrc

export CUDA_HOME=/usr/local/cuda-9.0

export PATH=/usr/local/cuda-9.0/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

执行 source ~/.bashrc,使得环境变量生效。

8.测试CUDA例子

cd /usr/local/cuda/samples/1_Utilities/deviceQuery

sudo  make

./deviceQuery

执行结果如下图所示,说明CUDA正确安装:


从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第5张图片
图4.CUDA例子执行结果

9.到这里,CUDA已经安装完成了,执行nvidia-smi,查看gpu的使用情况,这里我已经启动了一个服务了(后来截的图),如下图5所示:

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第6张图片
图5.gpu使用情况

10.接下来是安装cudnn,cudnn的版本要和cuda对应,我们到这里来下载cudnn,下载cudnn需要先注册(建议用163邮箱等注册,qq邮箱很慢,过了半天才收到激活邮件)

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第7张图片
图6.cudnn下载

可以看到cudnn v7.14适合CUDA9.0,下载得到 cudnn-9.0-linux-x64-v7.1.solitairetheme8,将后缀名修改为tgz,cudnn-9.0-linux-x64-v7.1.tgz ,利用tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz解压到你的目录下(注意,还记得cuda我们是安装在/usr/local/下了,这里我没敢放在同一个目录下,我把cudnn解压到了/usr/目录下了),然后拷贝文件到相应的目录,命令如下:

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

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

更新软连接,命令如下

cd /usr/local/cuda/lib64

sudo rm -rf libcudnn.so libcudnn.so.7

sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7

sudo ln -s libcudnn.so.7 libcudnn.so

11.到这里gpu驱动,cuda还有cudann加速包,已经全部安装完成了。下面,我们来安装theano并测试theano是否调用gpu进行运算,以验证我们的环境是否搭建成功。

12.安装theano之前,我们先来安装Anaconda,我依然使用的是一直在用的 Anaconda3-4.4.0-Linux-x86_64.sh ,通过 sh Anaconda3-4.4.0-Linux-x86_64.sh 执行安装。

13 利用conda install theano命令来安装theano, 创建 vim ~/.theanorc,并添加如下配置:

[global]

floatX = float32

device = cuda

[nvcc]

fastmath = True


从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第8张图片
图7.导入theano

14.创建test.py 文件,内容如下图所示,代码网上可以找到,参考网页的链接里也有

从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第9张图片
图8.测试代码

15.通过修改~/.theanorc 里的device=cpu or cuda 来改变调用cpu还是gpu,我的测试结果如下:


从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano_第10张图片
图9.测试结果

16.虽然修改前后时间上一个为1.64秒,一个为0.17秒,但却都显示cpu,但通过watch nvidia-smi命令观察确实是调用的gpu的。

遇到的问题

问题1 :安装cuda报错,说没有kernel-devel,和kernel-headers

        直接通过yum install kernel-devel、yum install kernel-headers安装这两个包,在后续安装显卡驱动时报错,显示没有这两个包,于是想到应该是版本问题,重新根据uname -r查找到系统版本,下载相应的rpm包进行安装。在这次安装过程中直接使用yum install gcc、yum install gcc-c++并未遇到gcc,gcc-++的版本问题。通过yum -y remove 命令卸载,之后安装报错说缺少gcc,估计是卸载kernel时被一同卸载,重新yum安装即可。

问题2:CUDA driver version is insufficient for CUDA runtime version

        这个问题及时CUDA版本过高了,刚开始装的cuda9.2,之后卸载cuda-9.2 ,删除目录,命令如下:

            cd /usr/local/cuda-9.2/bin

            sudo ./uninstall_cuda_toolkit_7.0.pl

问题3:ERROR (theano.gpuarray): pygpu was configured but could not be imported or is too old (version 0.7 or higher required)

            这是在用pip 安装 theano后,导包时报的错,解决方法如下:

            --->卸载pip uninstall theano,改用 conda install theano安装

问题4:AttributeError: ('This name is already taken', 'floatX')

            这是新版的theano已经不再需要自己指定floatX参数了,在~/.theanorc 中已经指定了,还有一点就是在~/.theanorc 中device=gpu,已经改为device=cuda。

问题5:安装GPU驱动时报错,需要关闭X Server,Centos下通过以下命令实现:

systemctl stop gdm.service            #关闭X Server

systemctl start gdm.service            #开启X Server

systemctl -all | grep gdm                 #关闭X Server

whereis gdm                                    #查找X Server

补充:

Ubuntu 16.04下安装显卡驱动遇到的问题:

问题一:用sudo service lightdm stop 关闭当前图形界面。

问题二:The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README

解决办法:

将驱动添加到黑名单blacklist.conf中,但是由于该文件的属性不允许修改。所以需要先修改文件属性。

查看属性:

sudo ls -lh /etc/modprobe.d/blacklist.conf

修改属性:

sudo chmod 666 /etc/modprobe.d/blacklist.conf

用vim编辑器打开:

sudo vim /etc/modprobe.d/blacklist.conf

在该文件后添加以下几行:

blacklist vga16fb

blacklist nouveau

blacklist rivafb

blacklist rivatv

blacklist nvidiafb

并执行:

sudo update-initramfs -u

重启后执行:

lsmod | grep nouveau

没有输出即为屏蔽好了

https://blog.csdn.net/qq_30163461/article/details/80314630

问题三: WARNING: Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option.

答:跳过,安装完成(若有问题,后续补充)

参考网页:

【1】https://www.2cto.com/kf/201612/578337.html

【2】https://www.cnblogs.com/wolflzc/p/9117291.html

【3】https://blog.csdn.net/lucifer_zzq/article/details/76675239

【4】https://blog.csdn.net/fieldoffier/article/details/50354607

【5】https://blog.csdn.net/xuezhisdc/article/details/48651003

【6】https://blog.csdn.net/u012235003/article/details/54576763

Dell Power edge r730安装:参考(https://blog.csdn.net/lxl121181/article/details/75384231) 

你可能感兴趣的:(从零开始安装Centos7+gpu驱动+cuda9.0+cudnn+theano)