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())'

  • 相关阅读:
    231. Power of Two
    204. Count Primes
    205. Isomorphic Strings
    203. Remove Linked List Elements
    179. Largest Number
    922. Sort Array By Parity II
    350. Intersection of Two Arrays II
    242. Valid Anagram
    164. Maximum Gap
    147. Insertion Sort List
  • 原文地址:https://www.cnblogs.com/superfly123/p/11625221.html
Copyright © 2011-2022 走看看