博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu16.04显卡驱动更新及cuda、cudnn更新
阅读量:2239 次
发布时间:2019-05-09

本文共 4920 字,大约阅读时间需要 16 分钟。

Ubuntu16.04显卡驱动更新及cuda、cudnn更新

记录自己在根据项目需求过程中对环境进行相关更新,分别单独安装显卡驱动与cuda。

显卡驱动更新

实现本机显卡驱动386到410的更新

1、确保原有系统驱动卸载成功及默认驱动禁用

  • 卸载系统原有驱动:sudo apt-get remove --purge nvidia*
  • 禁用系统默认的Nouveau显卡驱动,终端执行命令:lsmod | grep nouveau,如果没有输出则表明已经禁用,如果有输出,如下图,
    在这里插入图片描述
  • 则需要禁掉,在终端执行:sudo gedit /etc/modprode.d/blacklist.conf,在blacklist.conf的最后添加下面几行:
    blacklist vga16fb
    blacklist nouveau
    blacklist rivafb
    blacklist rivatv
    blacklist nvidiafb
  • 保存更新initramfs,终端执行:sudo update-initramfs -u
  • 重启电脑确保禁用成功,重启之后再次终端输入:lsmod | grep nouveau,查看是否有输出,没有则表明禁用成功。

2、安装NVIDIA驱动

  • 按住Ctrl+Al+F2 进入命令行界面,输入用户名和密码登录命令行界面,执行:
  • sudo service lightdm stop
  • sudo init 3
  • 进入NVIDIA的.run文件目录下:
  • sudo chmod a+x NVIDIA-Linux-x86_64-410.78.run
  • sudo ./NVIDIA-Linux-x86_64-410.78.run --no-opengl-files
  • 安装过程中出现选择Yes or No时,分别如下选择:
  • The distribution-provided pre-install script failed! Are you sure you want to continue?选择 yes 继续
  • Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?选择 No 继续
  • Nvidia’s 32-bit compatibility libraries? 选择 No 继续
  • Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.选择 Yes 继续
  • 恢复到图形界面:sudo service lightdm start
  • sudo reboot,终端执行:nvidia-smi出现下图则表明成功。
    在这里插入图片描述

3、如重启电脑之后出现如下错误

  • NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.一般是内核冲突问题,网上也说通过下面命令可解决:
  • sudo apt-get install dkms
  • sudo dkms install -m nvidia -v 410.78,其中410.78是对应自己的显卡驱动版本号,可通过命令ll /usr/src查询
  • 不过按照上面命令没有解决我的问题,此时则需要再查看是否禁用系统默认的Nouveau显卡驱动,如果没有则需要禁掉即可。重启电脑后输入:lsmod | grep nouveau 没有任何输出说明禁用成功。

Cuda及Cudnn的更新

1、Cuda更新

  • 卸载原始的cuda9.0,两种方式:
  • 1)如果/usr/local/cuda-9.0/bin/ 下存在文件uninstall_cuda_9.0.pl,则执行下面命令:
  • sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
  • cd /usr/local/
  • rm -r cuda-9.0
  • 2)如果/usr/local/cuda-9.0/bin/ 下不存在文件uninstall_cuda_9.0.pl,则通过下面命令删除
  • sudo apt-get remove --purge cuda*
  • sudo apt-get update
  • 安装cuda10.0,分别执行下面命令:
  • sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
  • sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub,其中<version>表示版本,通过Tab键可自动弹出
  • sudo apt-get update
  • sudo apt-get install cuda
  • 打开root目录下的.bashrc文件(vi ~/.bashrc),在文件末尾添加以下路径, 命令如下:
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
  • export PATH=$PATH:/usr/local/cuda-10.0/bin
  • export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
  • 在终端运行:source ~/.bashrc
  • 检查CUDA10.0是否安装成功, 终端执行下面命令:
  • cat /usr/local/cuda/version.txt,显示版本号则成功

2、安装Cudnn

  • 下载对应版本的cudnn,并cd到解压出的cuda文件夹中打开终端,执行如下命令:
  • sudo cp include/cudnn.h /usr/local/cuda/include/
  • sudo cp lib64/lib* /usr/local/cuda/lib64/
  • 建立软链接,进入/usr/local/cuda/lib64目录下,执行以下指令:
  • sudo chmod +r libcudnn.so.7.6.1
  • sudo ln -sf libcudnn.so.7.6.2 libcudnn.so.7
  • sudo ln -sf libcudnn.so.7 libcudnn.so
  • sudo ldconfig
  • 检查cudnn是否安装成功, 执行如下命令:
  • cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  • 如果出现如下字样,说明安装成功:
#define CUDNN_MAJOR 7#define CUDNN_MINOR 6#define CUDNN_PATCHLEVEL 1--#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
  • 再一次安装cuda10.2以及更新cudnn时,在sudo ldconfig时却出现下面错误,软链接出现一些错误
/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 is not a symbolic link/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 is not a symbolic link
  • 此时再需重新根据错误创建链接,然后再sudo ldconfig,再执行cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2即可。
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.2 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8

转载地址:http://bwmbb.baihongyu.com/

你可能感兴趣的文章
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST05~06-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST09~10-----P5~6
查看>>
【托业】【新东方托业全真模拟】TEST07~08-----P5~6
查看>>