Linux GPU加速训练环境搭建(NVIADIA、CUDA、CUDNN)

安装人工智能GPU加速训练环境主要分为3部分:NVIDIA显卡驱动、CUDA TooIKitCUDNN

基础环境安装

基础环境安装是基于Centos系统的,但是整体大同小异。

安装对应版本内核源码包、gcc编译器
sudo yum install -y gcc
sudo yum install -y gcc-c++
sudo yum install -y kernel
sudo yum install -y kernel-devel
sudo yum install -y kernel-header

检查安装版本,这里可能遇到的情况有kernel存在两个版本,此时要卸载一个,确保存在kernelkernel-develkernel-header包的版本号一致:

rpm -qa | grep gcc
rpm -qa | grep kernel

卸载多余的kernel

rpm -e --nodeps kernel-3.10.0-514.el.x86_64  # 不检查依赖关系直接删除
查看nouveau有没有禁用

系统默认安装的nouveau kernel driverNVIDIA驱动冲突,所以要先检查是否被禁用,执行命令:

lsmod | grep nouveau

有输出信息就说明没有被禁用,禁用方法如下:

su
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
shutdown -r now

重启后再次执行上面的检查命令观察是否禁用成功,若禁用失败使用如下方法:

vi /usr/lib/modprobe.d/dist-blacklist.conf

# 添加两行内容
blacklist nouveau
options nouveau modeset=0

下一步给当前镜像备份,建立新镜像(不知道什么意思)

# 备份
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# 新建
dracut /boot/initramfs-$(uname -r).img $(uname -r)
# 再次重启
shutdown -r now

重启后检查是否禁用成功。

NVIDIA显卡驱动安装

当我们使用一台个人电脑的时候默认已经安装了NVIDIA显卡驱动,因为没有显卡驱动根本用不了显卡;但是如果是服务器或安装了外置的显卡硬件,则需要到英伟达官网选择显卡和系统版本进行驱动下载:
https://www.nvidia.cn/Download/index.aspx?lang=cn
在这里插入图片描述

注意CUDA TooIKit的版本需要与Tensorflow的版本对应,具体对应版本见后面的笔记。
下载安装文件后,执行以下命令进行安装:

# 进入纯命令模式,有图形化界面时不可以进行安装
init 3
# 为安装文件增加可执行权限
sudo chmod +x NVIDIA-Linux-x86_64-384.59.run
# 运行安装文件
sudo ./NVIDIA-Linux-x86_64-384.59.run -no-x-check -no-nouveau-check -no-opengl-files

一路选择OK或者YES进行安装
在这里插入图片描述
提示:如果安装遇到问题,可以根据提示查看日志位置,日志中有时会提示错误解决方案,比如运行安装文件时多家一些命令。
验证是否安装成功,如果有下方图片的输出则表示安装成功

nvidia-smi

在这里插入图片描述

提示:右上角的CUDA Version是当前显卡驱动支持的最高版本。

CUDA TooIKit安装

  • CUDA本质上是一个工具包而已,所以我们可以在同一个设备上安装很多个不同版本的CUDA工具包。
CUDA与显卡驱动的关系
  • CUDA TooIKit本地安装包内含特定版本的Nvidia显卡驱动,所以只需要选择下载CUDA TooIkit就足够了,但想安装其他版本的显卡驱动就要自行下载相应的版本,步骤如上面所写。
  • 所以NVIDIA显卡驱动和CUDA工具包本身是没有捆绑关系的,也不是一一对应的关系,只不过是安装CUDA工具包会默认携带与之匹配的最新的驱动程序。
  • 一般情况下,我们只需要安装最新版本的显卡驱动,然后根据自己的需求选择不同的CUDA工具包就可以了。

注意:使用离线的CUDA总是会捆绑CUDA和驱动程序,所以使用多个CUDA的时候就不要选择离线安装CUDA了,否则每次都会安装不同的显卡驱动(虽然安装时可以忽略但还是会占很多空间),我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。

