NVIDIA驱动和CUDA安装

主板:华硕

显卡:GTX 1066

安装NVIDIA驱动

  1. 安装必备运行环境

  2. 1
    sudo apt-get install git cmake build-essential
  3. 下载显卡驱动NVIDIA驱动下载官网

  4. 禁用nouveau

    1
    sudo vim /etc/modprobe.d/blacklist.conf

    想最后添加

    1
    2
    blacklist nouveau 
    options nouveau modeset=0

    保存并运行

    1
    2
    sudo update-initramfs -u
    reboot
  5. 重启之后按alt+ctrl+F4进入命令行界面

    输入命令lsmod |grep nouveau,如果什么都不输出,证明关闭成功

    继续输入sudo service gdm3 stop(ubuntu 18.04)或者sudo service lightdm stop(其他)停止图形化界面,若显示啥啥啥clean则OK,再按alt+ctrl+F4回到命令行

  6. 运行chmod u+x NVIDIA......run使得驱动文件获得运行权限

  7. sudo ./NVIDIA.......run –no-x-check -no-nouveau-check -no-opengl-files前两个-不是必须的,最后一个-不写的话可能出现循环登录

    • –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
    • –no-x-check:表示安装驱动时不检查X服务,非必需。
    • –no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
    • -Z, --disable-nouveau:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。
    • -A:查看更多高级选项。

    可能会出现啥啥kernel的问题,问题出在华硕主板的secure boot(安全启动),进到bios把安全启动关闭,具体google华硕主板关闭安全启动

  8. 安装完成后reboot,重启后输入nvidia-smi有输出,证明安装完全

安装CUDA

  1. 下载CUDA.run

  2. 添加环境~/.bashrc(不确定是否需要)

    1
    2
    3
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

    export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
  3. 安装依赖库

    1
    sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  4. 更换GCC和G++版本(两个一起换,只换一个不得行)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #安装两个版本的 GCC和G++,先用4.8的
    sudo apt install gcc-7 g++-7
    sudo apt install gcc-4.8 g++-4.8
    # 调整优先级
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 80
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 80
    # 通过指令 查看优先级
    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
  5. chmod u+x cuda...run 给予运行权限

  6. 处理 installUtils.pm

    1. ./cuda*.run --tar -mxvf
    2. sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/perl-base
    3. export $PERL5LIB
  7. sudo ./cuda......run --no-opengl-libs --override运行文件(如果出错了,记得去找LOG文件)

  8. 添加CUDA到环境 ~/.bashrc

    1
    2
    3
    export PATH=/usr/local/cuda/bin:$PATH

    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  9. 测试安装是否成功

    1
    2
    3
    cd /usr/local/cuda/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery
  10. 安装cuDNN,以5.1.10来举例

    1
    2
    3
    4
    5
    6
    sudo cp * /usr/local/cuda/include/ #复制头文件
    sudo cp * /usr/local/cuda/lib64/ #复制动态链接库
    cd /usr/local/cuda/lib64/sudo
    rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
    sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
    sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接