nvidia jetson TX2配置caffe

   英偉達在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
興趣是最好的老師

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章