转载链接:http://blog.csdn.net/frank_zrh/article/details/52298909

一、需要预先下载的东西

1.GTX1080的Linux驱动(run文件)

2.Install-OpenCV-master(最好先下载好对应的OpenCV版本,修改相应的脚本省时间)

3.Cuda8.0文件(run文件)

4.Cudnn5.0文件(压缩包)

二、安装caffe之前的准备工作

Step1:禁用nouveau驱动

按Ctrl+Alt+F1进入命令提示符,新建一个黑名单文件

[plain] view plain copy
  1. sudovim/etc/modprobe.d/blacklist-nouveau.conf

输入

[plain] view plain copy
  1. blacklistnouveau
  2. optionsnouveaumodset=0

保存退出(:wq)

然后执行

[plain] view plain copy
  1. sudoupdate-initramfs-u
执行lspci | grep nouveau查看是否有内容
[plain] view plain copy
  1. lspci|grepnouveau

如果没有内容 ,说明禁用成功,如果有内容,就重启一下再查看

step2:安装显卡驱动(不从CUDA中一起装,因为CUDA8.0中的显卡驱动太旧)

Ctrl+alt+F1进入字符界面,关闭图形界面

[plain] view plain copy
  1. sudoservicelightdmstop
安装driver

[plain] view plain copy
  1. sudochmod755NVIDIA-Linux-x86_64-367.27.run//获取权限
  2. sudo./NVIDIA-Linux-x86_64-367.27.run//安装驱动

安装完成之后

[plain] view plain copy
  1. sudoservicelightdmstart
其实,在我的安装过程中输入上面这条命令之后,显示器会没有内容,我想应该是视频信号已经切换到独显中,而视频线仍然接在集显上

我的方案是,安装完成之后,reboot或者shutdown之后把视频线连接到独显上,避免强制关机

安装完成之后可用一面的命令查看

[plain] view plain copy
  1. nvidia-smi


step3:安装CUDA8.0

进入到CUDA文件所在的目录

[plain] view plain copy
  1. sudoshcuda_8.0.27_linux.run
除了第二项“”是否安装显卡驱动“选择no之外,其他全部按照默认设定

安装过程显示如下信息

Do you accept the prevIoUsly read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/zhou ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libglu.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/zhou …
copying samples to /home/zhou/NVIDIA_CUDA-8.0_Samples Now…
Finished copying samples.

===========
=Summary=
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/zhou,but missing recommended libraries

Please make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64,or,add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit,run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer,run the following command,replacing with the name of this run file:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_2961.log

设置环境变量

[plain] view plain copy
  1. sudovi/etc/profile
在文件的最后面加上下面两句
[plain] view plain copy
  1. exportPATH=/usr/local/cuda-8.0/bin:$PATH
  2. exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
使环境变量立即生效
[plain] view plain copy
  1. sudoldconfig


这里强势插入一个步骤:安装库,因为接下来安装Samples需要make,所以得先装好一些库和依赖

[plain] view plain copy
  1. sudoapt-getinstallfreeglut3-devbuild-essentiallibx11-devlibxmu-devlibxi-devlibglu1-mesalibglu1-mesa-devlibgl1-mesa-glx

在安装库的过程中也出现一些问题,例如有些安装不了(选择的软件源没有这个库),这种情况可以在ubuntu的网站搜索相应的

库的名字,可以到它给出的链接去下载deb包直接双击安装就可以了。校园网的用户建议连接中科大的源,速度很快。

安装CUDA自带的Samples

[plain] view plain copy
  1. cd/usr/local/cuda/samples
[plain] view plain copy
  1. sudomakeall-j4
这里j后面的数,网上说是cpu的核心数目

编译完之后

[plain] view plain copy
  1. cd./bin/x86_64/linux/release
运行例程
[plain] view plain copy
  1. ./deviceQuery

若出现显卡信息,则说明安装完成了


step3:安装CUDNN5.0

将cudnn解压后就是一个名为CUDA的文件夹,放在哪都可以,我们还要复制里面的文件到相应的地方,并创建软链接

[plain] view plain copy
  1. cdcuda
  2. sudocplib64/lib*/usr/local/cuda/lib64/
  3. sudocpinclude/cudnn.h/usr/local/cuda/include/
  4. cd/usr/local/cuda/lib64/
  5. sudochmod+rlibcudnn.so.5.0.5
  6. sudoln-sflibcudnn.so.5.0.5libcudnn.so.5
  7. sudoln-sflibcudnn.so.5libcudnn.so
  8. sudoldconfig


