CentOS 7下安装CUDA 11.2.2
28 Nov 2019
本文将详述 centos7 环境下如何安装 nvidia GPU driver, CUDA 和 cuDNN。这应该是第 n 次更新安装它们啦,总体上步骤没有太大变化,只是软件的版本有一些改变。和网上类似文章相比,本文中所有的 shell 命令都可以直接执行,不需要手工去修改文件,所以更加方便。下面看看要安装的内容:
- nvidia GPU driver:英伟达公司显卡驱动。要安装 CUDA, cuDNN,这是必要的。
- CUDA(Compute Unified Device Architecture):是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达 GPU 的并行计算引擎,比 CPU 更高效的解决许多复杂计算任务。
- cuDNN(CUDA Deep Neural Network library):是 NVIDIA 打造的针对深度神经网络的加速库,是一个用于深层神经网络的 GPU 加速库。如果你要用 GPU 训练模型,cuDNN 不是必须的,但是一般会采用这个加速库。
首先验证 GPU 是否是 CUDA 兼容的。执行以下命令获得显卡信息,然后对照CUDA GPUs中的列表,搜寻 GPU 是否在其中。
如果显卡不在其中,下面也不用看了。
本文安装的版本:
- NVidia 显卡驱动:460.84
- CUDA: 11.2.2
- cuDNN: 8.2.1
1. 系统要求
首先要保证操作系统符合 CUDA 11.2 的要求。
在 centos7 下安装,内核和 centos 的版本分别需要是 3.10 和 7.7。使用下面命令检查。
uname -r
cat /etc/centos-release
如果版本不满足,需要执行以下命令,更新操作系统。
sudo yum clean all
sudo yum update
更新的时间可能会比较长,请耐性等待,一般都会顺利成功。万一发生错误,到网上找找方案,很快就能解决。
2. 软件更新
根据上节表格中的要求,安装或更新一些软件。
-
验证系统内核版本和安装开发包。
uname -r sudo yum install -y gcc gcc-c++ kernel-devel-$(uname -r) kernel-headers-$(uname -r)
-
验证 gcc 的版本。
由于 CUDA 11.3 要求 GCC 的版本是 6 以上,下面是安装 GCC7 的脚本。
sudo yum install centos-release-scl sudo yum install devtoolset-7 # launch a new shell instance using the Software Collection scl tool: scl enable devtoolset-7 bash gcc --version
如果重新登录,gcc 版本还是原先的版本,所以在 CUDA 安装前,需要执行
scl enable devtoolset-7 bash
。
3. 安装 NVidia 显卡驱动
- 根据要安装 CUDA 的版本,找到合适的显卡驱动。本次安装需要满足 g e q 460.32.03 \\geq 460.32.03 geq460.32.03。
-
下载nvidia 驱动。
-
检查当前驱动情况
sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm sudo yum install nvidia-detect # 安装nvida-detect nvidia-detect -v # 检测能够升级到的驱动器版本 cat /proc/driver/nvidia/version # 查看当前驱动版本
-
卸载之前驱动。如果第一次安装,忽略。
sudo /usr/bin/nvidia-uninstall
-
屏蔽 nouveau 显卡驱动,把 nvidiafb 从屏蔽列表中移除。
sudo rm -rf disable-nouveau.conf cat << EOF > disable-nouveau.conf blacklist nouveau options nouveau modeset=0 EOF sudo chown root:root disable-nouveau.conf sudo chmod 644 disable-nouveau.conf sudo mv disable-nouveau.conf /etc/modprobe.d/ cat /etc/modprobe.d/disable-nouveau.conf ll /etc/modprobe.d/disable-nouveau.conf
-
重建 initramfs 镜像。
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
-
修改运行级别为文本模式。
sudo systemctl set-default multi-user.target #设置运行级别为文本模式 sudo shutdown -r now
-
安装驱动。
lsmod | grep nouveau #查看nouveau是否已经禁用, 应该没有返回内容 nvidia_run=NVIDIA-Linux-x86_64-460.84.run chmod 755 $nvidia_run sudo ./$nvidia_run sudo systemctl set-default graphical.target #设置运行级别回图形模式 sudo systemctl get-default sudo shutdown -r now
安装选项:
- dkms: yes
- 32 位兼容: yes
- nvidia-xconfig: no
-
检查安装。
cat /proc/driver/nvidia/version nvidia-smi
4. 安装 CUDA
-
卸载老版本
sudo yum remove -y xorg-x11-drv-nvidia-libs #之前安装中,发现老版本的,删除后才正常 sudo yum remove -y xorg-x11-drv-nvidia #之前安装中,发现老版本的,删除后才正常 sudo yum remove -y cuda-drivers sudo yum remove -y cuda
-
安装
在 CUDA Download 选择合适的 CUDA 版本,选择了 runfile(local),将会出现如下安装代码。
scl enable devtoolset-7 bash gcc --version wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run sudo sh cuda_11.2.2_460.32.03_linux.run
当出现如下窗口时,按照下图勾选要安装的内容(不要勾选 Driver,因为上节已经安装了更新的版本),然后选择
install
。下面是安装完后的信息。
-
在. bashrc 中添加参数。
if ! grep "/usr/local/cuda/bin" ~/.bashrc then echo >> ~/.bashrc echo export PATH="\$PATH:/usr/local/cuda/bin" >> ~/.bashrc echo export CUDA_HOME=/usr/local/cuda >> ~/.bashrc echo export LD_LIBRARY_PATH="/usr/local/cuda/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc fi source ~/.bashrc
-
安装验证
head -5 /usr/local/cuda/version.json nvcc -V
-
再次检查 NVidia。如果出现报错,请返回
3. 安装 nvida 显卡驱动
中第 5 步,再次安装显卡驱动。cat /proc/driver/nvidia/version nvidia-smi
5. 安装 cuDNN
-
下载 cuDNN。打开cuDNN ,登录以后,选择最新版本后,点击
cuDNN Library for Linux (X86_64)
链接进行下载。 -
安装
tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda/include sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
-
安装验证
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
6. 其它
修复 vncserver
如果发生 vncserver 不能工作,可以尝试下面的方法。
如果使用 vncserver 进行远程桌面连接 centos,当安装完 nvidia 驱动后,可能 vncserver 不能工作。其大概原因是默认的 gnome 和显卡驱动中 opengl 不兼容。所以只要在 vncserver 中使用另外一个桌面 Xfce。
sudo yum groupinstall "Xfce" -y
cat << EOF > ~/.vnc/xstartup
xrdb $HOME/.Xresources
startxfce4 &
EOF
#启动vncserver
vncserver :1
参考
更新历史
- 2021-06-10
- NVidia 显卡驱动:460.84
- CUDA: 11.2.2
- cuDNN: 8.2.1
- 2020-05-19: 安装 nvida 显卡驱动修改了脚本
- CUDA: 10.2.89
- cuDNN: 7.6.5
- 2019-11-28
- CUDA: 10.2.89
- cuDNN: 7.6.5
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLhuinJF-1658142063966)(https://avatars.githubusercontent.com/u/5129969?v=4)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XnQHDpdY-1658142063966)(https://avatars.githubusercontent.com/u/1285447?v=4)]
https://eipi10.cn/deep-learning/2019/11/28/centos_cuda_cudnn/