CentOS7.6——安装显卡驱动+CUDA+CUDNN+离线安装环境
参考博客一:Tesla M60 GPU 基于CentOS7.3服务的搭建与代码测试
参考博客二:Ubuntu 下安装Anaconda + 显卡驱动 + CUDA + CUDNN + 离线安装环境
下载安装包
一、基于服务器环境的准备
1、查看系统内核版本和gcc版本
# uname -r
3.10.0-693.el7.x86_64 ; 不同操作系统的内核版本会不一样,最好记住它
# gcc -v
2、下载kernel-devel-3.10.0-693.el7.x86_64.rpm 这个包
下面三个网站都可以下载
http://ftp.riken.jp/Linux/cern/centos/7/updates/x86_64/repoview/kernel-devel.html
http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
https://pkgs.org/download/kernel-devel
3、安装 基础依赖环境
sudo rpm -ivh kernel-devel-3.10.0-514.el7.x86_64.rpm
安装rpm包后,继续安装其他依赖:
yum -y install gcc dkms
4、检测显卡驱动及型号
(1)添加ELPepo源
# 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)NVIDIA驱动检测
# yum install nvidia-detect
# nvidia-detect -v
(3) NVIDIA驱动下载
下载驱动到/downloads目录下:
创建 /downloads目录
# mkdir /downloads
跳转到 /downloads目录
# cd /downloads
5、解决CentOS默认的显卡驱动冲突,禁用nouveau
(1)因为NVIDIA驱动会和系统自带nouveau驱动冲突,执行命令查看该驱动状态:
lsmod | grep nouveau
如果出现如下内容,说明存在显示冲突问题,反之则不存在
(2)修改/etc/modprobe.d/blacklist.conf 文件,以阻止 nouveau 模块的加载,如果系统没有该文件需要新建一个,这里使用root权限,普通用户无法再在/etc内生成.conf文件,
$ su root
# echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
(3)重新建立initramfs image文件
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
(4)重启服务器,让禁用生效
sudo init 6
二、安装GPU显卡的驱动
⚠️在安装显卡驱动前,记得关闭主板的security boot,这是因为Linux 的自带显卡驱动是nouveau,而英伟达的官方驱动这时候成了第三方驱动。security boot禁止第三方驱动。
(1)关闭X Server.
systemctl stop gdm.service
(2)进入NVIDIA目录执行安装
$ chmod u+x NVIDIA-Linux-x86_64-415.13.run
$ ./NVIDIA-Linux-x86_64-375.39.run --kernel-source-path=/usr/src/kernels/3.10.0-693.el7.x86_64
如果安装完成,可以运行命令查看显卡状态
$ nvidia-smi
三、基于GPU显示的开发包的安装
官网下载cuda
3、安装cuda
4、测试cuda
5、cuda添加到.bash_profile中
6、安装cudnn(可以理解为Cuda的)
sudo tar zxvf cudnn-9.0-linux-x64-v7.1.tgz -C /usr/local/
致此,GPU的驱动及开发程序包已经安装完成,下面开始安装python开发环境!
四、基于GPU python的开发环境的准备
五、GPU程序测试
##TensorFlow GPU代码测试
#Creates
import tensorflow as tfa graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
#Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#Runs the op.print
sess.run(c)
运行结果出现如下图的内容,代表GPU安装成功!