前言
又要写安装贴,感觉离我的技术blog走远了,现在感觉写下来的东西可能并没有什么大用,总会有新坑出现,到时又得爬坑。说是这么说,我还是写一下吧。实验室新购一台机器,双路GTX1080(本来是双路titan的,无奈好像新titan不好买到,将就一下吧,不过终于可以不用我的笔记本跑了,想想还是无限美好!)
1.安装Ubuntu
具体安装步骤就不谈了,主要说个问题,我在装好系统后发现进不了tty1~6,搜了一下,可以这么解决
编辑/etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT的值为nomodeset
更新grub:sudo update-grub
安装CUDA
安装cuda8.0和之前的cuda7.5没什么区别,可以参考我的另一篇博客。就发现装服务器时候,原来会导致无法进入桌面的OpenGL安装了并没有什么影响,可能这和笔记本核显有冲突,具体原因不知道。
装完cuda,联网安装一些基本包
sudo apt-get install build-essential
sudo apt-get install vim cmake git
sudo apt-get install libprotobuf-dev libleveldb-dev
libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
安装CuDnn
原来的显卡计算能力小于3,用不动cuDnn,现在可以了。先去Nvidia官网下载cuDnn,我下载的是cuDNN v5.1 Library for Linux ,虽然那上面也有for Ubuntu14.04,但是看到的文档这么做的,我就不作死了。
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
cd /usr/local/cuda/lib64/
sudo rm libcudnn.so.5
sudo rm libcudnn.so
sudo ln -s libcudnn.so.5.13 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
设置环境变量
安装完成后需要在/etc/profile中添加环境变量, 在文件最后添加:
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后, 执行下列命令, 使环境变量立即生效
source /etc/profile
同时需要添加lib库路径: 在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下
/usr/local/cuda/lib64
保存后,执行下列命令使之立刻生效
sudo ldconfig
安装BLAS
这里可以选择(ATLAS,MKL或者OpenBLAS),我之前是用ATLAS,免费,安装也很方便。
sudo apt-get install libatlas-base-dev
这次看到宇宙骑士的博客里说到MKL速度最快,学生免费,那就体验一把。
我这里使用MKL,因为它最快。首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/qualify-for-free-software/student, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(注意任何一级文件夹不能包含空格,否则安装会失败)
$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)
$ chmod a+x parallel_studio_xe_2016 -R
$ sh install_GUI.sh
注意: 安装完成后需要添加library路径, 创建/etc/ld.so.conf.d/intel_mkl.conf文件, 在文件中添加内容
/opt/intel/lib
/opt/intel/mkl/lib/intel64
注意把路径替换成自己的安装路径。 编辑完后执行
sudo ldconfig
安装Opencv
引用这篇博客的东西吧,因为让我长了一点见识,第一次都是无脑输入安装命令。
1. 安装OPENCV
opencv的安装有两种方式:
(1)安装官网默认版本的OpenCV(2.4.8);
(2)安装特定版本的OpenCV(这里一般指3.0以上的版本,个人觉得除了3.0以上的版本,其它版本感觉跟2.4.8区别不大,很多时候为了省事就直接装CAFFE默认版本的就好了)
下面分别讲一下:
(1)的安装方式非常简单,打开终端,运行下面这句命令就行了:
sudo apt-get install libopencv-dev
之前都不知道有官网默认版本这事。
安装的时候我没有采用上面两种,而是采用了别人写好的脚本。脚本出处很多,我是从宇宙骑士的博客上分享的云盘上下载的。但是还是遇到了大坑了。
遇到三个问题:
1.The imported target “Qt5::Gui” references the file “/usr/lib/x86_64-linux-gnu/libGL.so” but this file does not exist.
google了一下,解决方式如下:
$ sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
$ sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
2.运行脚本中途遇到需要下载 ippicv_linux_20141027.tgz,但是不知道是不是有墙的原因,下不动了。导致无法继续下去。
我去网上下载ippicv_linux_20151201.tgz,然后拷贝到指定文件
cp ippicv_linux_20141027.tgz /home/zhou/opencv3.0/OpenCV/opencv-3.0.0/3rdparty/ippicv/downloads/
linux-8b449a536a2157bcad08a2b9f266828b
重新运行脚本。
3.然后开始正常安装,并开始make,但是make到72%出现错误,graphcuts.cpp文件中许多变量没有声明
google之后发现是因为opencv3.0还不支持cuda8.0,但是有个同学已经对其进行修改。
请参考此网站
cd '/home/zhou/opencv3.0/OpenCV/opencv-3.0.0/modules/cudalegacy/src'
sudo vi graphcuts.cpp
重新运行指令:
sudo sh opencv3_1_0.sh
修改完再次运行安装脚本。能解决2,3问题,主要感谢这篇博客的博主。
安装anaconda包
官网下载好安装包。
bash Anaconda2-2.4.1-Linux-x86_64.sh
将安装路径添加到系统环境变量中,
$sudo gedit /etc/profile
在文件末尾添加一行:
export PATH={$HOME}/anaconda/bin:$PATH
使它生效
source /etc/profile
用which python 确认一下是否默认python已经是anaconda的python
安装caffe
1.安装其它依赖项
caffe官网第一步那几句指令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
接下来就是gflag、glog、lmdb的安装,那就要看你的ubuntu是什么版本了,本文选的是14.04,就是因为这个版本已经把这三个包集成在内了,直接用下面的指令就可以装了:
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.下载caffe
caffe的github下载最新版的caffe,解压到$HOME下
3.python依赖库
打开新的终端, 用which python和which pip确定使用的是anaconda提供的python环境,然后进入caffe_root/python, 执行下列命令
for req in $(cat requirements.txt); do pip install $req; done
4.编译caffe
切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:
$ cp Makefile.config.example Makefile.config
配置Makefile.config文件(仅列出修改部分)
a. 启用CUDNN,去掉”#”
USE_CUDNN := 1
b. 启用Intel Parallel Studio XE 2016
BLAS := mkl
c. 配置路径,实现caffe对Python接口的支持
PYTHON_LIB := {$home}/anaconda...(修改为anaconda的路径)
d. 启用OpenCV 3.0, 去掉”#”
OPENCV_VERSION = 3
编译caffe-master!!!”-j16”是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j16
$ make test -j16
$ make runtest -j16
$ make pycaffe -j16