首页 > Web开发 > 详细

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

时间:2019-06-16 00:14:38      阅读:213      评论:0      收藏:0      [点我收藏+]

1、先查看是否安装有以下组件,若有先考虑彻底删除再安装(安装严格按照下面顺序进行)

查看nvidia 版本

nvidia-smi

查看cuda 版本

cat /usr/local/cuda/version.txt

查看cudnn 版本

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

 

2.安装nvidia驱动

1.禁用系统默认nouveau显卡驱动 

打开系统黑名单,命令如下 :

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

在blacklist.conf文件中添加禁用的显示设备,文件尾部追加内如如下:

# for nvidia display device install
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

保存blacklist.conf文件,然后更新内核,命令如下:

sudo update-initramfs -u

 重启电脑

sudo reboot

重启完成,执行命令如下(查看是否禁用成功,无输出则禁用成功):

lsmod | grep nouveau

 

2. 安装RTX1060驱动

首先进入命令行模式

ctrl+alt+f2

由于我们要安装显卡驱动,会影响桌面显示,我们可以先关闭(图形)桌面显示管理器18.04是gdm3,这里根据自己的版本选择就好

ubuntu 16.04是lightdm 

sudo service lightdm stop

ubuntu 18.04是gdm3

sudo service gdm3 stop

添加驱动源:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

寻找合适驱动版本:

ubuntu-drivers devices

 这里最好去官网https://www.geforce.cn/drivers 注意 笔记本电脑 要选择Notebooks版本的驱动

或者

UBUNTU右上角》系统设置》软件与更新》附加驱动选择》里面看看系统推荐的版本号,最好根据这个进行选择,为了避免更多未知的坑(不推荐直接在附加驱动选择直接安装:失败概率有些高,而且容易造成循环登录的问题)

sudo apt-get install nvidia-390

 然后开启桌面管理器或者直接重启

sudo service gdm3 restart

或者

sudo reboot

 重启后

查看nvidia 版本

nvidia-smi

技术分享图片

显示则安装成功

nvidia-settings

打开N卡的设置

技术分享图片 

 

3.安装cuda

先查看nvidia 驱动,cuda,cudnn对应关系

 nvidia与cuda要求的版本对应关系:

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

技术分享图片

cuda与cudnn需要满足关系:

https://developer.nvidia.com/rdp/cudnn-archive

3.1安装依赖库

 

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

 

 

3.2降级gcc

由于Cuda-9.0只支持gcc-6.0以下的版本,而Ubuntu18.04系统默认安装的gcc-7.3版本(可以在终端输入gcc --version查看系统安装的gcc版本),所以首先需要降级为gcc-5版本。

  • 首先需要安装gcc-5

在终端输入:

sudo apt install gcc-5
sudo apt install g++-5
  • 链接至gcc-5版本

在终端输入:

cd /usr/bin
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc
sudo mv g++ g++.bak
sudo ln -s g++-5 g++

最后查看系统的gcc版本是否已更改

 

gcc --version

 

 

3.2安装对应版本的Cuda

cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda

https://developer.nvidia.com/cuda-toolkit-archive

保守起见,选择cuda9.0进行安装,也可以选择更高版本的

技术分享图片

注意 9.0 是没有 18.04可选的,但我们选择16.04依然可以安装,正常使用(还没遇到过不正常状态)依次下载下面五个installers

技术分享图片

基础安装包

sudo sh cuda_9.0.176.384.81_linux.run --override

在安装过程中 按Q跳过阅读more,会出现几个是否选装和安装位置的选项

其中第二个不需要安装NVIDIA驱动(系统已安装),其余都选择yes或者敲回车。

yes

no

yes

回车

yes

yes

回车

 

四个更新包

sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

 

修改环境变量

安装完Cuda-9.0后,还需要将其添加至系统环境变量。

ubuntu下某些程序需要自己定义LD_LIBRARY_PATH,修改下面文件的环境变量:

sudo gedit  ~/.bashrc

打开“profile”文件,在末尾处添加(注意不要有空格,不然会报错):

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64$:LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 #注意这里不要写cuda几点几,因为我们要实现多版本切换

或者你不需要切换版本

export  PATH="$PATH:/usr/local/cuda-9.0/bin"
export  LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64"

 

保存文本后,更新系统环境变量

source ~/.bashrc

至此,可以通过在终端输入nvcc -V,检查Cuda-9.0是否安装成功。

也可以测试cuda的Samples

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

