Caffe + Ubuntu 16.04 + GTK780 + GIGABYTE-uefi DualBIOS 配置

来源:互联网 发布:易语言微信机器人源码 编辑:程序博客网 时间:2024/06/06 04:58
1.安装Ubuntu16.04
进入BIOS功能,将启动优先权各项全部关闭,F10保存,进入U盘启动模式,安装Ubuntu16.04
1.1 EFI引导分区 200M
1.2 swap area(交换空间)大约与本机内存相等
1.3 剩余空间全部用作Ext4日志文件系统, 挂在点选“/”
1.4 Device foor boot loader installation 选择在EFI引导分区下

2.预检
# lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GK110 [Geforce GTX 780] (rev a1)
01:00.1 Audio device:NVIDIA Corporation GK110 HDMI Audio (rev a1)
#uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
NAME="Ubuntu"
VERSION="16.04.1 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.1 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
UBUNTU_CODENAME=xenial
#gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.02) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

3.更新 /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse

deb http://ubuntu.cn99.com/ubuntu/ precise main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ precise main restricted universe multiverse

#apt-get update 

4. 安装cmake-2.8.12.1 
# sudo wget  http://www.cmake.org/files/v2.8/cmake-2.8.12.1-Linux-i386.tar.gz
#tar xzvfcmake-2.8.11.tar.gz
# cd cmake-2.8.11
# ./configure;  make;  make install

5. 安装依赖
# 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
# sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

6. 安装cuda
因为需要GPU,故安装CUDA

6.1 安装NVIDIA驱动
Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,没能得到NVIDIA的认可与支持,不过确让Linux更容易的应对各种复杂的NVIDIA显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,故很多Linux发行版默认集成了Nouveau驱动,在遇到NVIDIA显卡时默认安装。企业版的Linux更是如此,几乎所有支持图形界面的企业Linux发行版都将Nouveau收入其中。
关闭Nouveau
#sudo gedit /etc/modprobe.d/blacklist.conf  在文件后面加入blacklist nouveau 
#mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak (无效)
#dracut -v /boot/initramfs-$(uname -r).img $(uname -r) (sudo apt-get install dracut)
下载驱动程序NVIDIA-Linux-x86_64-367.44.run
# sudo service lightdm stop   进入命令行
# sudo ./NVIDIA-Linux-x86_64-367.44.run
You appear to be running an X server; please exit X ...
# ps -e | grep X
# sudo kill Xorg  kill掉X进程
# sudo ./NVIDIA-Linux-x86_64-367.44.run
中途会报一些错误与警告,不用搭理
# sudo service lightdm start   返回图像界面
进入图像界面后报错:System program problem detected (未解决)
# nvidia-smi  检查驱动

6.2 安装CUDA
# sudo ./cuda_7.5.18_linux.run --override

# sudo gedit ~/.bashrc 修改环境变量
export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
#source~/.bashrc

# sudo gedit /etc/ld.so.conf   修改动态链接
/usr/local/cuda/lib64
# sudo ldconfig

nvcc -V  检查CUDA

# cd /usr/local/cuda-7.5/samples
# sudo make 测试CUDA
报错:unsupported GNU version! gcc versions later than 4.9 are not supported
gcc版本过高,修改CUDA配置文档,没有选择去降低gcc版本
# cd /usr/local/cuda/include/
# sudo cp host_config.h host_config.h.bak
# sudo gedit host_config.h 
if _GNUC_>4 || (_GNUC_ == 4 && _GNUC_MINOR_ > 9)  将两个4改为5
# cd /usr/local/cuda-7.5/samples
# sudo make  测试CUDA,通过

6.3 安装CUDNN
下载cudnn7.5-linux-x64-v5.1.tgz
# sudo cpinclude/cudnn.h /usr/local/cuda/include
# sudo cp lib64/libcudnn.*  /usr/local/cuda/lib64
# cd /usr/local/cuda/lib 
需要对cudnn进行修改,添加软链接
# sudo rm -rf libcudnn.so libcudnn.so.5
# sudo ln -s libcudnn.5.1.3 libcudnn.so.5
# sudo ln -s libcudnn.so libcudnn.so

7. 安装 MKL   (需要序列号,现有文件包安装)
免费获取网址 https://software.intel.com/zh-cn/intel-mkl/
# tar xzvf l_mkl2017.0.098.tgz
# cd l_mkl2017.0.098
# ./install.sh
# serial number xxxx-xxxxxxxx

