美文网首页程序员日常
ubuntu 16.04 torch7 + cuda/cudnn

ubuntu 16.04 torch7 + cuda/cudnn

作者: 听风轻咛 | 来源:发表于2018-08-22 14:44 被阅读0次

    前言: 远离高版本,时间比经验更宝贵!

    本文安装软件环境:ubuntu 16.04 + cuda 8.0

    写在前面:之前因为电脑系统是ubuntu 16.10的缘故,经历了万般波折到最近也算是把环境配好了,但是过程中的痛苦自是不再想提及,由于系统版本的升级导致了一些依赖库版本的升级,而配置torch所需要的版本并不能与之兼容,所以有些库会强制进行降版本,我这里记录了一些,基于此,强烈不建议使用高版本。

    bash install-deps
    
    libjpeg-dev
    liblcms2-dev
    libwmf-dev
    libx11-dev
    libxext-dev
    libxml2-dev
    libfreetype6-dev
    libtiff-dev libz-dev
    libpng-dev
    libbz2-dev
    libltdl-dev
    
    libltdl-dev -> libltdl7=2.4.6-0.1 ->
    libbz2-dev -> libbz2-1.0=1.0.6-8 -> 
    libpng-dev -> zlib1g-dev -> zlib1g=1:1.2.8.dfsg-2ubuntu4.1
    libtiff-dev -> libjpeg-dev -> libjpeg8-dev -> libjpeg-turbo8-dev -> libjpeg-turbo8=1.4.2-0ubuntu3.1 
    -> libtiff5=4.0.6-1ubuntu0.4 -> liblzma5=5.1.1alpha+20120614-2ubuntu2 ->liblzma-dev 
    libfreetype6-dev -> libfreetype6=2.6.1-0.1ubuntu2.3
    libxml2-dev -> libxml2=2.9.3+dfsg1-1ubuntu0.5
    libxext-dev -> libx11-dev -> libx11-6 libx11-doc
    libwmf-dev -> libwmf0.2-7
    如上类推,后面带版本号,依次添加依赖
    
    
    报没有 <readline>的错
    sudo apt install libreadline-dev -> libreadline6-dev=6.3-8ubuntu2 -> libtinfo-dev
    -> ruby-interpreter -> 预依赖 awk 使用 aptitude
    

    1.1 安装torch

    Torch是一个基于Lua语言的深度学习框架,官网地址https://github.com/torch,安装torch7官方有文档,按照文档可完成http://torch.ch/docs/getting-started.html#_

    安装之前首先确定你的Ubuntu下以安装git工具,通过Ctrl+Alt+T打开终端,在终端下输入git,加入终端输出,


    image_1cl93ve3q4vp1kjp1kfaq3j13992m.png-39kBimage_1cl93ve3q4vp1kjp1kfaq3j13992m.png-39kB

    则说明您的系统未安装git。在终端下输入sudo apt install git 即可安装,如下图所示。


    image_1cl940bnjeh71m4h2lr1ufe1gd433.png-692.1kBimage_1cl940bnjeh71m4h2lr1ufe1gd433.png-692.1kB
    在确定成功安装git工具后就可以开始安装Torch7啦!

    第一步:
    获取安装LuaJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包。代码如下:git clone https://github.com/torch/distro.git ~/torch --recursive 如下图所示。

    image_1cl9g20r61s5ar0jamd1lhv16q63g.png-1093.6kBimage_1cl9g20r61s5ar0jamd1lhv16q63g.png-1093.6kB

    第二步:
    由于默认将依赖包下载在当前路径下的torch文件下,进入torch文件夹,打开并执行install-deps中的命令(这个命令执行时间可能有点长,别着急哈)。代码如下:

    image_1cl9gdt5kjtr12hj1c26jk71m403t.png-971.8kBimage_1cl9gdt5kjtr12hj1c26jk71m403t.png-971.8kB

    第三步:
    执行install.sh文件,如下图所示。


    image_1cl9h5hh4epmf2719pp1hs0bbf4a.png-976.9kBimage_1cl9h5hh4epmf2719pp1hs0bbf4a.png-976.9kB image_1cl9h6kct1hjvlvmhifbkji424n.png-963.8kBimage_1cl9h6kct1hjvlvmhifbkji424n.png-963.8kB

    终端提示:
    Do you want to automatically prepend the Torch install location to PATH and LD_LIBRARY_PATH in your /home/guodongwei/.bashrc? (yes/no)
    输入:yes 如上图所示。

    第四步:
    将路径手动添加到PATH变量中:


    image_1cl9h83f03c71gpp1gl31c1cdn254.png-19.9kBimage_1cl9h83f03c71gpp1gl31c1cdn254.png-19.9kB
    image_1cl9h8kj21k317vv1ge91b6gllg5h.png-25.7kBimage_1cl9h8kj21k317vv1ge91b6gllg5h.png-25.7kB

    第五步:
    检测安装是否成功。在终端输入th命令,若出现下图,表明安装成功。


    image_1cl9h9g07ltb1abuo2115nsa9g5u.png-150.2kBimage_1cl9h9g07ltb1abuo2115nsa9g5u.png-150.2kB

    1.2 安装hdf5

    Hierarchical Data Format(HDF)是一种针对大量数据进行组织和存储的文件格式。经历了20多年的发展,HDF格式的最新版本是HDF5,它包含了数据模型,库,和文件格式标准。以其便捷有效,移植性强,灵活可扩展的特点受到了广泛的关注和应用。

    很多大型机构的数据存储格式都采用了HDF5,比如NASA的地球观测系统,MATLAB的.m文件,流体细算软件CDF,都将HDF5作为标准数据格式。现在HDF5还支持了大数据技术和NoSQL技术,并广泛用于科研,金融,以及其他科学和工程领域。

    HDF5在技术上提供了丰富的接口,包含C,C++,Fortran, Python, Java等,能够在不同的语言间完美兼容。

    hdf5的文件格式hdf5的文件格式

    打开hdf5官方资源地址hdf5,下载源码如hdf5-1.8.18.tar.gz形式的文件:

    $ tar -xzf hdf5-1.8.18.tar.gz
    $ cd hdf5-1.8.18
    $ ./configure --prefix=/usr/local/hdf5  #安装路径
    $ make
    $ make check # run test suite
    $ install
    $ make check-install # verify installation
    

    这里我们介绍一个hdf5可视化工具,它可以用来查看和编辑HDF文件:HDFView,如图,


    image_1cl9iei8h1mtd44o1rdv1b8f1vi76o.png-51kBimage_1cl9iei8h1mtd44o1rdv1b8f1vi76o.png-51kB

    1.3 安装torch-hdf5

    在github上https://github.com/deepmind/torch-hdf5/blob/master/doc/usage.md

    $ sudo apt-get install libhdf5-serial-dev hdf5-tools
    $ git clone https://github.com/deepmind/torch-hdf5
    $ cd torch-hdf5
    $ luarocks make hdf5-0-0.rockspec LIBHDF5_LIBDIR="/usr/lib/x86_64-linux-gnu/"
    

    1.4 安装cuda8.0

    1.4.1 检查计算机是否具备CUDA安装条件

    $ lspci | grep -i nvidia
    

    显示出GPU 版本:


    image_1clahc5v3kon12co1hhbl621bf075.png-14.8kBimage_1clahc5v3kon12co1hhbl621bf075.png-14.8kB

    1.4.2 验证自己的Linux版本是否支持 CUDA

    $ uname -m && cat /etc/*release
    
    image_1clahejs01sriaaf177c65neh7i.png-58.4kBimage_1clahejs01sriaaf177c65neh7i.png-58.4kB

    1.4.3 安装驱动(apt方式)

    $ sudo add-apt-repository ppa:graphics-drivers/ppa
    $ sudo apt-get update
    # 寻找合适的驱动版本
    $ ubuntu-drivers devices
    
    image_1clahi0n51rveuffhp21vh7e617v.png-41.8kBimage_1clahi0n51rveuffhp21vh7e617v.png-41.8kB
    $ sudo apt-get install nvidia-390
    # 安装完重启
    $ sudo reboot
    # 查看驱动安装状态
    $ sudo nvidia-smi
    $ sudo nvidia-settings
    
    image_1clahkk101r716vo78713fbh7m8s.png-60.9kBimage_1clahkk101r716vo78713fbh7m8s.png-60.9kB
    image_1clahl05r16u7127v1gjdvk5dog99.png-157.4kBimage_1clahl05r16u7127v1gjdvk5dog99.png-157.4kB

    1.4.4 安装cuda8.0

    在官网下载cuda8.0 run文件,https://developer.nvidia.com,网站需要注册才可以下载;

    image_1clahpflaevi1sp41a331bre18sn9m.png-58.5kBimage_1clahpflaevi1sp41a331bre18sn9m.png-58.5kB
    # 关闭图形化界面
    $ sudo service lightdm stop
    # 安装cuda8.0
    $ sudo sh cuda_8.0.44_linux.run
    

    单击回车,直到提示“是否为NVIDIA安装驱动?”
    选择否,因为已经安装好驱动程序,其他都是默认。

    安装完成后可能还会需要添加这些库:

    $ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
    # 完成后重启
    $ sudo service lightdm start
    

    最后需要设置环境变量:

    $ sudo vim /etc/profile
    

    在文件末尾添加以下两行:

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

    重启使环境变量生效!

    1.5 安装cudnn,cudnn.torch

    1.5.1 安装cudnn7

    下载cudnn7所需要的包,https://developer.nvidia.com/rdp/cudnn-download

    image_1clai9890c7iq27133716nh1pkra3.png-18.2kBimage_1clai9890c7iq27133716nh1pkra3.png-18.2kB

    按照如下方式安装:

    # Navigate to your <cudnnpath> directory containing cuDNN Debian file.
    # Install the runtime library, for example:
    $ sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
    # Install the developer library, for example:
    $ sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb
    # Install the code samples and the cuDNN Library User Guide, for example:
    $ sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb
    

    安装完成后需要手动添加一下路径:

    $ sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
    $ sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
    $ sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
    

    1.5.2 torch.cudnn

    最后由于版本兼容性,我们还需要修改torch.cudnn的版本:

    git clone https://github.com/soumith/cudnn.torch.git -b R7 && cd cudnn.torch && luarocks make cudnn-scm-1.rockspec
    

    我们的torch就可以使用cudnn了!

    1.6 安装lua-cjson

    下载lua CJSON,https://www.kyne.com.au/%7Emark/software/lua-cjson-manual.html

    将下载的包解压,按照如图方式添加:

    image_1clainn2c1vd31oonqgn7isk5nb0.png-23.8kBimage_1clainn2c1vd31oonqgn7isk5nb0.png-23.8kB

    1.7 安装loadcaffe

    添加loadcaffe库,https://github.com/szagoruyko/loadcaffe,如下所示:

    # Install torch first. There is no Caffe dependency, only protobuf has to be installed. In Ubuntu do:
    $ sudo apt-get install libprotobuf-dev protobuf-compiler
    $ luarocks install loadcaffe
    

    相关文章

      网友评论

        本文标题:ubuntu 16.04 torch7 + cuda/cudnn

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