Caffe (Ubuntu 14.04 + GTX 1080)(转)

[原始]

1. 软件列表

  • Ubuntu 14.04 amd64(.iso)
    › Alternative downloads › Past releases › 14.04.5 › 选择 ubuntu-14.04.5-desktop-amd64.iso
  • Cuda 8.0(.run)
    › CUDA Toolkit Downloads › Linux+x86_64+Ubuntu+14.04+runfile › Download(1.4GB)
  • Cudnn 5.1(.tgz)
    › Download › Agree › Download cuDNN v5.1 for CUDA 8.0 › cdDNN v5.1 Library for Linux
  • MKL: Intel® Parallel Studio XE Cluster Edition for Linux:
    › Linux* › 全部勾选 Accept › 注册(教育Email+Country+Submit) › Register an Account › parallel_stuio_xe_2017_update2.tgz
  • Matlab 2014aOptional

2. 系统安装

  1. UltralSO 制作U盘启动盘 on Windows
    › 启动 › 写入硬盘映像 › 选择U盘 › 写入
    • 提醒,写入过程会 格式化 U盘,请注意 备份 数据。
  2. 开机,F2DEL 进入 BIOS, 启动顺序选 U盘。退出BIOS,进入Ubuntu安装界面,选择安装Ubuntu,默认安装。
    • 提醒, 选择 安装类型 时,警惕 清除整个磁盘安装 选项。
    • 推荐选择 LVM
  3. 磁盘分区可以默认全划给 /dev/sda
  4. 注册 用户名,主机名,密码。
  5. 重启 电脑,恢复 BIOS 中的启动顺序为 硬盘 第一。

3. 安装依赖 [1]

3.0 热身准备

  1. 通用依赖

       
       
    1. sudo apt-get update
    2. sudo apt-get install -y \
    3. libprotobuf-dev protobuf-compiler \
    4. libleveldb-dev libhdf5-serial-dev libsnappy-dev \
    5. libopencv-dev # opencv
    6. sudo apt-get install -y --no-install-recommends libboost-all-dev # boost-c++
  2. 其他依赖

       
       
    1. sudo apt-get install -y \
    2. libgflags-dev libgoogle-glog-dev \
    3. liblmdb-dev
  3. 常用软件

       
       
    1. sudo apt-get install -y \
    2. vim cmake openssh-server lrzsz git gparted
  4. 安装NVIDIA驱动

       
       
    1. 参考 http://blog.csdn.net/YuhangWUST/article/details/72782254
    2. 参考 https://jingyan.baidu.com/article/d7130635c5a86113fdf47532.html

3.1 拷贝程序

  1. 挂载U盘

       
       
    1. sudo mkdir -p /mnt/usb # 创建挂载目录
    2. sudo fdisk -l # 查看U盘盘符
    3. sudo mount -t auto [/dev/sdb5] /mnt/usb # 挂载
    4. ll /mnt/usb # 测试挂载成功
  2. 拷贝软件

       
       
    1. sudo cp -r /mnt/usb/softwares ~/
    2. cd ~/softwares
    3. sudo chown -R 755 . # 修改文件权限
  3. 卸载U盘

       
       
    1. sudo umount /mnt/usb # 卸载U盘

3.2 Cuda 8.0

  1. 关闭图形界面,防止 驱动更新 造成开机死循环。
    Ctrl+Alt+F1 进入字符界面。

       
       
    1. sudo service lightdm stop # 关闭桌面服务
  2. 安装 cuda 8.0

       
       
    1. sudo ./cuda_8.0.61_375.26_linux.run # 启动cuda安装程序
    2. ## 安装引导
    3. 1. Do you accept the previously read EULA?
    4. accept/decline/quit: accept `enter`
    5. 2. Install NVIDIA Accelerated Graphics Driver for Linux-x86_86xxx?
    6. (y)es/(n)o/(q)uit: n `enter`
    7. 3. Do you want to install a symbolic link at /uer/local/cuda?
    8. (y)es/(n)o/(q)uit: y `enter`
    9. 4. Install the CUDA 8.0 Samples?
    10. * (y)es/(n)o/(q)uit: y `enter` # develop
    11. Enter CUDA Samples Location
    12. [ default is /home/usr ]: `enter`
    13. * (y)es/(n)o/(q)uit: n `enter` # deploy
  3. 重启图形界面。

       
       
    1. sudo service lightdm start # 启动桌面服务
  4. 配置环境变量

       
       
    1. sudo su
    2. echo "export PATH=/usr/local/cuda-8.0/bin:$PATH" >> /etc/profile && source /etc/profile
    3. echo "/usr/local/cuda/lib64"> /etc/ld.so.conf.d/cuda.conf && ldconfig -v | grep cuda
    4. exit
  5. 验证是否安装成功 if installed Samples

       
       
    1. nvcc -V # 版本信息release 8.0
    2. nvidia-smi # 显卡管理器
    3. ## if installed Cuda Samples
    4. cd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
    5. make
    6. ./deviceQuery # 输出结尾为`pass`

