nvidia jetson TX2配置caffe

版权声明:本文为博主原创文章,转载时请附加博文链接。 https://blog.csdn.net/jiongnima/article/details/70040262

   英伟达在2017年3月发布了全新嵌入式计算平台TX2,从网上的介绍来看,TX2延续了小体积、高度集成的特性,整合了 4 核 ARM A57 CPU、Pascal 架构 GPU(16 纳米工艺)、最高 8G 内存、32G 固态存储器等组件。标准功耗为 7.5W。另外,TX2 也可以将功率提高到 15W,从而提升计算能力。

   看到如此诱人的配置,笔者入手了一块TX2,见下图


   TX2自带的系统为Ubuntu16.04,笔者迫不及待地开始在TX2上配置caffe,下面记录了笔者的配置过程。

   配置caffe一共分为两大步骤,第一大步是进行JetPack3.0安装,这一步由笔者的同事luval完成,在此对他的贡献表示感谢。JetPack3.0中包含了cuda8.0,是caffe运行必不可少的组件,首先附上JetPack的下载链接https://developer.nvidia.com/embedded/jetpack点击打开链接,在下载时可能需要登录nvidia账户。

然后再附上JetPack的安装指南http://docs.nvidia.com/jetpack-l4t/index.html#developertools/mobile/jetpack/l4t/3.0/jetpack_l4t_install.htm点击打开链接

请大家安装的时候一定要跟随官网的安装指南,下面记录一下JetPack3.0的安装过程:

首先准备一台宿主机,luval用的是一个ubuntu14.04的虚拟机,将下载的JetPack-L4T-3.0-linux-x64.run放到相应的文件夹下,并在文件夹下执行:

sudo ./JetPack-L4T-3.0-linux-x64.run



在进入图形界面之后,一路next到如下界面:


如果需要刷机的话,就勾选蓝框中的东西,如果不需要刷机,只需要安装JetPack组件的话,可以在下面选择,上图显示了luval的选择,然后再经过以下两步:



到了下面这一步:


   此时TX2应该是开机状态,而且宿主机应该与TX2在同一个网络里luval的做法是将TX2与宿主机分别用网线连接到同一个路由器。IP行填TX2的ip地址,user name行填TX2的登录用户名,password填TX2的对应的账户密码(TX2自带nvidia/nvidia),点next,如果IP和用户名以及密码正确,进入到安装功能包的界面,这是自动进行的,保持网络连接即可,直到完成。

在程序安装完毕后,在TX2上设置环境变量

sudo gedit /etc/bash.bashrc

在文件的末尾加入如下
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

然后cuda就配置完毕了,运行

nvcc -V


查看一下cuda版本

那么,我们再查看一下其他安装或者自带组件的版本



   然后我们开始进行第二大步,配置caffe:

首先安装一般依赖项

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

再安装BLAS依赖项
sudo apt-get install libatlas-base-dev

然后是python和其余依赖项,安装python及其头文件
sudo apt-get install python
sudo apt-get install python-dev

安装python的其他依赖
sudo apt-get install python-numpy
sudo apt-get install ipython
sudo apt-get install ipython-notebook
sudo apt-get install python-sklearn
sudo apt-get install python-skimage
sudo apt-get install python-protobuf

然后是谷歌glog和gflags和lmdb依赖项
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

接着安装git,并且下载代码
sudo apt-get install git
然后进入到源码目录
cd caffe

编译Caffe
cp Makefile.config.example Makefile.config

需要使用cuDNN的朋友可以将Makefile.config中USE_CUDNN := 1这一行之前的井号注释去掉,
同时,为了匹配cuda8.0的计算能力,请把Makefile.config中CUDA_ARCH中的前两行去掉,如下图所示(保留也行,编译的时候会弹出警告)

然后
make all -j8

值得注意的是,笔者在第一次编译的时候遇到了如下问题:
./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory
解决方法笔者参阅了http://blog.csdn.net/hongye000000/article/details/51043913点击打开链接,在链接博客中,解决方法如下:
在Makefile.config文件中,添加 /usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

在Makefile文件中,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial


上述解决方法笔者亲测有效,感谢博主,然后
make clean
make all -j8

caffe编译成功。



written by jiong
兴趣是最好的老师

展开阅读全文

没有更多推荐了,返回首页