-----------------------------------我把这里作为分界线,是因为多次实验以上的步骤都不会出错,容易出错的地方在分界线下面的部分--------------------------------

step4:安装opencv

这里推荐网友写的一个脚本(百度云下载http://pan.baidu.com/s/1qX1uFHa,密码:wysa
在Isstall-OpenCV-master的根目录下

[plain] view plain copy
  1. cd./Ubuntu
  2. sudoshdependencies.sh
  3. cd./3.0
  4. sudoshopencv3_0_0.sh
第一次运行会发现编译到72%时出错,因为现在opencv3.0有个地方还未修改,遇到CUDA8.0会出错

github大神给出了解决方案(https://github.com/opencv/opencv/pull/6510/commits/10896129b39655e19e4e7c529153cb5c2191a1db)

意思就是在下载好的OpenCV3.0的文件夹中

[plain] view plain copy
  1. cd./modules/cuDalegacy/src
  2. sudovimgraphcuts.cpp
在代码line45中找到

#if !defined (HAVE_CUDA) || defined (CUDA_disABLER)

将他改为

#if !defined (HAVE_CUDA) || defined (CUDA_disABLER) || (CUDART_VERSION >= 8000)

这样再编译一下就好了,在这里有一点需要注意,如果又用

[plain] view plain copy
  1. sudoshopencv3_0_0.sh
则需要,先对opencv3_0_0.sh文件进行修改,将脚本中下载opencv文件和解压的两句注释掉就可以了

等待几分钟,就安装好了。

三、编译caffe

安装依赖项和各种库

[plain] view plain copy
  1. sudoapt-getinstalllibprotobuf-devlibleveldb-devlibsnappy-devlibopencv-devlibhdf5-serial-devprotobuf-compilerlibatlas-base-devlibgflags-devlibgoogle-glog-dev
  2. liblmdb-dev
[plain] view plain copy
  1. sudoapt-getinstall--no-install-recommendslibboost-all-dev
安装pycaffe所需要的依赖项
[plain] view plain copy
  1. <spanstyle="font-family:Simsun;font-size:12px;">sudoapt-getinstall-ypython-numpypython-scipypython-matplotlibpython-sklearnpython-skimagepython-h5py
  2. python-protobufpython-leveldbpython-networkxpython-nosepython-pandaspython-gflagscythonipython

进入caffe的根目录
[plain] view plain copy
  1. <spanstyle="font-family:Simsun;font-size:12px;">cpMakefile.config.exampleMakefile.config</span>

根据自己的需要修改Makefile.config

我自己改了CUDNN项和OPENCV项(用了3.0就要修改这一项)

[plain] view plain copy
  1. makeall-j4
  2. maketest-j4
  3. makeruntest-j4

第一次make的时候出现了错误

.build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&,int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&,cv::_InputArray const&,std::vector >&,std::vector > const&)

参考https://github.com/BVLC/caffe/issues/2348的回答

我尝试了在caffe根目录下

[plain] view plain copy
  1. rmbuild(如果有这个文件夹的话)
  2. mkdirbuild
  3. cdbuild
  4. cmake..
  5. makeall-j4
  6. cd..
  7. makeall-j4
这样下来就可以make成功了,如果还出现问题可以看看上面提供的链接

接下来我就

[plain] view plain copy
  1. maketest

但是再次出错了

libcudart.so.8.0: cannot open shared object file: No such file or directory

应该是库文件没有链接好

用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边

[plain] view plain copy
  1. ln-s/where/you/install/lib/*.so/usr/lib
  2. udoldconfig
修改LD_LIBRARY_PATH(这个在之前已经做好了)
[plain] view plain copy
  1. exportLD_LIBRARY_PATH=/where/you/install/lib:$LD_LIBRARY_PATH
修改/etc/ld.so.conf在文件中添加cuda8.0的lib路径
[plain] view plain copy
  1. /usr/local/cuda-8.0/lib64

一共三步就解决了缺少动态链接库的问题

再接下来make test 和make runtest都没有出错了


虽然之前也配置过cuda7.5和gtx970但是,由于gtx1080比较新,安装驱动要单独从官网上先下载,配置过程中opencv与cuda8.0也有兼容问题。

有参考网上的教程,但是还是花了两天时间来配置。特意整理了这样一篇博客,流程是完全按照我成功配置下来的过程而写的 ,希望对大家有帮助。

也感谢在这过程中给我帮助的同学。第一次写博客,还请多多指教!


参考的博客:http://www.2cto.com/os/201607/528798.html

Ubuntu14.04+CUDA8.0+GTX1080+caffe配置教程的更多相关文章

  1. xamarin.ios – ShareKit与MonoTouch如何?

    有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?解决方法您首先从getsharekit.com下载还是使用ShareKit2.0?

  2. iOS使用openCV检测来自摄像头的矩形

    如果我在处理它之前克隆matimage,通过记录它,它似乎处理图像甚至找到矩形,但矩形不会被绘制到图像输出到imageView.我很确定我错过了一些东西,可能是因为我没有正确传递某个对象,指向对象的指针等等,而我需要修改的对象则没有.无论如何,如果这不是正确的方法,我真的很感谢他们做这样的事情的教程或例子,使用openCV或GPUImage…它不需要尝试使用matimage来设置imageView.image,而只需要将matimage转换为在imageView中实际修改,因为CvVideoCamera已

  3. ios – iPhone崩溃日志不能正确地符号化并且是双重间隔的

    任何建议超过欢迎.谢谢.解决方法当这件事发生在我身上时,它只是我通过电子邮件收到的日志.如果我记得,至少有一些是在.msg文件中,我不得不把它们拿出来.它可能是Exchange编码更改.如果你显示不可见的字符,你可能会看到每个字符之间的东西.您可以找到并替换它们以删除它们或更改编辑器中的编码.

  4. 使用Xcode为OS X Lion / Mountain Lion编译OpenCV(2.3.1)

    任何人都可以为我提供一些如何使用Xcode在OSXLion上编译OpenCV2.3.1的详细指南吗?我对此感到生气…我得到了源码,使用cmake创建Xcode模板并尝试构建它,但它失败了大约200个错误.提前致谢,大教堂解答我的回答帖子.解决方法详细指南如何使用MacPorts在Xcode4.2.1的OSXLion下启动和运行OpenCV2.3.1编辑08/06/2012:这也适用于OpenCV2.4.1.只需确保您获得最新版本的Xcode并安装“命令行工具”.编辑15/08/2012:使用Mountai

  5. ios – OpenCV构建问题,找不到ext/atomicity.h

    我得到编译器错误抱怨在构建包含OpenCV的项目时.环境是针对iOS的Xcode4.5.它为模拟器编译良好,但在为设备构建时失败.这是错误文本:我正在使用opencv2.framework,使用指令here构建cmake.解决方法默认情况下,XCode4.5使用libc(支持C11的LLVMC标准库)生成要构建的新项目.但OpenCV期望针对GNUlibstd

  6. ios – Xcode 7 beta 2:LaunchScreen.storyboard无法打开文档

    我在两个不同的Mac(iMac和MacBookpro)上收到这个错误.不知道为什么人们不能再现它,但我需要一些帮助.在运行XX优胜美地10.10.4的Mac上运行Xcode7beta2(15六月’15).甚至无法编译和运行我的项目..我从创建菜单创建了一个视图应用程序项目,就是这样.编辑:我试图删除并重新添加storyboard文件(也可以打开Main.storyboard插件),我仍然得到相同的

  7. 从IOS / iPad / iPhone的最大速度

    我使用OpenCVforiOS完成计算密集型应用程序.当然这很慢.但它比我的PC原型慢了200倍.所以我正在优化它.从最初的15秒,我能够获得0.4秒的速度.我想知道我是否找到了所有的东西以及别人想要分享的东西.我做了什么:>将OpenCV中的“double”数据类型替换为“float”.双倍是64位,32位cpu不能轻易处理,所以浮动给了我一些速度.OpenCV经常使用双倍.>为编译器选项添加了

  8. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

  9. Swift 2/iOS 9 – libz.dylib找不到

    我在我的新的Swift2.0项目中使用一些来自google的外部代码,在早期版本中需要“libz.dylib”。更新到新的XCode/新的SDK后。

  10. 在Swift iOS中使用OpenCV

    在我的xcode项目中添加OpenCV2框架后,我试图搜索samlpes或教程与swift集成。有什么好的教程同样吗?OpenCV是用C编写的框架。苹果的reference告诉我们YoucannotimportC++codedirectlyintoSwift.Instead,createanObjective-CorCwrapperforC++code.所以你不能在一个swift项目中直接导入和使用OpenCV,但这实际上并不坏,因为你(需要)继续使用框架的C语法,这是在网络上有很多文档。那么你怎么进行呢

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部