zoukankan      html  css  js  c++  java
  • ubuntu16安装cuda9.0 + cudnn7.5.1 + python3.6 配置mmdetection项目

    1.降级内核

    1.1 安装新内核

    由于最新ubuntu系统的内核等级过高,安装低版本驱动会失败,所以要将系统内核版本降低。

    安装4.4.0-98版本内核。

    sudo apt-get install linux-headers-4.4.0-98-generic

    linux-image-4.4.0-98-generic

    linux-image-extra-4.4.0-98-generic

    1.2更新grub

    编辑/etc/default/grub

    sudo vi /etc/default/grub

    使用方向键移动到

    GRUB_HIDDEN_TIMEOUT=0

    按 i 键 进入编辑模式 在前面加入# 注释该行,开机时会出现高级选项

    #GRUB_HIDDEN_TIMEOUT=0

    Esc键退出编辑 :w 保存 :q 退出

    更新引导

    sudo update-grub

    如果当前驱动版本过高,重启后可能会出现重复登录的情况。可以提前把要安装的显卡驱动下载好,以备安装。

    重启计算机,进入高级选项,选择新安装的内核。

    sudo reboot

    如果重复登录,CTRL+ALT+F1进入命令行模式登录。

    1.3卸载旧内核

    查看当前内核

    uname -r

    查看所有内核

    $ dpkg --get-selections| grep linux

    卸载多余内核

    sudo apt remove linux-headers-4.15.0-43-generic
    linux-modules-4.15.0-43-generic
    linux-modules-extra-4.15.0-43-generic
    linux-image-4.15.0-43-generic    

    将/etc/default/grub修改回原始状态。

    2.安装驱动

    2.1从官网下载驱动

     由于384.81不支持1080ti,所以下载的是384.98

     

    2.2安装驱动

    首先卸载原有驱动

    sudo apt-get remove --purge nvidia-*
    sudo apt-get autoremove

    禁用nouveau驱动

    sudo gedit /etc/modprobe.d/blacklist.conf

    在blacklist.conf文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)

    blacklist nouveau 
    options nouveau modeset=0

    执行更新

    sudo update-initramfs -u

    禁用X服务

    sudo service lightdm stop

     文件授权

    sudo chmod +x NVIDIA-Linux-x86_64-384.98.run

    安装驱动

    sudo ./NVIDIA-Linux-x86_64-384.98.run –no-x-check -no-nouveau-check -no-opengl-files

    –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。

    –no-x-check:表示安装驱动时不检查X服务,非必需。

    –no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
    我安装时使用

    sudo sh NVIDIA-Linux-x86_64-384.98.run

    并没有出现选择OpenGL的选项。

    都是选择左侧选项。

    2.3测试安装成功

    nvidia-smi

    列出GPU的信息列表,表示驱动安装成功

    3.安装cuda

    参考https://blog.csdn.net/yinhuier/article/details/90600560

    3.1下载cuda

    网址:最新版 https://developer.nvidia.com/cuda-downloads
    我选择安装的为9.0版本,链接:https://developer.nvidia.com/cuda-90-download-archive

    3.2安装cuda

    执行安装命令

    $ sudo sh cuda_9.0.176_384.81_linux.run

    下第二个询问你是不是要安装driver,一定要选n,因为我们已经安装了 驱动

     查看环境变量

    $ env

    如果没有相关变量

    export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
    
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    3.3测试安装成功

        $ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
        $ sudo make
        $ ./deviceQuery

    4.安装cudnn

    参考https://blog.csdn.net/dudu815110/article/details/88592558

    4.1下载cudnn

    在官网https://developer.nvidia.com/rdp/cudnn-download下载 对应CUDA版本的cudnn压缩包

     由于后面安装torch和torchvison时有版本要求所以我安装的v7.5.1

     

    在此我使用的deb的安装包

    4.2安装cudnn

    sudo dpkg -i libcudnn7_7.5.1.10-1+cuda9.0_amd64.deb
    sudo dpkg -i libcudnn7-dev_7.5.1.10-1+cuda9.0_amd64.deb
    sudo dpkg -i libcudnn7-doc_7.5.1.10-1+cuda9.0_amd64.deb

    4.3测试安装成功

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

    安装成功则会出现 Test passed!

    5.conda创建环境

    5.1创建环境

    在此我使用的python3.6版本

    conda create -n open-mmlab python=3.6 -y
    conda activate open-mmlab

    5.2安装pytorch torchvision

    进入https://pytorch.org/get-started/previous-versions/,选择合适的版本

    6.运行mmdetection

    6.1配置mmdetection环境

    克隆项目

    git clone https://github.com/open-mmlab/mmdetection.git
    cd mmdetection

    运行安装文件

    python setup.py develop

    如果出现 找不到setuptools.wheel ,需要重新安装setuptools 不能用conda卸载安装,因为会影响到torch和torchvision

    pip uninstall setuptools
    pip install setuptools

     如果出现无法找lib.os 错误,说明cuda获取cudnn没有装好或者和torch,torchvison版本不匹配需要重新安装。

    如果出现找不到cuda,可能是由于版本问题,也可能是(不知道有没有用,改一改,试一试)

     

     安装 mmcv

    pip install -v -e .

    6.2运行项目

    python tools/train.py  configs/guided_anchoring/ga_faster_x101_32x4d_fpn_1x.py 
  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/zuhaoran/p/11896032.html
Copyright © 2011-2022 走看看