GPU驱动及CUDA安装流程介绍

GPU驱动及CUDA安装流程介绍

  1. 安装前准备工作
    1. 确认GPU型号和操作系统版本
    2. 准备gpu驱动和CUDA软件包

      在nvidia官网进行驱动包下载

      GPU驱动下载链接:https://www.nvidia.cn/Download/index.aspx?lang=cn

      linux系统均选择 Linux 64-bit

      CUDA Toolkit选择最新版本,注意该版本一定要大于等于cuda软件的版本。

      选择CUDAGPU驱动版本,需同时考虑与客户程序的兼容性问题。

      CUDA 10.1/10.2可以搭配CUDA toolkit 10.2版本的GPU驱动。

      CUDA 11.0 建议搭配CUDA CUDA toolkit 11.0版本的GPU驱动


      CUDA下载链接:https://developer.nvidia.com/cuda-downloads

      选择合适的操作系统版本进行下载。


    3. 检查服务器GPU识别情况

      安装GPU驱动之前需要在操作系统下查看GPU卡是否能够完全识别,如不能识别需要进行重新插拔、对调测试等步骤进行硬件排查。

      #确保可以查看到所有的GPU

      # lspci | grep -i nvidia


    4. 老版本软件包卸载

      a) 若安装过其他版本的GPU驱动或CUDA,请先卸载。

      GPU驱动卸载方法:

      # /usr/bin/nvidia-uninstall

      CUDA卸载方法:

      # /usr/local/cuda-X.Y/bin/cuda-uninstaller


      或(老版本卸载方法)

      # /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

    5. 安装gcc、g++编译器

      GPU驱动安装时需要gcc编译器。

      cuda安装samples测试程序进行make时需要g++,但安装cuda软件包时不需要。

      CentOS 7:

      #检查版本

          gcc -v

          g++ -v

      #软件包安装

      # yum install gcc

      # yum install gcc-c++

      SUSE:

      #检查版本

      gcc -v

      g++ -v

      #软件包安装

      zypper in gcc

      zypper in gcc-c++

      Ubuntu:

      #检查版本

      # gcc -v

      # g++ -v

      #软件包安装

      # gpt-get install gcc

      # gpt-get install g++

      # apt-get install make

      #软件包检查

      # dpkg -l gcc

      # dpkg -l g++

      # dpkg -l make

    6. 安装kernel-devel和kernel-headers软件包

      CentOS 7

      # yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

      Ubuntu:

      #Ubuntu可以不安装,也可以从阿里镜像站或网易镜像站下载,需注意内核版本。

      SUSE:

      zypper install kernel-source-$(uname -r) #只安装这一个即可

      zypper install kernel-default-devel-$(uname -r)



  1. 禁用系统自带的nouveau模块

    检查nouveau模块是否加载,已加载则先禁用

    # lsmod | grep nouveau


    CentOS 7:

    #没有blacklist-nouveau.conf文件则创建

    # vim /usr/lib/modprobe.d/blacklist-nouveau.conf blacklist nouveau

    options nouveau modeset=0

    执行如下命令使内核生效(需要重启服务器后才可真正禁用nouveau)

    # dracut -force

    Ubuntu:

    vi /etc/modprobe.d/blacklist.conf

    在文本最后添加以下内容:

    blacklist nouveau

    options nouveau modeset=0

    保存退出,执行以下命令生效:

    # update-initramfs -u

    重启操作系统

  2. 修改系统运行级别为文本模式

    GPU驱动安装必须在文本模式下进行

    CentOS 7

    # systemctl set-default multi-user.target

    Ubuntu:

    systemctl stop lightdm

    systemctl set-default multi-user.target(也可以不执行此命令)

    然后ctrl+alt+F1 切换到其他字符终端窗口(F7为图形中断窗口),或者init 3

    SUSE:

    vim /etc/inittab

    修改

    id:5:initdefault:


    id:3:initdefault:

  3. 重启系统后,使禁用nouveau模块配置生效并进入文本模式


  1. GPU驱动安装
    1. root用户下进行GPU驱动

      # chmod +x NVIDIA-xxx.run

      # ./NVIDIA-Linux-x86_64-390.46.run –no-opengl-files –ui=none –no-questions –accept-license

    2. 配置GPU驱动内存常驻模式

      GPU驱动模式设置为常驻内存:

      # nvidia-smi -pm 1

      设置开机自启动

      vim /etc/rc.d/rc.local

      在文件中添加一行

      nvidia-smi -pm 1

      赋予/etc/rc.d/rc.local文件可执行权限

      # chmod +x /etc/rc.d/rc.local

      #若无/etc/rc.d/rc.local,也可修改

      vim /etc/rc.local

      chmod +x /etc/rc.local

      ================================================

      ubuntu 18.04 配置内存常驻模式开机自启动。

      https://blog.csdn.net/ererfei/article/details/98205463

      创建文件: vi /etc/systemd/system/rc-local.service

      [Unit]

      Description=/etc/rc.local Compatibility

      ConditionPathExists=/etc/rc.local

      [Service]

      Type=forking

      ExecStart=/etc/rc.local start

      TimeoutSec=0

      StandardOutput=tty

      RemainAfterExit=yes

      SysVStartPriority=99

      [Install]

      WantedBy=multi-user.target

      创建文件: vi /etc/rc.local

      #!/bin/sh -e

      nvidia-smi -pm 1

      exit 0

      赋予可执行权限

      chmod +x /etc/rc.local

      启动服务并设置服务开机自启动

      systemctl enable rc-local.service

      systemctl start rc-local.service

      systemctl status rc-local.service

      重启系统后验证

      =================================================

      #SUSE

      vim /etc/init.d/after.local #没有就新建

      nvidia-smi -pm 1

      chmod +x /etc/init.d/after.local

    3. nvidia-smi

      安装完GPU驱动后,可以使用nvidia-smi命令进行GPU状态查看及相关配置。

  2. CUDA安装
    1. 安装CUDA

      安装CUDA时需注意,如果之前安装过GPU驱动,安装CUDA时就不要再选择GPU驱动安装了。

      chmod +x cuda-xxx.run

      ./cuda-xxx.run –no-opengl-libs

      新版本CUDA安装界面:

      注意Driver选项,表示是否安装GPU驱动,如果之前已经安装了GPU驱动,这里不要再勾选。


      旧版本CUDA安装:

      [root@ localhost ~]# ./cuda-xxx.run –no-opengl-libs

      … … … …

      … … … … ####约定条款,此处忽略打印

      —————–

      Do you accept the previously read EULA?

      accept/decline/quit: accept

      Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?

      (y)es/(n)o/(q)uit: n ###若已经安装过驱动,则此处不需再安装

      Install the CUDA 9.2 Toolkit?

      (y)es/(n)o/(q)uit: y

      Enter Toolkit Location

      [ default is /usr/local/cuda-9.1 ]: ####回车,默认

      Do you want to install a symbolic link at /usr/local/cuda?

      (y)es/(n)o/(q)uit: y

      Install the CUDA 9.2 Samples?

      (y)es/(n)o/(q)uit: y ##安装samples

      To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.2/bin

      To uninstall the NVIDIA Driver, run nvidia-uninstall

      Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.2/doc/pdf for detailed information on setting up CUDA.

      Logfile is /tmp/cuda_install_62403.log

      ####安装完成,如果安装失败,查看上述提示日志信息。

    2. 配置环境变量

      添加到/etc/profile文件中,对所有用户生效

      # vim /etc/profile

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

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

      # source /etc/profile

      测试cuda安装是否正确,环境变量是否识别成功

      # nvcc -V