Ubuntu16.04 +cuda9.0+cudnn7+opencv-3.1.0

硬件配置:  CPU  :  Intel i7 7800 

                  GPU  :  技嘉AORUS  GTX 1080Ti

系统配置:  Ubuntu16.04.2


第一步  Ubuntu系统安装

           1、利用UltraISO软件制作 ubuntu 16.04.2 U盘启动项 

         写入硬盘映像


格式化,然后开始写入,结束点击返回即可

        

 2、F12设置U盘启动


第二步   Nvidia 显卡驱动安装(xxx.run 文件安装) 

依赖包优先安装

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install git cmake build-essential

           驱动版本 :  NVIDIA-Linux-x86_64-384.130.run

           驱动下载 :  https://pan.baidu.com/s/1GkxfDLnM2PNYOhNGe7d46w 密码:tz5d

                             (安装包最好放在 /home 目录下)

           安装之前,重启电脑进入BIOS设置,找到Security里的Secure Boot选项,选择Disabled,f10保存退出,重启

 1. 卸载原有驱动

  sudo apt-get purge nvidia*
  2.禁用nouveau(集成显卡驱动)

     修改权限,打开blacklist.conf文件

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

  在文件最后加入两行命令

  blacklist nouveau  
  options nouveau modeset=0  

  更新一下,并重启

      sudo update-initramfs -u                                                                                    

  sudo reboot

  重启后确认nouveau是否已经被禁掉

  lsmod | grep nouveau

  如果什么输出都没有,则表示nouveau已经被禁掉了

3.ctrl+alt+F3(F1)进入命令行模式(输入用户名和密码),关闭图像化环境

  暂时关闭x-window服务

  sudo service lightdm stop  

4安装驱动 

  sudo chmod a+x NVIDIA-Linux-x86_64-384.130.run //获取权限
  sudo ./NVIDIA-Linux-x86_64-384.130.run –no-x-check –no-nouveau-check –no-opengl-files //安装驱动
  • –no-x-check 安装驱动时关闭X服务
  • –no-nouveau-check 安装驱动时禁用nouveau
  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件

在安装驱动的时候,有一句问你”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”,选择 No ,其他接受即可。     

5.重启图像化界面

  sudo service lightdm start
  ctrl+alt+F7进入图形界面
  重启电脑 reboot

  查看是否安装成功 

  nvidia-smi
第三步   CUDA安装     
 下载链接:https://pan.baidu.com/s/1qOmVesHi78L60tFXFHYdMw    密码:ef8z 
 下载完安装包放到./home目录下

 ctrl+alt+f3(f1)进入命令行模式

  暂时关闭x-window服务

  sudo service lightdm stop  

 运行安装

sudo sh cuda_9.0.103_384.59_linux.run --no-opengl-libs

 单击回车,一路往下运行,直到提示“是否为NVIDIA安装驱动nvidia-384?”,选择否,因为已经安装好驱动程序了,其他的全都是默认,不过要记住安装位置,默认是安装在/usr/local/cuda文件夹下

配置环境变量

使用 gedit 命令打开配置文件

sudo gedit ~/.bashrc

在该文件最后加入以下两行并保存:  

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

使改配置生效

source ~/.bashrc

2.验证CUDA9.0是否安装成功

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

若看到类似以下信息则说明 cuda 已安装成功:

./deviceQuery Starting...
 CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GT 740M"
  CUDA Driver Version / Runtime Version          9.0 / 9.0
  CUDA Capability Major/Minor version number:    3.5
  Total amount of global memory:                 2004 MBytes (2100953088 bytes)
  ( 2) Multiprocessors, (192) CUDA Cores/MP:     384 CUDA Cores
  GPU Max Clock rate:                            1032 MHz (1.03 GHz)
  Memory Clock rate:                             800 Mhz
  Memory Bus Width:                              64-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kern         Yes with 1 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1, Device0 = GeForce GT 740M
Result = PASS

        然后设置环境变量和动态链接库,在命令行输入

     sudo gedit /etc/profile
       在打开的文件末尾加入:
     export PATH=/usr/local/cuda/bin:$PATH

       保存之后,创建链接文件:

     sudo gedit /etc/ld.so.conf.d/cuda.conf

       在打开的文件中添加如下语句:

     /usr/local/cuda/lib64

       然后执行

      sudo ldconfig

       使链接生效


