码迷,mamicode.com
首页 > 系统相关 > 详细

(译)综合指南:通过Ubuntu 16.04上从Source构建来安装支持GPU的Caffe2

时间:2018-09-02 21:54:42      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:联系   nmp   知识   ike   cal   pac   str   with   网络模型   

(译)综合指南:通过Ubuntu 16.04上从Source构建来安装支持GPU的Caffe2

译者注:

原文来自:https://tech.amikelive.com/node-706/comprehensive-guide-installing-caffe2-with-gpu-support-by-building-from-source-on-ubuntu-16-04/?tdsourcetag=s_pctim_aiomsg, 不得不说该文作者知识比较丰富,研究比较深入,环境的配置讲解比较详细。个人认为这篇博客价值比较大,可能这篇博客会对深度学习的工作者们提供一定的帮助,所以打算翻译下来,并尽量还原原文的意思。如果有侵权,请联系我。

技术分享图片

通过基础设施设置(译者注:即深度环境),我们可以方便地开始钻研深度学习,构建,训练和验证深度神经网络模型,并将模型应用到特定问题域。将深度学习原语转换为低级字节码执行可能是一项艰巨的任务,特别是对于没有深度学习计算兴趣的从业者。幸运的是,有几个深度学习框架提供高级编程接口,以帮助执行深度学习任务。(即深度学习平台)

在这篇文章中,我们将介绍Caffe2的安装,这是一个主要的深度学习框架。Caffe2采用Caffe,这是由加州大学伯克利分校Barkeley Vision and Learning Center(BVLC)开发的深度学习框架。Caffe2的开始旨在改善Caffe,特别是为了更好地支持大规模分布式模型培训,移动部署,降低精度计算,新硬件以及移植到多个平台的灵活性。

为什么从源安装?

需要注意的是,除了从源进行安装,还有一些更简单的选项,例如通过拉动和运行Caffe2 Docker镜像。可以在此处访问Caffe2映像的Docker存储库。尽管如此,如果您观察列表,image(docker中镜像)不是最新的,它们是针对旧版本的CUDA工具包和cuDNN构建的。因此,打算使用最新的Caffe2,CUDA或cuDNN功能的人应该考虑从源代码进行安装。

Caffe2 现在是Pytorch的一部分

之前caffe2是一个独立的库来维护的。自从2018年3月底依赖,Caffe2就已经被合并到Pytorch仓库中了,(译者注:现在已经不能通过单独编译caffe2的源代码得到Caffe2了,已经无法将所有模块clone下来了)。所以Caffe2的共同构建过程已经被集成到了pytorch中去。

关于源代码合并的动机可能存在疑问。正如公告文章中所解释的那样,合并之前是Caffe2和Pytorch之间的开发基础设施共享,导致共享代码和公共库的数量不断增加。然后得出结论,将两个项目合并为一个代码库将提高工程效率并提高框架的稳健性,尤其是在模型部署领域。

如果先前安装了Caffe2怎么办?在源代码合并之前安装Caffe2时,构建过程将输出随后复制到指定目录的头文件,动态库和python库。从理论上讲,用最新版本的文件替换旧的头文件和库文件就足够了。如果它不起作用,则在继续安装之前首先从已安装的目录中删除旧文件,然后进行清理

先决条件

我们将安装支持GPU的Caffe2。本文仅介绍具有NVIDIA GPU的计算机的安装过程。在完成安装之前,请验证是否满足这些项目。

  1. 确认已正确安装NVIDIA图形驱动程序。

    您可以参考本文了解NVIDIA图形驱动程序的安装和功能检查。

  2. 验证是否已安装CUDA工具包。
    如果您尚未安装CUDA工具包,不确定它是否已安装,或者是否要安装较新版本的CUDA工具包,请参阅本文,其中提供了有关CUDA工具包安装的更多详细信息。

  3. 验证是否已安装cuDNN。有关cuDNN安装的更多详细信息,
    请参阅此文章

  4. 从先前的Caffe2安装中删除文件
    如果您之前安装了Caffe2并且想要进行升级,则可能需要清除在先前的Caffe 2安装中创建和复制的文件。
    注意:这通常可以跳过,因为构建工具将首先检查系统中安装的Caffe2的现有版本,然后再用新的版本替换它

sudo rm -vRf /usr/local/include/caffe2
sudo rm -vf /usr/local/lib/libcaffe2*

此外,我们可能需要从Python包目录中删除python API(路径可能因安装的Python版本而异)。

sudo rm -vRf /usr/local/lib/python2.7/dist-packages/caffe2

检查完所有先决条件后,我们现在可以继续安装。

安装步骤

可以通过按顺序执行这些步骤来完成安装。

  1. 更新apt包索引
sudo apt-get update
  1. 安装apt包依赖
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
  1. 安装pip依赖
sudo pip install --upgrade pip
sudo pip install setuptools future numpy protobuf
sudo apt-get install -y --no-install-recommends libgflags-dev
  1. 将Caffe 2克隆到本地目录中

注意:我们创建一个名为caffe2-pytorch的目录,并将Pytorch git repository克隆到此目录中。

mkdir caffe2-pytorch && cd caffe2-pytorch
git clone --recursive https://github.com/pytorch/pytorch.git ./
git submodule update --init
  1. 建立Caffe 2
mkdir build && cd build
cmake ..
sudo make -j"$(nproc)" install

注意:构建源代码时,我们提供-j标志。该标志指的是在构建源代码时编译器(即GCC)可以生成的线程数。该NPROC命令本身会打印可用的CPU数量。简而言之,我们希望通过创建多个线程来加快编译时间,这些线程相当于并行执行编译的CPU数量。

  1. 为Caffe 2共享库创建符号链接
sudo ldconfig
  1. 验证Caffe2的库文件和头文件是否已经安装好
  • 更新本地database
sudo updatedb
  • 确保libcaffe2.so在/usr/local/lib
locate libcaffe2.so
  • 确认头文件是不是在/usr/local/include
locate caffe2 | grep /usr/local/include/caffe2
  1. 将Caffe2添加到Python 库路径中,以便于其他应用能够通过路径找到该文件
vim ~/.profile

# set python path
if [ -z “$PYTHONPATH” ]; then
    PYTHONPATH=/usr/local
else 
    PYTHONPATH=/usr/local:$PYTHONPATH
fi

#set library path
if [ -z “$LD_LIBRARY_PATH” ]; then
    LD_LIBRARY_PATH=/usr/local/lib
else
    LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
fi

我们还可以使用参数扩展设置库路径,如下所示:

PYTHONPATH=/usr/local${PYTHONPATH:+:${PYTHONPATH}}
LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

让新路径生效

source ~/.profile
  1. 验证Caffe2 python模块是否可以被正确调用
$ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
  1. 验证Caffe2是否可以在GPU支持下运行
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

(译)综合指南:通过Ubuntu 16.04上从Source构建来安装支持GPU的Caffe2

标签:联系   nmp   知识   ike   cal   pac   str   with   网络模型   

原文地址:https://www.cnblogs.com/pprp/p/9575320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!