Ubuntu16.04+cuda8.0+caffe安装教程

1、安装nvidia驱动

首先去官网上查看适合你GPU的驱动(http://www.nvidia.com/Download/index.aspx?lang=en-us)
例如,本人的GPU适合的驱动如图:

执行如下语句,安装

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-367 sudo apt-get install mesa-common-dev sudo apt-get install freeglut3-dev

执行完上述后,重启(reboot)。
重启后输入:

  
  
  • 1
    • 1
    nvidia-smi

    如果出现了你的GPU列表,则说明驱动安装成功了。另外也可以通过

      
      
  • 1
  • nvidia-settings

    查看自己机器上详细的GPU信息,本人机器的信息如下:

    2、安装CUDA

    cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。
    从这里下载cuda的安装文件
    https://developer.nvidia.com/cuda-release-candidate-download

    注意这里下载的是cuda8.0的runfile(local)文件。
    这里是nvidia给出的官方安装指南(遇到问题时可以查阅):
    http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt
    下载完cuda8.0后,执行如下语句,运行runfile文件:

      
      
  • 1
  • sudo sh cuda_8.0.27_linux.run

    执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia361驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。
    安装成功后会出现如下界面:

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    =========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-8.0 Samples: Installed in /home/textminer Please make sure that – PATH includes /usr/local/cuda-8.0/bin – LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64,or,136); Box-sizing: border-Box;">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 8.0/bin Please see CUDA_Installation_Guide_Linux.pdf 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 /opt/temp//cuda_install_6583.log

    安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

      
      
  • 1
  • 2
  • 3
    • 1
    • 2
    • 3
    export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/cuda-8.0/lib64${LD_LIBRARY_PATH${LD_LIBRARY_PATH}}

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

      
      
  • 1
  • $ sudo gedit /etc/profile

    在打开的文件末尾加入:

      
      
  • 1
  • export PATH = /cuda/bin$PATH

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

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

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

      
      
  • 1
  • /usr/local/cuda/lib64

    然后执行

    sudo ldconfig

    使链接立即生效。

    3、测试cuda的Samples

      
      
  • 1
  • 2
  • 3
  • cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery make sudo ./deviceQuery

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

    4、使用cudnn

    首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,是个压缩文件(.tgz)

    下载完cudnn5.0之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

      
      
  • 1
  • sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件

    再将cd进入lib64目录下的动态文件进行复制和链接:

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库 cd /usr/local/cuda/lib64/ sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件 sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接 5 libcudnn.so #生成软链接

    5、matlab的安装与配置

    在网盘上下载安装包http://pan.baidu.com/s/1nuKJc9N。里面有一个crack文件夹,用于破解;MATHWORKS_R2014A.iso用于安装。

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1、挂载iso(需新建matlab_iso文件夹): sudo mount -o loop MATHWORKS_R2014A.iso ~/matlab_is 2、开始安装: cd ~/matlab_iso sudo ./install 3、选择不联网安装 4、密钥随便输入,比如 12345-67890-67890 5、激活:选择”license_405329_R2014a.lic”文件进行激活(在Crack文件夹下面) 6、将libmwservices.so复制到/usr/local/MATLAB/R2014a/bin/glnxa64中: sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/libmwservices.so

    6、安装opencv3.1.0

    从官网上下载opencv3.1.0
    http://opencv.org/downloads.html
    并将其解压到你要安装的位置,假设解压到了/home
    首先安装Ubuntu系统需要的依赖项,虽然我也不知道有些依赖项是干啥的,但是只管装就行,也不会占据很多空间的。

      
      
  • 1
  • sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc139422 libdc139422-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

    然后安装OpenCV需要的一些依赖项,一些文件编码解码之类的小编。

      
      
  • 1
  • 2
  • 3
  • sudo apt-get install build-essential cmake git sudo apt-get install ffmpeg libopencv-dev libgtk3-dev python-numpy python3-numpy libdc139422-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

    在终端中cd到opencv文件夹下,然后

      
      
  • 1
  • 2
  • 3
  • mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里 cd build/ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLInes" ..

    cmake成功后,会出现如下结果,提示配置和生成成功:

      
      
  • 1
  • 2
  • 3
  • -- Configuring done -- Generating done -- Build files have been written to: /home/ise/software/opencv-3.1.0/build

    然后make编译就可以了

      
      
  • 1
  • make -j8

    上面是将opencv编译成功,但是并没有安装到我们的系统中,有很多的设置都没有写入到系统中,因此还要进行install。

    sudo make install
    sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
     重启系统,重启系统后cd到build文件夹下: 
    
      
      
  • 1
  • 2
    • 1
    • 2
    sudo apt-get install checkinstall sudo checkinstall

    然后按照提示安装就可以了。
    使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。
    执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。

    7、安装caffe

    首先安装各种依赖包

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • sudo apt-get update sudo apt-get install -y build-essential cmake git pkg-config sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install -y libatlas-base-dev sudo apt-get install -y--no-install-recommends libboost-all-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev sudo apt-get install -y python-pip sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy

    将终端cd到你要安装caffe的位置,执行如下指令,从github上clone caffe。

      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • git clone https://github.com/BVLC/caffe.git //从github上git caffe cd caffe //打开到刚刚git下来的caffe sudo cp Makefile.config.example Makefile.config //将Makefile.example的内容复制到Makefile.config //因为make指令只能make Makefile.config文件,而Makefile.example是caffe给出的makefile例子 sudo gedit Makefile.config //打开Makefile.config文件
      
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    打开之后修改如下内容: //若使用cudnn,则将# USE_CUDNN := 1 修改成: USE_CUDNN := 1 //若使用的opencv版本是3的,则将# OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3 //若要使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1 //重要的一项 将# Whatever else you find you need goes here.下面的 INCLUDE_Dirs := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_Dirs := $(PYTHON_LIB) /usr/local/lib /usr/lib 修改为: INCLUDE_Dirs := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_Dirs := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径 //若使用MATLAB接口的话,则要讲MATLAB_DIR换成你自己的MATLAB安装路径 MATLAB_DIR := /usr/local MATLAB_DIR local/matlab2014a

    打开makefile文件,

      
      
  • 1
  • 2
  • 3
  • 4
    • 1
    • 2
    • 3
    • 4
    将 NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换 NVCCFLAGS += -D_FORCE_INLInes -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

    编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:

      
      
  • 1
  • 2
  • 3
  • 4
  • #error-- unsupported GNU version! gcc versions later than 4.9 are not supported! 改为 //#-- unsupported GNU version! gcc versions later than 4.9 are not supported!

    之后再

    make all -j8
    make runtest
    make pycaffe
    make matcaffe

    Ubuntu16.04+cuda8.0+caffe安装教程的更多相关文章

    1. html5录音功能实战示例

      这篇文章主要介绍了html5录音功能实战示例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    2. 基于 HTML5 WebGL 实现的医疗物流系统

      物联网( IoT ),简单的理解就是物体之间通过互联网进行链接。这篇文章给大家介绍基于 HTML5 WebGL 实现的医疗物流系统,感兴趣的朋友跟随小编一起看看吧

    3. HTML5页面无缝闪开的问题及解决方案

      这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    4. HTML5跳转小程序wx-open-launch-weapp的示例代码

      这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    5. ios – 如何使用Objective C类中的多个参数调用Swift函数?

      本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

    6. ios – Swift 4添加手势:覆盖vs @objc

      我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

    7. ios – 将视频分享到Facebook

      我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

    8. ios – 以编程方式在Swift中添加联系人

      我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

    9. ios – 为目标c中的方法传递未知类型的参数,可能吗?

      是否可以将未知类型的参数传递给objective-C方法?在C#中你可以写实现这一点,但我知道Objective-C没有泛型,所以有没有其他方法可以在Objective-C中实现这一点?我需要这个,因为我想创建一个方法来改变不同对象的文本颜色,如UITextField和UIButton的占位符文本.所以我的计划是创建一个名为textWhite的方法,然后在此方法中检查对象的类型,然后运行匹配的代码以使文本颜色变为白色.解决方法是的,可以传递未知类型的参数.见下面的例子.请参考使用id对象的链接作为参数Us

    10. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

      我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

    随机推荐

    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

    返回
    顶部