第四步  CUDNN安装

    链接:https://pan.baidu.com/s/1ZhzYeENefBPQRTI9vx7_pA        密码:u4g7

    下载cudnn-9.0-linux-x64-v7.tgz压缩包,解压到/home目录,得到一个cuda文件夹,该文件夹下include 和 lib64 两个文件夹

1)Ctrl+alt+F1进入命令行界面

2) 进入解压后的cudnn-9.0-linux-x64-v7.0.tgz文件cuda,在终端执行下面的指令安装:

tar -zxvf cudnn-9.0-linux-x64-v7.0.tgz
cd cuda sudo cp lib64
/lib* /usr/local/cuda/lib64/ sudo cp include/cudnn.h /usr/local/cuda/include/

然后更新网络连接:

cd /usr/local/cuda/lib64/  
sudo chmod +r libcudnn.so.7.0.3  # 自己查看.so的版本  
sudo ln -sf libcudnn.so.7.0.3. libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig  

重新启动图形化界面

sudo service lightdm start

ctrl+alt+f7返回图形界面

安装完成后输入下面命令验证是否成功

nvcc -V
第五步  Opencv+Opencv_contrib安装

opencv 3.1.0 下载

      链接:https://pan.baidu.com/s/1auNkgYxKdh5GBTcLGD9z_w     密码:se5x

opencv_contrib-3.1.0下载

      链接:https://pan.baidu.com/s/1PpBmf_vdDub3r4vjN-V3Mw      密码:f9ts

下载结束解压到./home 目录,opencv_contrib-3.1.0可以放到opencv-3.1.0文件夹下

1.依赖项安装

    sudo apt-get install build-essential  
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  
    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  

2.修改配置文件

sudo gedit /usr/local/opencv310/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

        将代码

if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 

        替换成

if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000)  

3.创建build 文件夹并进入

cd opencv-3.1.0/
sudo mkdir build 
cd build

4.cmake

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..

注:命令中最后的" .. "(空格+两个点)千万不要忘记。

cmake后可能一直卡在下载ippicv的地方,这是需要自己下载ippicv_linux_20151201.tgz将其放在

/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件夹下,替换原来的文件

然后重新运行cmake

错误:opencv nvcc fatal : Unsupported gpu architecture 'compute_20'

原因:cuda9不支持‘compute-20’,需要更改OpenCVDetectCUDA.cmake文件,

if(CUDA_GENERATION STREQUAL "Fermi")
    set(__cuda_arch_bin "3.0 3.5")
  elseif(CUDA_GENERATION STREQUAL "Kepler")
    if(${CUDA_VERSION} VERSION_LESS "5.0")
      set(__cuda_arch_bin "2.0 2.1")
    else()
      set(__cuda_arch_bin "3.0 3.5")

替换为

if(CUDA_GENERATION STREQUAL "Fermi")
    set(__cuda_arch_bin "3.0 3.5")
  elseif(CUDA_GENERATION STREQUAL "Kepler")
    if(${CUDA_VERSION} VERSION_LESS "5.0")
      set(__cuda_arch_bin "3.0")
    else()
      set(__cuda_arch_bin "3.0 3.5")

将:

      if(${CUDA_VERSION} VERSION_LESS "5.0")
        set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")
      elseif(${CUDA_VERSION} VERSION_GREATER "6.5")
        set(__cuda_arch_bin "2.0 2.1(2.0) 3.0 3.5")

替换为:

if(${CUDA_VERSION} VERSION_LESS "5.0")
        set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")
      elseif(${CUDA_VERSION} VERSION_GREATER "6.5")
        set(__cuda_arch_bin "3.0 3.5")

Makefile.config 中 CUDA_ARCH 设置:

将紫色两行注释掉

# CUDA architecture setting: going with all of them.  
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.  
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.  
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.  
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \  
              # -gencode arch=compute_20,code=sm_21 \  
                -gencode arch=compute_30,code=sm_30 \  
                -gencode arch=compute_35,code=sm_35 \  
                -gencode arch=compute_50,code=sm_50 \  
                -gencode arch=compute_52,code=sm_52 \  
                -gencode arch=compute_60,code=sm_60 \  
                -gencode arch=compute_61,code=sm_61 \  
                -gencode arch=compute_61,code=compute_61  

重新cmake

5.编译安装

sudo make -j8
sudo make install 


参考链接:     https://blog.csdn.net/yhaolpz/article/details/71375762

                     https://blog.csdn.net/fdqw_sph/article/details/78745375

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值