TensorFlow各版本CUDACUDANN对应关系表
  • 如何确定自己应该安装什么版本的CUDA呢,这就需要根据自己使用的Tensorflow版本来确定CUDA的版本。
版本Python 版本编译器编译工具cuDNNCUDA
tensorflow_gpu-2.0.0-alpha02.7、3.3-3.6GCC 4.8Bazel 0.19.27.4.1以及更高版本CUDA 10.0 (需要 410.x 或更高版本)
tensorflow_gpu-1.13.02.7、3.3-3.6GCC 4.8Bazel 0.19.27.410.0
tensorflow_gpu-1.12.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.11.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.10.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.9.02.7、3.3-3.6GCC 4.8Bazel 0.11.079
tensorflow_gpu-1.8.02.7、3.3-3.6GCC 4.8Bazel 0.10.079
tensorflow_gpu-1.7.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.6.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.5.02.7、3.3-3.6GCC 4.8Bazel 0.8.079
tensorflow_gpu-1.4.02.7、3.3-3.6GCC 4.8Bazel 0.5.468
tensorflow_gpu-1.3.02.7、3.3-3.6GCC 4.8Bazel 0.4.568
tensorflow_gpu-1.2.02.7、3.3-3.6GCC 4.8Bazel 0.4.55.18
tensorflow_gpu-1.1.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
tensorflow_gpu-1.0.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
安装CUDA
  • 在安装CUDA ToolKit前要确保系统安装了gccmake。如果系统使用C++进行CUDA编程,需要安装g++,如果要运行CUDA程序,需要安装相应的依赖库。
sudo apt update # 更新 apt
sudo apt install gcc g++ make # 安装 gcc g++ make
sudo apt install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev freeglut3-dev # 安装依赖库

CUDA ToolKit的下载页面选择系统版本和安装方式,下载并运行runfile
https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述

sudo sh cuda_10.1.243_418.87.00_linux.run

上面已经写道,虽然·CUDA ToolKit·系统将自动安装与其匹配的NVIDIA Driver,这里我们分开安装NVIDIA DriverCUDA ToolKit
第一步会提示,是否安装NVIDIA驱动,我们选择跳过;
其他步骤我们就根据提示输入同意或输入安装路径即可。
安装成功后,屏幕上将输出以下内容:

Driver:   Installed  # 这里我们是忽略
Toolkit:  Installed in /usr/local/cuda-10.1/
Samples:  Installed in /home/abneryepku/

Please make sure that
 -   PATH includes /usr/local/cuda-10.1/
 -   LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root

从输出信息可以看出,还需要我们配置环境变量PATHLD_LIBRARY_PATH~/.bashrc文件中。
注意:环境变量的路径根据提示信息进行设置,否则不管用。

# add nvcc compiler to path
export PATH=$PATH:/usr/local/cuda-10.1/bin
# add cuBLAS, cuSPARSE, cuRAND, cuSOLVER, cuFFT to path
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64:/usr/lib/x86_64-linux-gnu

输入以下命令验证cuda安装是否成功,有版本信息描述表示成功,输出其他则表示安装出现问题:

nvcc -V

在这里插入图片描述

CUDNN安装

  • cuDNN是一个SDK,是一个专本用于神经网络的加速包,每一个版本的CUDA可能又好几个版本的cuDNN与之对应,所以cuDNNCUDA没有一一对应的关系,只能说有一个最新版本的cuDNN版本与CUDA对应的最好。
    去官网下载cuDNN加速包(需要登录NVIDIA):
    https://developer.nvidia.com/rdp/cudnn-download
    切换到cudnn压缩文件所在的目录,解压文件,然后替换CUDA工具包中的库:
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*

通过下面的命令查看安装情况,如果结果如下图逐行显示版本号,则安装成功:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼义II虎神

打赏5C币,作者可获得4C币

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值