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

posted @ 2019-10-05 17:32  Suppperfly  阅读(314)  评论(0编辑  收藏  举报