3.3 Cudnn 5.1

 
 
  1. cd ~/softwares
  2. sudo mv cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
  3. sudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
  4. sudo cp cuda/include/cudnn.h /usr/local/include
  5. sudo cp cuda/lib64/libcudnn.* /usr/local/lib
  6. sudo chmod a+r /usr/local/include/cudnn.h
  7. sudo chmod a+r /usr/local/lib/libcudnn.*
3.3.1 NCCL Optional

Version ≥ 1.2.3 (Linked with Cuda8.0), 单机多卡支持。

 
 
  1. unzip nccl-1.2.3-1-cuda8.0.zip && cd nccl-1.2.3-1-cuda8.0
  2. make CUDA_HOME=/usr/local/cuda test -j $(nproc)
  3. ## tset
  4. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./build/lib
  5. ./build/test/single/all_reduce_test 10000000
  6. ## install
  7. sudo make PREFIX=/usr/local install

3.4 BLAS

基础线性代数子程序(Basic Linear Algebra Subprograms)

  1. MKL: Intel® Parallel Studio XE Cluster Edition for LinuxSelect

       
       
    1. tar -zxvf parallel_studio_xe_2017_update2.tar.gz
    2. cd parallel_studio_xe_2017_update2
    3. sudo chmod a+x -R .
    4. sudo ./install.sh # or ./install_GUI.sh

    配置环境变量

       
       
    1. sudo su
    2. echo "/opt/intel/lib/intel64
    3. /opt/intel/mkl/lib/intel64" > /etc/ld.so.conf.d/intel_mkl.conf && ldconfig -v | grep intel
    4. exit
  2. Atlas: Select

       
       
    1. sudo apt-get install -y libatlas-base-dev

3.5 OpenCV

Version ≥ 3.1.0 兼容cuda8.0

  1. 解压源码

       
       
    1. unzip opencv-3.2.0.zip && cd opencv-3.2.0
  2. ippicv_linux_20151201 三方依赖包下载超时[2]

       
       
    1. ipp_file=../ippicv_linux_20151201.tgz
    2. ipp_hash=$(md5sum $ipp_file | cut -d" " -f1)
    3. ipp_dir=3rdparty/ippicv/downloads/linux-$ipp_hash
    4. mkdir -p $ipp_dir
    5. cp $ipp_file $ipp_dir
    • 更简单的方法,在 确保 MD5是808b791a6eac9ed78d32a7666804320e的情况下,在OpenCV源码根目录下创建目录:
      opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
      将下载的ippicv_linux_20151201.tgz 拷贝进去。
  3. 编译安装

       
       
    1. sudo chmod a+x .
    2. mkdir build && cd build
    3. cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    4. make -j $(nproc) # 多线程编译
    5. sudo make install && sudo ldconfig # 安装并更新环境变量

3.6 Matlab 2014a Optional [3]

  1. 挂载iso镜像

       
       
    1. cd ~/softwares
    2. mkdir matlab # 加载目录
    3. sudo mount -o loop MATHWORKS_R2014A.iso matlab # 解压
    4. sudo chmod 755 -R matlab
  2. 安装与激活

       
       
    1. cd matlab
    2. sudo ./install # 选择不联网安装
    3. > 12345-67890-12345-67890 # 序列号
    4. > Crack/license_405329_R2014a.lic # 不联网安装激活文件
  3. 破解

       
       
    1. sudo chmod -R a+w /usr/local/MATLAB
    2. sudo cp Crack/Linux/libmwservices.so /usr/local/MATLAB/R2014A/bin/glnxa64/
  4. 卸载镜像

       
       
    1. cd ..
    2. sudo umount matlab

4. 编译Caffe

4.1 配置编译选项

  1. 下载Caffe release candidate 5

       
       
    1. wget -O caffe-rc5.zip https://codeload.github.com/BVLC/caffe/zip/rc5
    2. unzip caffe-rc5.zip && rm caffe-rc5.zip && cd caffe-rc5
  2. 修改编译配置文件

       
       
    1. cp Makefile.config.example Makefile.config
    2. sed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.config
    3. sed -i 's/# WITH_PYTHON_LAYER := 1/WITH_PYTHON_LAYER := 1/' Makefile.config
    4. sed -i 's/# OPENCV_VERSION := 3/OPENCV_VERSION := 3/' Makefile.config
    5. sed -i 's/BLAS := atlas/BLAS := mkl/' Makefile.config # if installed mkl

