# 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
安装流程图
具体操作步骤:
装系统,配IP联网,开启ssh,更改yum源。
1. 本文主要想介绍gpu驱动等的安装,centos7系统的安装等步骤不再赘述。
2.通过lspci命令查看显卡型号,如下图1所示,网上很多教程说用 lspci | grep -i nvidia,这样是可以查看到系统是否配置gpu,但却把gpu的型号过滤掉了。
从图中可以看出我有2个gpu,型号为GeForce GTX 1080,然后从这里下载了英伟达显卡驱动如图2所示:
产品类型: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所示:
我安装的是显卡驱动的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正确安装:
9.到这里,CUDA已经安装完成了,执行nvidia-smi,查看gpu的使用情况,这里我已经启动了一个服务了(后来截的图),如下图5所示:
10.接下来是安装cudnn,cudnn的版本要和cuda对应,我们到这里来下载cudnn,下载cudnn需要先注册(建议用163邮箱等注册,qq邮箱很慢,过了半天才收到激活邮件)
可以看到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
14.创建test.py 文件,内容如下图所示,代码网上可以找到,参考网页的链接里也有
15.通过修改~/.theanorc 里的device=cpu or cuda 来改变调用cpu还是gpu,我的测试结果如下:
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)