运行最后显示Result = Pass

注意路径要根据你自己的进行修改

如果显示的是一些关于GPU的信息,则说明安装成功了。
 

4.安装对应版本的cudnn

首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。
https://developer.nvidia.com/rdp/cudnn-archive

技术分享图片

安装完Cuda之后,继续安装与Cuda-9.0版本对应的Cudnn

 

cuDNN v7.3.1 Library for Linux

 

下载时候保存为:cudnn-9.0-linux-x64-v7.4.1.5.tgz

下载后安装非常简单,就是解压然后拷贝到相应的系统CUDA路径下,注意最后一行拷贝时 "-d"不能少,

tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz

 

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

(更改的权限文件也是实际安装的绝对路径)

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

没有报错就是全部安装完成了

完成后,可以到~/NVIDIA_CUDA-9.0_Samples/文件夹下测试CUDA功能完整性

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

技术分享图片

 5.安装opencv-python版本

安装pip3,执行命令

sudo apt install python3-pip

安装libopencv-dev依赖包

sudo apt install libopencv-dev

安装opencv-python库 

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

安装成功

python3
import cv2
print(cv2.__version__)

6.安装opencv 3.2.0

6.1.安装opencv依赖包

  • GCC 4.4.x or later
  • CMake 2.6 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev) # 控制opencv GUI
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
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 libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
sudo apt-get install libgstreamer-plugins-base1.0-dev

依赖包libjasper-dev

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

 

6.2.下载opencv-3.4.4
安装opencv可以直接使用命令安装,这里我们下载opencv源码进行编译安装,如下图,官网链接 Releases - OpenCV library

技术分享图片

选择 3.4.4  Sources

wget https://github.com/opencv/opencv/archive/3.4.4.zip

这里建议用linux平台可用的motrix (类似迅雷) 下载

 

6.3 解压下载好的opencv-3.4.4.zip 然后安装opencv

cd opencv-3.4.4/
mkdir build
cd build

在cmake配置过程中,需要下载ippicv_2019_lnx_intel64_general_20180723.tgz文件,这个文件下载速度超级慢

总是会卡在(因为墙的缘故,下载龟速,基本都是失败)

-- IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz

所以这里选择离线单独从百度网盘下载这个文件

百度网盘链接: https://pan.baidu.com/s/1f6QGwcbMNbL9vDLwUX1w6A 提取码: i47f 

假设 ippicv_2019_lnx_intel64_general_20180723.tgz 下载后放置于 

/home/joe/Downloads

找到并修改ippicv.make文件

/home/joe/Downloads/opencv-3.4.4/3rdparty/ippicv/ippicv.cmake

修改前:

41  set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
42  ocv_download(FILENAME ${OPENCV_ICV_NAME}
43               HASH ${OPENCV_ICV_HASH}
44               URL
45                 "${OPENCV_IPPICV_URL}"
46                 "$ENV{OPENCV_IPPICV_URL}"
47                 "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
48               DESTINATION_DIR "${THE_ROOT}"
49               ID IPPICV
50               STATUS res
51               UNPACK RELATIVE_URL)

修改后

41  set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
42  ocv_download(FILENAME ${OPENCV_ICV_NAME}
43               HASH ${OPENCV_ICV_HASH}
44               URL
45                 "${OPENCV_IPPICV_URL}"
46                 "$ENV{OPENCV_IPPICV_URL}"
47                 "file:///home/joe/Downloads/"
48               DESTINATION_DIR "${THE_ROOT}"
49               ID IPPICV
50               STATUS res
51               UNPACK RELATIVE_URL)

修改后,下载 ippicv文件时,会自动从本地文件加载.

更详细的步骤可以参照原文

https://www.aiuai.cn/aifarm792.html

 

做好预先准备后紧接着前面

cd build

配置命令如下:(这里没有搞定启用opencv cuda加速)

 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

使用如下命令进行编译:

make -j7
技术分享图片

执行安装命令如下:

sudo make install

安装完成提示如下图:

技术分享图片

 测试opencv安装是否成功,执行命令如下:

opencv_version
# 3.4.4
6.4.添加路径

这类似于Windows中装完Java要在环境变量里添加PATH一样,为了让系统能够识别,需要做以下几步: 在终端中输入如下语句,打开这个文件:

sudo vim /etc/ld.so.conf.d/opencv.conf

