美文网首页linux学习
Ubuntu16.04+matlab2014a+anaconda

Ubuntu16.04+matlab2014a+anaconda

作者: lyndon713 | 来源:发表于2016-06-28 20:22 被阅读6590次

    本次安装caffe是在新的笔记本上,感觉与之前在台式机上的安装还是有一定的区别。加之是在新的ubuntu16.04系统上安装的,可参考教程较少。而且其中添加了不少库,修改的一些错误,难免会有遗漏。如果发现本文未提及错误,欢迎一起讨论学习。另外,看到有的人说安装了半个多月,多次重装,希望有问题还是先把问题查清楚,不要盲目重装系统;其次,安装的时候最好记录自己安装的过程和内容,避免遗漏和重复,出问题了也可以与别人的教程相对比。
    首先介绍安装条件和软件准备:

    参考博客与文章:
    ubuntu16.04系统cuda7.5安装教程:https://www.pugetsystems.com/labs/hpc/NVIDIA-CUDA-with-Ubuntu-16-04-beta-on-a-laptop-if-you-just-cannot-wait-775/
    caffe官网教程:http://caffe.berkeleyvision.org/installation.html
    ubuntu16.04系统cuda7.5配置与caffe安装教程:http://blog.csdn.net/g0m3e/article/details/51420565
    ubuntu14.04系统上caffe安装:http://www.cnblogs.com/platero/p/3993877.html

    一、Ubuntu16.04系统安装

    这一部分接触过ubuntu系统的应该比较熟悉,网上也有很多可以参考的例子,就不再赘述。另外,我是在一个SSD固态硬盘上单独安装的系统,之前在台式机上也是这么实现的,感觉这样和windows双系统故障会少些。

    二、显卡驱动与cuda安装

    1、显卡驱动安装

    安装完ubuntu16.04系统之后,直接更新系统并重启。在多显卡的笔记本中,可能需要在BIOS系统里选择”自由选择显卡“,这样系统才能识别nvidia的显卡,并进行驱动更新。我这里是运用ppa更新的最新驱动,使用起来能够得到挺好的体验,并能够实现双显卡的自由切换。
    首先,通过快捷键Ctrl+Alt+T打开终端,然后加入官方ppa源:

    $ sudo  add-apt-repository ppa:graphics-drivers/ppa
    

    需要输入用户密码,并确认链接源。之后刷新软件库并安装最新的驱动,在命令行输入:

    $ sudo apt-get update
    $ sudo apt-get install nvidia-367 nvidia-settings nvidia-prime
    

    由于联想笔记本的UEFI保护,会拒绝第三方的驱动,因此需要关闭该保护,关闭之后重启能够正常驱动nvidia,并能够进行双显卡的切换。
    安装完成之后,可以通过系查看系统属性,看是否是nvidia的显卡。另外,也可以通过下面命令看是否安装成功:

    $ nvidia-settings
    
    nvidia settings界面

    如果出现的nvidia设置界面不是这样,驱动可能还是有问题。此处我出现的错误主要是是UEFI保护没注意到,导致重复安装了几遍。

    2、cuda7.5 安装与配置

    首先下载cuda7.5.run文件,如下图所示:


    cuda7.5下载版本

    可以看到当前cuda7.5还不支持ubuntu16.04。参考别人的教程,主要是gcc版本的问题,实际是可以编译通过的。下载完15.04版本的run文件之后,一定要进行进行md5检验,校验码不对会出现安装之后重启不能进入界面的问题。
    下载完成之后,cd进入文件所在目录,在终端进行如下操作

    $ chmod 777 cuda_7.5.18_linux.run     #获取文件权限
    $ sudo ./cuda_7.5.18_linux.run --override #执行文件安装
    

    注意后面的override是必须的,这样才能保证安装的过程中,不会出现编译器不支持的错误。另外,在选择条件的过程中,一定不要再次安装nvidia驱动,虽然cuda.run文件本身是包含又nvidia驱动的,但是本处直接安装会出错。下图是安装.run文件的配置:

    cuda.run文件安装界面
    安装完成之后会出现

    ============ Summary ============
    Driver: Not Selected
    Toolkit: Installed in /usr/local/cuda-7.5
    Samples: Installed in /usr/local/cuda-7.5

    之后更换cudnn动态库,可以获得更快的计算效率。下载完cudnn5.0之后进行解压,cd进入cudnn5.0解压之后的include目录,在命令行进行如下操作:

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

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

    $ 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
    $ sudo ln -s libcudnn.so.5 libcudnn.so
    

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

    $ sudo gedit /etc/profile
    

    在打开的文件末尾加入:

    export PATH = /usr/local/cuda/bin:$PATH

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

    $ sudo vim /etc/ld.so.conf.d/cuda.conf
    

    按下键盘i进行编辑,输入链接库位置:

    /usr/local/cuda/lib64

    然后按esc,输入:wq保存退出。并在终端输入:

    $ sudo ldconfig
    

    使链接立即生效。

    3、cuda用例安装与测试

    在安装cuda.run文件时,我们已经选择安装了samples用例,还需要编译。因为当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则无法编译成功。在终端输入:

    $ cd /usr/local/cuda-7.5/include
    $ cp host_config.h host_config.h.bak   #备份编译头文件
    $ sudo gedit host_config.h
    

    然后在115行修改编译其支持的版本:

    # if GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9)
    # error -- unsupported GNU version! gcc versions later than 4.9 are not supported!
    # endif /* GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9) */

    将if后面连续两个4改为5即可,然后进入用例文件进行编译:

    $ cd /usr/local/cuda/samples
    $ sudo make all -j4
    $ cd /usr/local/cuda/samples/bin/x86_64/linux/release
    $ sudo ./deviceQuery
    

    成功之后会出现下列信息:

    CUDA Device Query (Runtime API) version (CUDART static linking)
    Detected 1 CUDA Capable device(s)
    Device 0: "GeForce GTX 960M"
    CUDA Driver Version / Runtime Version 8.0 / 7.5
    CUDA Capability Major/Minor version number: 5.0
    Total amount of global memory: 4044 MBytes (4240375808 bytes)
    ( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores
    GPU Max Clock rate: 1176 MHz (1.18 GHz)
    Memory Clock rate: 2505 Mhz
    Memory Bus Width: 128-bit
    L2 Cache Size: 2097152 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 kernel execution: Yes with 1 copy engine(s)
    Run time limit on kernels: Yes
    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 = 8.0, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 960M
    Result = PASS

    通过上述用例测试,就表明显卡驱动安装和cuda安装完全成功了。

    二、BLAS安装与配置

    BLAS(基础线性代数集合)是一个应用程序接口的标准。caffe官网上推荐了三种实现:ATLAS, MKL, or OpenBLAS。其中atlas可以直接通过命令行安装,在此不再介绍。我采用的是intel的mkl库,首先,通过上面链接在intel官网申请学生版的**Parallel Studio XE Cluster Edition **,下载完成之后cd到下载目录进行安装:

    $ tar zxvf parallel_studio_xe_2016_update3.tgz   #解压下载文件
    $ chmod 777 parallel_studio_xe_2016_update3 -R   #获取文件权限
    $ cd parallel_studio_xe_2016_update3/
    $ sudo ./install_GUI.sh
    

    安装完成之后,进行相关文件的链接:

    $ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
    

    在打开的文件中添加库文件:

    /opt/intel/lib/intel64
    /opt/intel/mkl/lib/intel64

    添加完成之后,编译链接时lib文件立即生效:

    $ sudo ldconfig
    

    三、OpenCV3.1.0安装与配置

    首先安装必要的库,有的依赖库我是已经安装过的,具体安装的先后关系已经忘了。如果出现有些依赖关系不满足的错误,可以再安装库:

    $ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev    # 必要的基本库
    

    根据上面的链接下载OpenCV3.1.0版本,并进行解压,解压之后进入安装文件目录:

    $ cd opencv-3.1.0
    $ mkdir build          #创建build文件夹
    $ cd opencv-3.1.0/build
    $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
    $ #生成的文件在bulid中,而生成的CMakeList.txt文件在上一级文件中
    

    在configure过程中过程中,可能会出现下面的错误:

    -- ICV: Downloading ippicv_linux_20151201.tgz...

    在直接下载该文件的过程中,会因为超时而失败,可以下载http://download.csdn.net/detail/yehuohan/9511463, 并替换掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,然后再次cmake即可。生成编译文件之后,在opencv-3.1.0/build目录下,终端输入:

    $ make -j4       #四核运算
    $ sudo make install
    

    此时,可能会出现另外一个错误:

    /usr/include/string.h: In function ‘void* __mempcpy_inline(void, const void, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n;

    这也是因为ubuntu16.04的个个g++版本太高的造成的,只需要在opencv-3.1.0目录下的CMakeList.txt 文件的开头加入:

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")

    添加之后再次进行编译链接即可。

    4、python安装与配置

    python的安装有两种方式:一种是系统自带的python,只需再安装相应的库即可;第二种是直接安装anaconda,很多相应的库已经包含了。第一种直接安装库文件比较简单,不需要修改相应的包含路径和库文件。本人因为习惯了anaconda,因此选择的是anaconda linux64 2.7版本(3.5版本我也试过,装caffe的时候可能会比较麻烦)。下载完成之后,最好也要进行md5sum的检验。完成之后,cd进入下载文件所在的目录,在命令行输入:

    $ bash Anaconda2-4.0.0-Linux-x86_64.sh
    

    安装完成之后,在.bashrc中添加Anaconda的库文件,一定不要在/etc/profile文件中添加。因为anaconda有几个链接库和系统链接库文件类似,如果添加到/etc/profile文件中,会出现电脑重启之后不能进入界面的情况

    $ sudo gedit ~/.bashrc
    

    然后加入库文件:

    export PATH="/home/lyndon/anaconda2/bin:$PATH"
    export LD_LIBRARY_PATH="/home/lyndon/anaconda2/lib:$LD_LIBRARY_PATH"

    重启电脑之后,在命令行输入:

    $ ipython
    

    就可以看到python的版本,并进行运用了。

    5、matlab的安装与配置

    在网盘上下载安装包及Crack破解文件之后,解压两个压缩文件,并用Crack文件中的install替换matlab2014安装目录下/java/jar/下的install文件。然后在命令行cd进入matlab2014目录,输入:

    $ sudo ./install
    

    1、选择“不联网安装”;
    2、当出现密钥时,随意输入20个数字12345-67890-12345-67890即可;
    3、选择自己需要安装的工具;
    4、需要激活时选择不要联网激活,运用Crack目录下的“license_405329_R2014a.lic”文件作为激活文件
    安装完成之后,还要将Crack/linux目录下的libmwservices.so文件拷贝到/usr/local/MATLAB/R2014a/bin/glnxa64。在Crack/linux目录下的命令行输入:

    $ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64
    安装完成之后,直接在命令行输入matlab,就能过进行使用了

    6、caffe的安装与配置

    首先,安装caffe必要的库文件:protobuf, glog, gflags, hdf5

    $ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
    

    安装之后,anaconda应用时还是会出现错误。此时用anaconda的安装工具conda 再安装必要文件就行了,我安装了以下文件,后续ipython中就能够用caffe了。

    $ conda install libprotobuf-dev libleveldb-dev 
    

    安装完成之后,进入caffe下载的文件目录,在命令行输入:

    $ sudo cp Makefile.config.example Makefile.config # 备份配置文件
    $ gedit Makefile.config  # 修改编译文件
    

    配置文件主要修改:

    USE_CUDNN := 1 #取消注释,应用cudnn
    OPENCV_VERSION := 3 #取消注释,应用opencv3
    BLAS := mkl #BLAS库应用英特尔的mkl
    ANACONDA_HOME := /home/lyndon/anaconda2
    PYTHON_INCLUDE := $(ANACONDA_HOME)/include
    $(ANACONDA_HOME)/include/python2.7
    $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \ #选用anaconda作为python工具
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial #加入了 /usr/include/hdf5/serial,防止找不到hdf5.h错误

    在make过程中可能 string.h ‘memcy’ was not declared in this scope的错误是,这也是因为ubuntu中gcc编译器版本太新,解决方法是打开Makefile文件,搜索并修改:

    改 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
    为 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

    还可能出现:/usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0',解决改问题只需要添加库文件路径就行,在home目录下的命令行输入:

    $ sudo gedit ~/.bashrc
    

    在文件中加入:

    export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

    在命令行输入:
    $ sudo ldconfig #编译立即生效,然后进入caffe所在目录
    $ cd /home/lyndon/lyndon/caffe/caffe-master
    $ make all -j4 #编译文件
    $ make test -j4 #编译测试文件
    $ make runtest
    $ make pycaffe
    $ make matcaffe
    如果编译都没报错,则表示基本成功,能够通过用例进行测试了。在运用anaconda和matlab时都需要修改相应的内容。
    anaconda需要将caffe头文件进行链接:

    $ sudo gedit ~/.bashrc
    

    export PYTHONPATH="/home/lyndon/lyndon/caffe/caffe-master/python:$PYTHONPATH"
    之后编译链接库,打开ipython,输入:

    $ import caffe
    

    即可调用caffe相应模块了。matlab模块可以直接测试caffe/matlab/+caffe的用例。

    7、总结

    至此,ubuntu16.0下的caffe等相关文件全部安装完毕,其中问题最多的应该是双显卡问题中的nvidia驱动安装的问题,很有可能会驱动不起来,最好弄明白自己出错的原因,不然重装系统也没用。其次,在安装anaconda过程中,有些教程建议把库文件加入到/etc/profile环境中,这可能会造成电脑重启没法进入桌面的问题。其余的问题都应该不会造成电脑不能重启不能进入桌面的情况,可以直接google和百度解决。

    相关文章

      网友评论

      • 庞贝船长:想问问博主,就是在安装OpenCV-3.1.0时,编译例子cd ~/opencv-3.1.0/samples/cpp
        $ ./cpp-example-facedetect /home/alphacocoa/lena.jpg时有没遇到过错误:像 fail to load fglrx什么什么的,fglrx kernal modula之类的,我的也是联想笔记本电脑,gtx 950,求大神帮帮忙
        庞贝船长:@lyndon713 哈哈,谢谢回复。已经解决了。就是当初安装了软件包,忘了sudo apt update.
        lyndon713:@alphacocoa 不知道你的问题解决没有,我安装OpenCV没有遇到这个问题。但是这个错误应该还是与显卡相关的错误,不知道你显卡的驱动是否测试过关了。
      • MagicianCH:非常感谢。
        之前已经在Linux Mint17.3上都安装成功了,现在mint18正式版出了,强迫症已经受不了了,今晚回去重装系统然后重新安装。

      本文标题:Ubuntu16.04+matlab2014a+anaconda

      本文链接:https://www.haomeiwen.com/subject/pnaodttx.html