# sudo vim ~/.bashrc
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
# source ~/.bashrc

8. 安装Anaconda
下载Anaconda2-4.1.1-Linux-x86_64
# sudo bash Anaconda2-4.1.1-Linux-x86_64
PREFIX=/usr/anaconda2
installing: hdf5-1.8.16-0 ...
installing: mkl-11.3.3-0 ...

anaconda 自动添加环境变量
export PATH="/root/anaconda/bin:$PATH"  

9. 安装opencv
9.1 opencv2.4.13安装
下载opencv2.4.13.zip
# unzip opencv2.4.13.zip  && cd opencv2.4.13
# mkdir release
# cd release
# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 -D CUDA_GENERATION=Kepler ..  (GTX780显卡,Kelper架构)
# make 

报错
error:/usr/include/string.h:652:42:error: ‘memcpy’ wasnotdeclaredinthis scope
原因g++版本太新了,兼容一下,在出现上面错误时,在CMakeLists.txt中前几行添加
set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
参考:http://blog.csdn.net/Swearos/article/details/51307304

# sudo make install
set runtime path of "/usr/local/opencv2/bin/opencv_visualisation" to "/usr/local/opencv2/lib:/usr/local/cuda/lib64" 
... 

9.2  配置环境变量
# sudo gedit ~/.bashrc
# exportPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
# exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib
# source ~/.bashrc

9.3 opencv测试
# cd  /usr/opencv-2.4.13/samples/c
# sudo ./build_all.sh
报错: coutours.c:1:39 fatal error: opencv2/imgproc/imgproc_c.h: No such file or direction
第7步已经配置了环境变量,大费周章后
# sudo cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig 
参考:http://blog.sina.com.cn/s/blog_77ed43e301018iuu.html
#/usr/opencv-2.4.13/samples/c     ./find_obj 测试通过

10. 安装 caffe
10.1 下载caffe-master.zip 进行安装
# unzip caffe-master.zip 
# cd caffe-master
# sudo cp Makefile.config.example Makefile.config
# sudo vim Makefile.config

###############[Makefile.config]
USE_CUDNN = 1
BLAS := mkl

PYTHON_INCLUDE := /usr/anaconda2/include/python2.7 \
                                   /usr/anaconda2/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := /usr/anaconda2/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include \
                             /opt/intel/mkl/include 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib \
                            /opt/intel/mkl/lib 
###############[Makefile.config]

# make all -j8
报错:fatal error: hdf5.h: No such file or direction
进入 Makefile.config文件
INCLUDE_DIRS := $(PYTHON_INCLUDE) ... \
/usr/include/hdf5/serial        将该路径添加至INCLUDE_DIRS中
进入 Makefile 181行
LIBRARIES += ... hdf5_hl hdf5
改为
LIBRARIES += ... hdf5_serial_hl hdf5_serial
参考:http://blog.csdn.net/xue_wenyuan/article/details/52037121

报错: ./include/caffe/util/cudnn.hpp: In function 'void caffe::cudnn::createPoolingDesc(...'
         ./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t
caffe版本与cudnn版本不匹配,下载最新版caffe安装 
参考:http://blog.csdn.net/u011070171/article/details/52292680

报错: NVCC src/caffe/layers/silence_layer.cu
         /usr/include/string.h:652:42 error:'mempy' was not declared in this scope
Makefile文件609行,添加 -D_FORCE_INLINES
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
参考:http://blog.csdn.net/eagelangel/article/details/51531801

# make test -j8
# make runtest -j8
报错:symbol lookup error: /opt/intel/mkl/lib/intel64/libmkl_intel_thread.so: undefined symbol: 
libmkl_intel_thread未找到libomp5
#sudo cp /opt/intel/lib/intel64_lin/libomp5.so /usr/local/lib

# make pycaffe
export PYTHONPATH=$PYTHONPATH: .../caffe/python
进入python环境,测试import caffe通过

10.2 测试MNIST
进入到caffe根目录下
./data/mnist/get_mnist.sh                       下载minst数据库

一定要在caffe的根目录下运行./examples/mnist/create_mnist.sh
否则会有错误“ build/examples/mnist/convert_mnist_data.bin: not found”
./examples/mnist/create_mnist.sh        数据转成lmdb格式
./examples/mnist/train_lenet.sh            训练mnist
输出正确率为99.05%

至此,caffe安装完成
0 0
原创粉丝点击