第一个+号之后全部手动
正儿八经装了我两个礼拜 要哭了
1. NVIDIA-SMI 384.111 已安装 在这里就不提中间的曲折心酸了
2. 感谢分享 稍后上传百度云盘 CUDA+CUDNN (8.0+5.1)官网下载不了 还有配套的 opencv3.1.0opencv_contrib-3.1.0
首先调整python默认为2.7 我觉得这个环境下适应性更高
sudoupdate-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudoupdate-alternatives --install /usr/bin/python python /usr/bin/python3 150
sudoupdate-alternatives --config python
选择需要的那个版本
安装CUDA:
sudo sh cuda_8.0.27_linux.run
或者
sudo chmod +x cuda_8.0.27_linux.run # 为*_linux.run 添加可执行权限
./cuda_9.0.176_384.81_linux.run 安装
或者
sudo dpkg -i cuda-xxxx-xxxx-xxxx-1_amd64.deb
sudo apt update
sudo apt install cuda
疯狂按空格 直到 100%
按照提示走走走走(提示中不选择安装nvidia驱动and 不安装opengl)
会有一段worning 提示说让你装个啥啥啥 不管 就是安装好了 略略略
结束后,
sudo reboot //重启电脑
sudo vim ~/.bashrc //修改bashrc文件 添加路径什么的 (有的教程还需要修改 sudo gedit/etc/bash.bashrc 这个文件我也改了)
在文件最后添加如下内容
按 i 进入 insert 模式
exportCUDA_HOME=/usr/local/cuda-8.0
exportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
输入 :wq 保存退出 如果按 : 没有直接退出Insert模式 就先按以下Esc键 再输入 :wq 保存退出
输入 nvcc -V 查看nvcc版本信息是否对应下载的版本
我还改了
sudo gedit /etc/profile 文件 添加 两行
exportPATH=/usr/local/cuda-8.0/bin
LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64
重启 sudo reboot 后配置生效
安装cudnn
emmm 直接解压缩 unzip 啊什么什么的
我提供的是 tgz文件 通过 tar zxvfcudnn-8.0-linux-x64-v5.1.tgz
解压到当前目录(我这里是 home)下 然后可以看到有一个 cuda文件夹 右下角有一个小锁的那个
解压后会出现一个 cuda 的文件夹 形式如下
cuda|
| include |
| cudnn.h
| lib64 |
| *(5个文件)
cd cuda 进入这个文件夹
sudo cpinclude/cudnn.h /usr/local/cuda-8.0/include/
sudo cp lib64/*/usr/local/cuda-8.0/lib64/
还有教程后面有一大堆,我这里没有做那些
如果系统里有多个CUDA版本 且需要用到
将~/.bashrc 或 ~/.zshrc 下与cuda相关的路径都改为 /usr/local/cuda/ 而不使用 /usr/local/cuda-8.0/或/usr/local/cuda-9.0/。
#在切换cuda版本时
rm -rf/usr/local/cuda#删除之前创建的软链接
sudo ln -s/usr/local/cuda-8.0/ /usr/local/cuda/
nvcc --version #查看当前 cuda 版本
nvcc: NVIDIA (R)Cuda compiler driver
Copyright (c)2005-2016 NVIDIA Corporation
Built onMon_Jan_23_12:24:11_CST_2017
Cuda compilationtools, release 8.0, V8.0.62
#cuda8.0 切换到 cuda9.0
rm -rf/usr/local/cuda
sudo ln -s/usr/local/cuda-9.0/ /usr/local/cuda/
nvcc --version
检查是否正确安装
cd~/NVIDIA_CUDA-8.0_Samples
make
1. 编译出现问题 应该是第三个例子里面 cannot find –lnvcuvid
进入 那个文件夹 找到findgllib.mk文件打开
修改 差不多第60行的代码
UBUNTU_PKG_NAME=”nvidia-367”-----nvidia-384 自己的显卡版本,这个是找不到文件夹的问题
切换路径 : cd~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
终端输入 :$ ./deviceQuery
2. 编译出现问题 第二个例子里面 cannot find –lglut 编译第二个文件的时候出错
建立连接 宝宝终于知道为什么我目录下找不到这个文件了 因为人家不叫 lglut.so 人家叫 libglut.so
1)找到本地的libglut.so 文件路径 ,在终端执行:locatelibglut.so 命令;
出现两行路径名称
/usr/lib/libGL.so.x
/usr/lib/x86_64-linux-gnu/libglut.so.x.y.z
2)建立链接: sudo ln -s (后一个路径)/usr/lib/x86_64-linux-gnu/libglut.so.x.y.z(前一个路径)/usr/lib/libGL.so
完美解决问题 感谢大佬
编译结束之后 会出现一个 Finished building CUDA samples. 编译完成啦!
下面就是运行编译生成的二进制文件。
编译后的二进制文件 默认存放在~/NVIDIA_CUDA-7.5_Samples/bin中。
切换路径 : cd~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
终端输入 :$ ./deviceQuery
出来两列信息数据
再检查一下系统和CUDA-Capabledevice的连接情况
终端输入 : $ ./bandwidthTest 很多网上教程这里写错了 写成了 sandwidthTest 害人不浅
结果:abc@abc-Lenovo-ideapad-300S-14ISK:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release$./bandwidthTest
[CUDA BandwidthTest] - Starting...
Running on...
Device 0: GeForce 920M
Quick Mode
Host to Device Bandwidth, 1 Device(s)
PINNED Memory Transfers
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1526.6
Result = PASS
NOTE: The CUDASamples are not meant for performance measurements. Results may vary when GPUBoost is enabled.
CUDA完美安装!喜大普奔!撒花!
下面进入惨绝人寰的opencv安装测试 emmm 很恐怖的!
2.安装OpenCV 3.1.0 一个同学的配置是这样 我就不考虑什么最新版本了 就是参照人家的环境来配 然鹅天下环境相似千千万,问题都tm不一样
OPENCV直接官网下载 进入git库 点击release 选择最新版本或者需要的版本 比如我这里是 3.1.0
首先安装依赖包 三条命令
sudo apt-getinstall build-essential
sudo apt-getinstall cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-devlibswscale-dev
sudo apt-getinstall python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-devlibtiff-dev libjasper-dev libdc1394-22-dev
解压缩 opencv.zip 和 同版本contrib.zip 文件 就在home文件夹下就可以
unzip 两个文件
cd ~/opencv //也有可能是 opencv-3.1.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..
//这一步会下载ippicv_linux_20151201.tgz
//如果之前安装好CUDA的话,默认编译会花费很长时间。
//可以使用cmake -DWITH_CUDA=OFF ..
//cmake 十分非常超级无敌建议看官方文档安装 cmake后面跟的一大串是根据自己需求来的 看官方文档最轻松和安全
Sudo make 很漫长而且一堆错误 唉 又来了
Error 01 ../../../../graphcuts.cpp NppiGraphcutState has not been declared
修改 打开这个.cpp文件 将 第45行
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDA_VERSION >= 8000)
Error 02 一个什么java的什么什么 create 路径失败
然后最神奇的来了 我重新 cmake 、make了一遍,然后就过了。。。过了。。。了。。。我找这个问题还找了半个多小时 啥也没找到 = =
sudo make install
//配置路径
sudo sh -c 'echo"/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
在 sudo ldconfig 的时候 出了个error 大概就是 libcudnn.so.5 is not asymbolic link.
上网查了一下 查找相关路径下冲突的文档 用
sudo ln –sf /usr/local/cuda-8.0/lib64/libcudnn.so.5.1.10/usr/local/cuda-8.0/lib64/libcudnn.so.5
sudo ldconfig
测试安装是否成功,查看这篇:
ubuntu opencv3.1 编译demo报错http://blog.youkuaiyun.com/u011440558/article/details/78213796
测试安装是否成功,查看这篇
cd opencv-3.1.0/samples
cmake .
出现错误 好像是fin
Error 1
detect_mser.cpp.oundefined reference to symble 'glMatrixMode'
没找到问题 先放着 暂时用不到
安装 Darknet
参考官网和https://www.cnblogs.com/chay/p/8052354.html
git clonehttps://github.com/pjreddie/darknet.git
cd ~/darknet
配置Makefile
1 GPU = 1 //使用GPU
2 CUDNN = 1 //使用cuDNN
3 OPENCV = 1 //使用OPENCV
修改下面的 nvcc =/usr/local/cuda-8.0/bin/nvcc
遇见的问题
Error1.cudnn.h No suchfile balabalabala 在include/darknet.h中 找到 引入cudnn.h的那一行,用绝对路径替换掉
Error 2 不能找到 –lippicv 这个库
https://blog.youkuaiyun.com/dengshuai_super/article/details/51895120
感谢大佬
别的库使用一下软链接就可以了 这个需要手动复制过去 我用的方法三 感觉很好
Error 3 这个问题我没遇上过 说不定有人会遇到呢 所以先放着
如果使用OpenCV 3.2.0,会出现“error: unknowntype name ‘CvCapture’”。
那么,在报错的文件中,#ifdef OPENCV 模块中添加下面这行代码:
#include"opencv2/videoio/videoio_c.h"
问题解决了~
编译
make -j8
./darknet
显示
usage: ./darknet<function>
剩下的 比如说要识别图片还是视频还是外接摄像头实时处理啦 dark net官网都有写 一切的一切看官网 很完美的 我都实现了
本文详细记录了在Ubuntu16.04上安装CUDA8.0、CUDNN、OpenCV3.1.0的过程,包括NVIDIA驱动的安装、CUDA配置、CUDNN的添加以及OpenCV的编译,过程中遇到的错误和解决方案一并给出。

被折叠的 条评论
为什么被折叠?



