• Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)


    0. 前言

    • 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;
    • 此安装是在 Intel 集显下的图形化界面,即用集显做 display,用 NVIDIA 独显做计算;循环登陆问题是因为安装时没有加 --no-opengl-libs 参数,默认安装了 OpenGL,覆盖掉了原来显卡的 OpenGL 库
    • 若事先单独安装了 NVIDIA 驱动,且在 NVIDIA 显卡下的图形化界面安装 cuda(即用 NVIDIA 显示同时做显示和计算),则在安装 cuda 时,取消安装 NVIDIA 驱动的选项
    • 关于自己的电脑 GPU,Linux内核等是否满足安装 cuda的要求,请参考官方安装指南

    1. 下载安装文件和官方指南

    登陆官网 https://developer.nvidia.com/cuda-downloads,下载相应版本的安装文件,注意安装文件类型选择 runfile(local)

         

    同时下载官方的安装指南,便于参考

             

    2. 禁用 nouveau 驱动(nouveau是 ubuntu16.04 默认安装的第三方开源驱动,安装cuda会跟nouveau冲突,需要先禁用)

    •  先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中
    lsmod | grep nouveau
    • 修改 /etc/modprobe.d/blacklist.conf 文件
    sudo vim /etc/modprobe.d/blacklist.conf

    在末尾加入

    blacklist nouveau
    options nouveau modeset=0
    • 执行以下命令,并重启
    sudo update-initramfs –u
    • 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功
    lsmod | grep nouveau

     3.  文本命令行模式运行 runfile 文件安装CUDA

    • 按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码
    • 先关闭图形化界面
    sudo service lightdm stop

    cd 到 runfile 文件保存的路径,进行安装(重点!!! 要么在此处加上 --no-opengl-libs 选项,要么在后面通过交互式界面进行手动选择

    sudo sh cuda_10.1.168_418.67_linux.run --no-opengl-libs

    执行命令后,稍等一会儿,会出现交互界面,输入 accept,过一会儿会出来选择页面进行手动设置(如是否安装 nvidia 驱动及驱动设置),最后选择 install

    注意:若不小心安装了 OpenGL,则后面会遇到循环登陆的问题,原因就是 NVIDIA显卡 的 OpenGL 库覆盖了当前 Intel 显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载 cuda 和 NVIDIA驱动,再按正确的步骤重新安装

    sudo /usr/local/cuda-10.1/bin/cuda-uninstaller
    sudo /usr/bin/nvidia-uninstall
    •  若能重新进入图形化界面,则基本安装成功
    sudo service lightdm start

    4. 检查 Device Node Verification

    ls /dev/nvidia*

    若结果显示 /dev/nvidia0      /dev/nvidiactl      /dev/nvidia-uvm,则说明安装成功;若显示类似 No such file or directory等信息,则进行如下操作

    sudo vim /etc/rc.local

    第一行为 #!/bin/sh -e,把 -e 选项去掉,然后把下面的文本复制到 exit 0 之前,保存退出

    /sbin/modprobe nvidia
    if [ "$?" -eq 0 ]; then
      # Count the number of NVIDIA controllers found.
      NVDEVS=`lspci | grep -i NVIDIA`
      N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
      NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
      N=`expr $N3D + $NVGA - 1`
      for i in `seq 0 $N`; do
        mknod -m 666 /dev/nvidia$i c 195 $i
      done
      mknod -m 666 /dev/nvidiactl c 195 255
    else
      exit 1
    fi
    /sbin/modprobe nvidia-uvm
    if [ "$?" -eq 0 ]; then
      # Find out the major device number used by the nvidia-uvm driver
      D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
      mknod -m 666 /dev/nvidia-uvm c $D 0
    else
      exit 1
    fi

    重启后,再次输入以下命令,此时应该会出现 /dev/nvidia0   /dev/nvidiactl    /dev/nvidia-uvm,说明安装成功

    ls /dev/nvidia*

    5. 设置环境变量,写入 /etc/profile 文件

    sudo vim /etc/profile

    在最后加入两行(64位系统为lib64,32位系统为lib)

    export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
    
    export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    重启,检查环境变量是否设置成功

    • 验证驱动版本
    cat /proc/driver/nvidia/version 
    • 验证CUDA Toolkit
    # 设置环境变量后,重启生效
    nvcc -V

    6. 编译 cuda 提供的 samples

    cd /home/xxx/NVIDIA_CUDA-10.1_Samples
    make

    等待一段时间,编译 成功后,二进制文件会存放在 NVIDIA_CUDA-10.1_Samples/bin 中,执行下面的二进制文件,看是否成功

    cd /home/lxxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release
    ./deviceQuery

    ./bandwidthTest

    若出现以下信息,则说明成功

  • 相关阅读:
    小程序云开发 -- 云函数定时触发器配置
    小程序echarts 构建中国地图并锚定区域点击事件
    微信小程序接入百度OCR(身份证识别)
    微信小程序开发技巧总结(三)-- 云开发时效数据刷新和存储 (access_token等)
    微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)
    微信小程序开发技巧总结(二) -- 文件的选取、移动、上传和下载
    SpringBoot Jpa 自定义查询
    SpringBoot Jpa 分页查询最新配置方式
    【软工】提问回顾与个人总结
    【软工】[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE
  • 原文地址:https://www.cnblogs.com/dinghongkai/p/11268976.html
Copyright © 2020-2023  润新知