zoukankan      html  css  js  c++  java
  • 配置CUDA和cuDNN以及Detectron过程

    配置CUDA和cuDNN真是心累,汗!前前后后下了n个版本,最终找到了正确的打开方式。

    安装显卡

    首先我的系统Ubuntu 16.04,显卡是Nvidia RTX 2060,这个显卡的驱动真心不好装,在这里也记录一下安装过程吧。
    ubuntu安装显卡共有3种方式。

    • 使用标准仓库进行自动化安装
      在安装的发行版中,如 ubuntu, Linux Mint等,找到附加驱动管理软件

    这种安装方式有如下缺点:

    如果你的显卡比较新可能会出现安装低版本的NVIDIA驱动而造成即可安装完成,但是并没有真正安装成功,可能会出现循环登录,关机死机等等原因。

    当你更换驱动的时候可能原有的NVIDIA驱动删除不干净。

    当然这种方式也是有优点的:

    不需要手动禁止nouveau
    操作方便
    其实ubuntu自带命令行版本安装工具ubuntu-drivers,终端输入:

    ubuntu-drivers devices   # 查询所有ubuntu推荐的驱动
    
    
    • 使用PPA仓库进行自动化安装
      使用图形驱动程序PPA存储库允许我们安装NVIDIA beta驱动程序,这有可能会出现兼容性的问题,但是有些时候必须使用这种方式,比如显卡比较新,使用上面所讲的方式检测驱动的安装情况,如果不正常那么只能使用这种方式安装最新的NVIDIA驱动。
      sudo add-apt-repository ppa:graphics-drivers/ppa
      sudo apt update
      这样便可以安装成功了。
      但是我的RTX2060显卡按照这种安装方式,重启之后,屏幕一直闪烁,不能正常进入系统。无奈,进入安全模式,卸载Nvidia 驱动。
      于是我只能使用下面的这种安装方式
    • 使用官方的NVIDIA驱动进行手动安装
      下载NVIDIA官方驱动 https://www.geforce.cn/drivers sudo apt-get remove –purge nvidia*
      bios禁用禁用secure boot,也就是设置为disable 禁用nouveau
      打开编辑配置文件:
      sudo gedit /etc/modprobe.d/blacklist.conf
      在最后一行添加:blacklist nouveau
      这一条的含义是禁用nouveau第三方驱动,之后也不需要改回来。
      输入
    sudo update-initramfs -u
    
    
    • 重启 reboot
    • 重启之后,可以查看nouveau有没有运行:
    lsmod | grep nouveau  # 没输出代表禁用生效
    
    
    • 停止可视化桌面:

    为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。最简单的方法是使用telinit命令更改为运行级别3。执行以下linux命令后,显示服务器将停止,因此请确保在继续之前保存所有当前工作(如果有):

    sudo telinit 3
    之后会进入一个新的命令行会话,使用当前的用户名密码登录

      1. 安装驱动

    给驱动文件增加可执行权限:

    sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
    然后执行安装:

    sudo sh ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files
    参数介绍:

    –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
    –no-x-check 安装驱动时不检查X服务
    –no-nouveau-check 安装驱动时不检查nouveau
    后面两个参数可不加。
    安装成功后,输入 nvidia-smi可以查看显卡信息。

    安装CUDA

    安装CUDA建议先查询要配置框架支持的CUDA和cuDNN版本再下载
    比如我想安装pytorch,我可以到清华源的网站去下载pytorch版本。https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
    例如我要下载这个pytorch-nightly-1.2.0.dev20190615-py2.7_cuda10.0.130_cudnn7.5.1_0.tar.bz2,我就需要下载CUDA10.0.130,cuDNN7.5.1。到英伟达网站下载CUDA https://developer.nvidia.com/cuda-downloads。按照相应的说明进行安装配置。
    注意:如果之前有安装其他CUDA版本,而/usr/local/cuda没有链接到新的cuda位置,需要手动链接

    切换至 cuda-8.0
    sudo rm -rf /usr/local/cuda
    sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda
    nvcc --version
    which nvcc
    
    切换至 cuda-10.0
    sudo rm -rf /usr/local/cuda
    sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda
    nvcc --version
    which nvcc
    

    按照cuDNN

    到这个网址下载
    https://developer.nvidia.com/rdp/cudnn-download
    分别下载
    cuDNN Library for Linux
    cuDNN Runtime Library for Ubuntu16.04 (Deb)(我的是ubuntu16.04)
    cuDNN Developer Library for Ubuntu16.04 (Deb)
    cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb)
    第一个是个压缩包,可以将其解压,把include里的内容复制到/usr/local/cuda(会链接到你的CUDA地址)/include,lib64文件夹同理复制到/usr/local/cuda/lib64.
    之后重置cudnn权限

       sudo chmod a+r /usr/local/cuda/include/cudnn.h
    
    

    之后安装下面三个文件。

    按照nccl

    到这个网址,选择版本下载即可https://developer.nvidia.com/nccl/nccl-download
    执行命令测试cuda是否按照成功

    cp -r /usr/src/cudnn_samples_v7/ ~
    cd ~/cudnn_samples_v7/mnistCUDNN
    make clean && make
    ./mnistCUDNN
    

    输出成功则配置成功。
    查看cuda版本的方法:
    cat /usr/local/cuda/version.txt
    查看cudnn版本的方法:

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

    安装pytorch

    从上面清华源下载包之后,使用命令 conda install +包名安装。
    可以使用 python

    import caffe2
    import torch
    命令看是否成功。如果报错可使用这个命令安装
    $ conda install protobuf
    $ conda install future
    pip install numpy==1.14.5
    再检查是否出错。
    或者使用这两个命令检查:
    $ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

    $ python -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

  • 相关阅读:
    SpringBoot 之Spring Boot Starter依赖包及作用
    WebApi过滤器使用和请求实体合法性验证
    sql server 事务隔离性 snapshot 、read committed说明
    jQuery的deferred对象详解
    Juqery插件编写 基础说明
    sqlServer MERGE 对数据进行修改或插入自动视别 特别用于批量数据的插入或修改
    .net EntityFramework dbContext 如何实例化
    NOPI Excel 数据导入到数据库
    知识点整理01- 引用对象被子方法赋值后不改变;CheckBox 取消选择不可用问题
    .net Windows Service 按装及遇到的问题
  • 原文地址:https://www.cnblogs.com/superfly123/p/11625221.html
Copyright © 2011-2022 走看看