• 安装nvidia显卡驱动+cuda+cudnn


    应用背景:darknet+yolov3训练自己数据,特定场景目标识别,小目标检测

    CPU训练太慢,计算机上有GT 730显卡,虽挫但聊胜于无,搞之。

    详情见参考链接,本文只做简要记录。

    0. 查看显卡信息

    (1)输入如下命令:

    lshw -c video
    

      

     (2)为了再次确认一遍,你还可以使用这个命令查看你可以使用的驱动:

    ubuntu-drivers devices
    

      

     (3)其他类似命令

    root@ubuntu:/home/ubuntu# lspci |grep -i vga
    02:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
    

    (4)查看GPU型号

    lspci | grep -i nvidia
    

    (5)查看NVIDIA驱动版本

    sudo dpkg --list | grep nvidia-*

    1. 安装显卡驱动

    (1)Software & Updates -> Additional Drivers选择所需版本安装即可(如,proprietary, tested)。

    几经折腾,最后其实就这个方法搞定。

    安装cuda时,其实包含了显卡驱动,而且是对应版本,所以安装显卡驱动应该可以跳过,直接在安装cuda时一起安装驱动。

    但是,安装cuda时选择安装驱动,可能会报错,网上很多解决办法,有点麻烦。

    因此,在Software & Updates -> Additional Drivers安装也是个不错的选择。

    重启才能完成驱动安装。

    (2)ubuntu命令行安装,效果类似(1)的方法

    ubuntu-drivers devices
    sudo ubuntu-drivers autoinstall
    

    驱动安装完成,重新启动,就能看到GPU识别成功了:

     你也可以选择,只安装其中一个驱动,命令如下:

    sudo apt install nvidia-340 (340等从ubuntu-drivers devices命令输出中选择)

    (3)官方下载显卡驱动安装

    2. 安装cuda

    注意,不同版本cuda对显卡驱动版本有一定要求。比如,cuda-10.2要求驱动440版本,cuda-10.1要求驱动418版本。

    上一步骤(1)安装驱动435版本,满足cuda-10.1的要求,因此,应当下载cuda-10.1进行安装。

    官网下载安装包:

    各个版本: CUDA Toolkit Archive

    根据官网说明安装即可:

    例如:CUDA Toolkit 10.2 Download

    wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
    sudo sh cuda_10.2.89_440.33.01_linux.run
    

    根据提示安装即可,如果上一步已经安装了驱动,这里要取消驱动安装。否则,很可能失败。

    注意,在.bashrc文件末尾加入:

    #cuda
    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}}

    3. 安装cudnn

    官网下载安装包,安装即可,下载安装包需要注册NVIDIA账号。

    注意,cudnn的版本应该与cuda版本对应。

    各个版本:cuDNN Archive

    下载了 deb 格式的文件,打开终端找到下载的deb 文件所在的位置,然后按步骤安装三个文件:

    sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
    sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb
    sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb

    Runtime 和 Developer 版本的区别是:
    developer library 包含了在Ubuntu系统上开发深度学习时所需的cuDNN头文件,如果你不需要开发编译任何深度学习程序,而只是将其用于运行某些深度学习应用,那么只下载“runtime library”就足够了。
    我是把3个文件都下载下来了,分别安装。

    主要参考链接:cuDNN的安装(版本选择, Runtime 还是 Developer)

    验证那块有点不一样,因为我的情况是安装到/usr/include了。

    官方安装指南:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites

    4. 显示当前GPU使用情况

    nvidia-smi 
    

      

    nvidia-smi(显示一次当前GPU占用情况)
    nvidia-smi -l(ubuntu1804,每5秒刷新一次并显示)
    watch -n 2 nvidia-smi (其中,2表示每隔6秒刷新一次终端的显示结果)

    我这儿没有启动任何利用显存资源的进程,所以没有占用任何资源。

    第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。 

    第二栏的Temp:是温度,单位摄氏度。 
    第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。 
    第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。 
    第五栏的Bus-Id是涉及GPU总线的东西
    第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。 
    第五第六栏下方的Memory Usage是显存使用率。 
    第七栏是浮动的GPU利用率。 
    第八栏上方是关于ECC的东西。 
    第八栏下方Compute M是计算模式。 
    下面一张表示每个进程占用的显存使用率。

    显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。

    参考链接:

    各种查看版本

    cuda_geforce

    cuda-gpus

    NVIDIA Developer Program

    cuda-toolkit

    cuda-legacy-gpus
    supported-gpus
    Ubuntu16.04+cuda8.0安装教程
    DOWNLOAD DRIVERS FOR NVIDIA GRAPHICS CARDS
    nvidia-drivers-on-ubuntu-16-04-geforce-gt-730m
    Ubuntu下安装CUDA8.0及nvidia驱动(详细教程)
    rcuda
    Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)
    真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)
    Ubuntu16.04+cuda8.0+caffe安装教程
    NVIDIA CUDA Installation Guide for Linux
    ubuntu 18.04 安装yolov3 + GPU + CUDA+ cuDNN
    cuDNN Archive

    cuDNN Support Matrix
    cuDNN的安装(版本选择, Runtime 还是 Developer)

    CUDA Toolkit Archive

  • 相关阅读:
    laravel MethodNotAllowedHttpException错误一个原因
    laravel查看执行sql的
    二维,多维数组排序array_multisort()函数的使用
    REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR获取客户端IP
    学习正则笔记
    关于apidoc文档生成不了的一个原因
    laravel 表单验证 Exists 规则的基本使用方法
    laravel 500错误的一个解决办法
    关于laravel 用paginate()取值取不到的问题
    C语言寒假大作战02
  • 原文地址:https://www.cnblogs.com/Jaguar/p/12567645.html
Copyright © 2020-2023  润新知