4.2 编译与测试

 
 
  1. make all -j $(nproc)
  2. make test -j $(nproc)
  3. make runtest -j $(nproc)

4.3 编译PyCaffe Optional

使用系统原生Python version 2.7.6

 
 
  1. sudo apt-get install -y \
  2. python-pip python-dev \
  3. python-numpy python-scipy python-matplotlib \
  4. python-sklearn python-skimage \
  5. python-h5py python-protobuf python-leveldb \
  6. python-networkx python-nose python-pandas \
  7. python-gflags cython ipython
  8. make pycaffe -j $(nproc)
  9. make pytest -j $(nproc)

4.4 编译MatCaffe Optional

Matlab_2014a for Unix

 
 
  1. sed -i 's/CXXFLAGS += -MMD -MP/CXXFLAGS += -MMD -MP -std=c++11/' Makefile
  2. sudo make matcaffe -j $(nproc)
  3. sudo make mattest -j $(nproc)

5 Cmake cuda [4]

5.1 Configure

 
 
  1. vim CMakeLists.txt
  2. - Change USE_NCCL to "ON"
  3. vim cmake/Dependencies.cmake
  4. - find "set(BLAS "Atlas" ...)"
  5. - change "Atlas" to "MKL"

5.2 Cmake

 
 
  1. mkdir cmake_build && cd cmake_build && cmake ..

5.3 Make

 
 
  1. cmake . -DCMAKE_BUILD_TYPE=Debug # 跳转到Debug模式下
  2. make -j $(nproc) && make install
  3. cmake . -DCMAKE_BUILD_TYPE=Release # 跳转到Release模式下
  4. make -j $(nproc) && make install
  5. make symlink # softlink cmake_build to build
  • DebugRelease 下生成的可执行文件不会相互覆盖,Debug下都会有-d 的后缀。

5.4 cmake shared-lib with caffe and JNI

Predict.java
 
 
  1. public static native HashMap<String, Float> predict(List<CalculateInfo> images,
  2. int reset,
  3. String modelFile,
  4. String trainedFile,
  5. int batchSize,
  6. int gpuId);
Signature head file
 
 
  1. javac com/persist/.../Predict.java # get Predict.class
  2. javah com.persist...Predict # get Predict.h
CMakeLists.txt
 
 
  1. cmake_minimum_required(VERSION 2.8.8)
  2. set(SrcFile classify.cpp)
  3. # file(GLOB_RECURSE examples_srcs "${PROJECT_SOURCE_DIR}/porn-jni/*.cpp")
  4. find_package(JNI)
  5. if (JNI_FOUND)
  6. message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
  7. message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
  8. endif()
  9. find_package(OpenCV REQUIRED)
  10. if (OpenCV_FOUND)
  11. message (STATUS "OpenCV_INCLUDE_DIRS=${OpenCV_INCLUDE_DIRS}")
  12. message (STATUS "OpenCV_LIBS=${OpenCV_LIBS}")
  13. endif()
  14. find_package(Caffe REQUIRED)
  15. if (Caffe_FOUND)
  16. message (STATUS "Caffe_INCLUDE_DIRS=${Caffe_INCLUDE_DIRS}")
  17. message (STATUS "Caffe_DEFINITIONS=${Caffe_DEFINITIONS}")
  18. message (STATUS "Caffe_LIBRARIES=${Caffe_LIBRARIES}")
  19. endif()
  20. message (STATUS "Caffe_Link=${Caffe_Link}")
  21. include_directories(${JNI_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${Caffe_INCLUDE_DIRS})
  22. add_library(PornJni SHARED ${SrcFile})
  23. target_link_libraries(PornJni ${Caffe_Link} ${JNI_LIBRARIES} ${OpenCV_LIBS} ${Caffe_LIBRARIES})
cmake
 
 
  1. mkdir cmake_build && cd cmake_build
  2. cmake .. && make -j $(nproc)


[1] Ubuntu 14.04+cuda8.0+opencv3.1+caffe
[2] OpenCV 3.1下载 ippicv_linux_20151201失败
[3] 在Ubuntu14.04下安装matlab2014a
[4] https://github.com/BVLC/caffe/pull/1667







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值