在最后一行添加一句话”/usr/local/lib“,当然它也可能是空的,没关系。输入vim可能会提示你找不到命令,你只需要apt-get install vim,安装一下包再输入命令就可以了。或者如果你不会vim命令,那就直接按照路径/etc/ld.so.conf.d/去找,在该目录下新建一个opencv.conf文件,并且打开编辑,将”/usr/local/lib“添加进去,保存退出即可。
然后运行以下代码配置库:

sudo ldconfig

注意输入完后,什么都不会出现,只是类似于库配置完后刷新一下。然后再打开另一个文件:/etc/bash.bashrc。你可以选择用命令行sudo gedit /etc/bash.bashrc打开或者直接打开都可以。在文件末尾添加两行:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

保存并关闭。至此,OpenCV的库就编译和安装完了。撒花~

opencv虽然安装了,但是opecv基于cuda问题没有解决,这里也向小伙伴求助,欢迎小伙伴来指导。

 
 
 
 

如果opencv安装有以下问题configuring incomplete, errors occurred!  可以参考下面的博客

技术分享图片

经过谷歌解决了这个问题

参考csdn中这个大佬的博客 原因解析:cuda9不再支持2.0架构

 

解决方案如下:

 

1).找到FindCUDA.cmake文件

 

找到行

find_cuda_helper_libs(nppi)

改为

find_cuda_helper_libs(nppial)
find_cuda_helper_libs(nppicc)
find_cuda_helper_libs(nppicom)
find_cuda_helper_libs(nppidei)
find_cuda_helper_libs(nppif)
find_cuda_helper_libs(nppig)
find_cuda_helper_libs(nppim)
find_cuda_helper_libs(nppist)
find_cuda_helper_libs(nppisu)
find_cuda_helper_libs(nppitc)

2).找到行

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

改为

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

3).找到行

unset(CUDA_nppi_LIBRARY CACHE)
改为
unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)

 

4).找到文件OpenCVDetectCUDA.cmake

修改以下几行

 ...
  set(__cuda_arch_ptx "")
  if(CUDA_GENERATION STREQUAL "Fermi")
    set(__cuda_arch_bin "2.0")
  elseif(CUDA_GENERATION STREQUAL "Kepler")
    set(__cuda_arch_bin "3.0 3.5 3.7")
  ...

改为

  ...
  set(__cuda_arch_ptx "")
  if(CUDA_GENERATION STREQUAL "Kepler")
    set(__cuda_arch_bin "3.0 3.5 3.7")
  elseif(CUDA_GENERATION STREQUAL "Maxwell")
    set(__cuda_arch_bin "5.0 5.2")
  ...

5).cuda9中有一个单独的halffloat(cuda_fp16.h)头文件,也应该被包括在opencv的目录里

将头文件cuda_fp16.h添加至 opencv\modules\cudev\include\opencv2\cudev\common.hpp

即在common.hpp中添加

#include <cuda_fp16.h>

6)重新cmake 

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

问题解决

 技术分享图片

 

 

7.卸载Cuda和Cudnn

卸载Cuda-9.0

终端输入

cd /usr/local/cuda-9.0/bin
sudo ./uninstall_cuda_9.0.pl

卸载Cudnn

终端输入

sudo apt remove cudnn*

 

8.安装tensorflow-gpu

直接通过pip安装Tensorflow-gpu

sudo pip3 install tensorflow-gpu

 

9. 安装teamviewer

官网选择linux版本,下载ubuntu版本deb安装包,官网链接地址:下载 Linux 版 TeamViewer,进行远程桌面访问和协作

 

wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb

 这里建议用linux平台可用的motrix (类似迅雷) 下载

下载完成,使用如下命令进行deb包的安装:

sudo dpkg -i teamviewer_amd64.deb

如果出现依赖库安装失败执行如下命令,强制更新类库依赖:

sudo apt-get install -f

安装完成,执行启动teamviewer命令如下:

teamviewer

 

 

 

本文终

本文参考整理自

https://blog.csdn.net/hancoder/article/details/86634415

https://zhuanlan.zhihu.com/p/57803337?utm_source=wechat_session&utm_medium=social&s_r=0

https://www.aiuai.cn/aifarm792.html

 https://zhaoxuhui.top/blog/2017/05/15/Ubuntu%E4%B8%8BSiftGPU%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91.html#%E5%9B%9Bubuntu-opencv%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA

y7000笔记本 darknet-yolo安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)

原文:https://www.cnblogs.com/clemente/p/11029117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!