从零开始配置深度学习环境:ubuntu16.04 cuda opencv caffe 需要的库

有一台空闲的服务器,上面有一块K40的卡,原来的系统进不去了可以拿来搞一搞。。


nvidia驱动

这一步好像可以跳过,因为之后安装cuda能选择是否安装驱动。
上官网NVIDIA Driver Downloads找自己显卡的型号,看看适合的驱动编号是什么。
driver
之后输入命令:

1
2
3
4
5
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

之后重启系统让显卡驱动生效。
但是,Ubuntu自带的驱动更新也可以完成这样的操作而且不用输命令!
点左边栏的设置,下面找到“Software & Updates”,在点上面的“Additional Drivers”,会发现会有一个显卡的驱动,恰好和要找的版本相同~选中之后确认更新即可。
driver_ubuntu
其实这也是碰巧,这里面只识别出了Quadro K600,和K40的驱动型号相同,但如果是其他的卡,也需要自己确认一下。


CUDA

还是先进网页下载CUDA
我选的配置如下:
download cuda
之后按照要求,运行:

1
sudo sh cuda_8.0.61_375.26_linux.run

之后会有三个提示:

  1. 是否安装驱动(装过的不要装)
  2. 是否安装CUDA(yes)
  3. 是否安装sample(看自己)

结束之后会有摘要:

1
2
3
4
5
6
7
8
9
10
11
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Not Selected
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

接下来是添加到环境变量。
首先打开文件:

1
sudo vim /etc/profile

在最下面添加两行:

1
2
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

至此安装结束~


cudnn

1.下载cuDNN压缩包;
2.对下载文件进行解压:

1
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz

3.解压后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。我们需要做的就是将这两个字母里面的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/,这个目录下也会包含include/以及lib64/这两个文件夹,将之前目录的文件复制过来即可。

1
2
sudo cp -p cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -p cuda/lib64/* /usr/local/cuda/lib64/


远程桌面

How to Remote Access to Ubuntu 16.04 from Windows

在windows通过VNC进行远程桌面连接。
首先在服务器上打开桌面分享:
desk
如图所示勾选,即可通过vnc访问。

如果有连接错误,可以尝试以下方式解决:
运行dconf-editor(没有的话先安装sudo apt install dconf-editor)。
导航至:org -> gnome -> desktop -> remote-access,反选“require-encryption”即可。


opencv

下载源码,解压。
可以先在目录下建立release文件夹作为输出目录。
我的编译参数为:

1
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D WIHT_CUDA=ON -D WITH_OPENGL=ON ..

之后

1
2
make -j
sudo make install


Protocol Buffers v3 安装

caffe需要这个东西。。
github上下载源码。
解压之后进入目录,在Ubuntu上先需要确保前置程序的安装:

1
sudo apt-get install autoconf automake libtool curl make g++ unzip

安装之后,再运行脚本:

1
./autogen.sh

这样才会生成configure文件。之后

1
2
3
4
5
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.


MKL 安装

去官网下载,会让你留一个邮箱。Intel® Math Kernel Library (Intel® MKL)Build date: 16 Feb 2017
下载之后解压,运行

1
sudo ./install.sh

按着提示继续走,默认安装就行。
结束后添加环境目录:

1
vim /etc/profile

在末尾处加入代码:

1
2
export PATH=":/opt/intel/bin:$PATH"
export LD_LIBRARY_PATH=$LD_LIBRARY_LIB:/opt/intel/lib/intel64:/opt/intel/mkl/lib/intel64

退出,使设置生效。

1
source /etc/profile

boost库

下载boost库,本文使用的是1.58版本。
解压:

1
tar --bzip2 -xvf boost_1_58_0.tar.bz2

进入解压后的文件夹,运行:

1
./bootstrap.sh

如果失败尝试使用sudo sh ./bootstrap.sh
之后会在当前目录下生成bjam文件,继续编译。。。

1
./bjam

编译时间比较长
将生成的库默认安装到 /urs/local/lib 目录

1
./bjam install

其实整个过程中没有什么出错的地方,不过不知道怎么回事电脑运行很慢,为这还重装一回。
而且有开机不显示自检的情况。师兄帮忙插拔了内存好像解决了,原理不是很懂。。