一、NVIDIA驱动安装
1、关闭security boot
现在的笔记本电脑,特别是使用security boot方式安装Ubuntu。要正确安装驱动,必须关闭security boot(进入bios中关闭,在重启)。
2、下载驱动
在这个网址搜索自己显卡型号对应的驱动程序http://www.geforce.cn/drivers/results/134287
3、屏蔽驱动源
$ sudo gedit /etc/modprobe.d/blacklist.conf
在文末加一条
blacklist nouveau
4、卸载官方驱动nouveau
该驱动是ubuntu官方提供的开源nvidia驱动,这个驱动比较老,不适合我们较新的显卡,所以我们将它卸载了
sudo apt-get --purgeremove xserver-xorg-video-nouveau
5、重启
sudo reboot
6、清除nvidia相关的软件
sudo apt-get --purge remove nvidia-*
7、关闭图像环境
sudo init3
sudo /etc/init.d/lightdm stop
进入DOS界面后按Ctrl+Alt+F1进入tty1,出现命令输入行。
输入用户名和密码登录。
su -s
8、安装
安装这步是很重要的,如果没有配置好安装条件,重启时候会一直在ubuntu登陆界面,一定要注意
进入安装目录
./NVIDIA-Linux-x86_64-375.66.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check
安装驱动时关闭x服务
-no-nouveau-check
安装驱动时禁止用nouveau
-no-opengl-files
只安装驱动文件,不安转opengl文件
安装开始报错
the distribution-provided pre-install script failed!不必理会,继续安装
安装过程中的选项
1、情况1
如果提示是否接受(accept),选accept
如果提示有是否继续,选择continue install
如果提示是否安装新的 kernel modules,选yes;
如果提示32Bit字样,选择yes;
如果提示编译模块,询问是否进行编译,选ok;
如果提示将要修改Xorg.conf,询问是否允许,选Yes;
基本上都是选择accept、continue install、yes、ok。
2、情况2
(当遇到时候询问是否安装openGL的时候,要小心,如果你只是想用nvidia进行计算,用比如intel集成显卡显示的话,就不需要安装,他会覆盖掉你原有的openGL,造成后续一些错误,一般这个可不选)
Accept EULA conditions
Say YES to installing the NVIDIAdriver
SAY YES to installing CUDAToolkit + Driver
Say YES to installing CUDASamples
9、安装完成
sudo/etc/init.d/lightdm start
10、检查驱动安装是否完成
cat/proc/driver/nvidia/version
如果显示显卡驱动版本,说明安装成功。如下图所示。 (注意一定要关闭窗口界面并在控制台进行操作。 )

(此处的图只是示意)
二、cuda8.0安装
注意请在成功安装显卡驱动的前提下继续安装cuda,否则也会安装失败。(cuda9.1已经不支持ubuntu14.04了)
1. 去cuda官网下载cuda 8.0 tool kit(至于具体是哪个版本,大家可以查看下载页上的版本手册),注意务必下在.runfile包,因为只有这个包可以选择不安装cuda自带的驱动。如果你用.deb包,它将会默认给你安装自带的驱动,那么会将你第一步安装的nivida驱动覆盖掉。
2. 重启电脑,然后按Ctrl + Alt + F1进入控制台,将lightdm关闭。
sudo /etc/init.d/lightdm stop
3. .runfile 包安装。进入到该包所在的位置,并执行:
sudo sh cuda.runfle
其中cuda.runfile是你下载的包的名字
4. 之后系统会提示一系列的安装选择,yes or no。其中只有driver选择no,其余的选择yes。
5. 安装完毕后,重启lightdm。即输入:
sudo /etc/init.d/lightdm restart
6. 重启电脑。
sudo reboot
7. 重启后,需要添加环境变量。进入ubuntu图形界面,在命令行输入:
sudo gedit /etc/profile
在文件末尾添加:
export PATH=$PATH: /usr/local/cuda/bin
8. 保存完成后,执行如下命令使环境变量生效:
source /etc/profile
9. 然后还需添加lib的路径。
sudo gedit /etc/ld.so.conf.d/cuda.conf
在文件中写入如下命令并保存:
/usr/local/cuda/lib64
10. 然后执行如下命令使之生效:
sudo ldconfig
【
注意:设置环境变量这操作里 (在/usr/local有两个cuda文件,分别是:cuda和cuda-8.0。其他方法的使用cuda-8.0设置的环境,我用的是cuda,如果想用cuda-8.0,用以下步骤代替以上相关步骤即可)
终端中输入gedit /etc/profile
在打开的文件末尾,添加以下两行,保存文件并退出。
$ export PATH=$PATH:/usr/local/cuda-8.0/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
】
检验境是否设置好,有两种方法
方法一:打开终端,输入cuda,按2次Tab键,如果有弹出的命令提示,说明环境配置成功。如下图所示。

方法二:打开终端,输入 nvcc –version ,若出现如下图片,则说明环境配置成功

安装CUDA SAMPLES(请先看后面)
为什么要安装cuda samples?
一方面是为了后面粗大的学习,另一方面前一步只是检测cuda是否配置成功。若真的想看cuda是否安装成功,则需要成功编译cuda samples。但如果没有通过编译,或者虽然最后一行显示PASS,但是编译过程中有ERROR,请自行GOOGLE解决之后,再向下安装,否则失之毫厘谬以千里!!!
make时,尽量使用make -j,这取决于电脑的配置。比如我电脑时8核的,就写成make -j8。这样一来可以最大限度的使用cpu编译,加快编译速度。
#切换到cuda-samples所在目录。以我的例子来说
cd /home/g214/NVIDIA_CUDA-8.0_Samples
#编译make,若make命令不存在,那么先需要安装(安装命令sudo apt-get install cmake)
make -j8
#编译完毕,切换release目录
cd bin/x86_64/linux/release/
#检验是否成功,运行实例./deviceQuery,若如下图所示,则说明安装成功。
./deviceQuery

三.安装cuDNN v5.1
1. 下载cudnn
https://developer.nvidia.com/cudnn
2. 把压缩文件解压到cudatoolkit的安装目录,默认是/usr/local/cuda
。首先把当前目录切换到/usr/local/cuda
,然后运行如下相关命令:
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
四. caffe依赖项安装(每一项依赖项的安装包请自行下载,安装包版本能从图中看出)
# protobuf-3.3.0
$ cdcaffe-program-linux
$ tarzxvf protobuf-3.3.0.tar.gz
$ cdprotobuf-3.3.0
$./configure
$ make
$ sudo makeinstall
$ sudo gedit~/.bashrc
# path
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
$ source~/.bashrc
# glog
$ cdcaffe-program-linux (这里改成你自己的路径,切换到安装程序所在的文件夹,以下省略)
$ tar zxvfglog-0.3.3.tar.gz
$ cd glog-0.3.3
$ ./configure
$ make (也可以使用make –j 4,使用4个线程加速编译)
$ sudo makeinstall
# gflags
$ cdcaffe-program-linux
$ unzipgflags-master
$ cdgflags-master
$ mkdir build&& cd build
$ exportCXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
$ make&& sudo make install
# lmdb
$ unziplmdb-mdb.master
$ cdlmdb-mdb.master/libraries/liblmdb
$ make&& sudo make install
# hdf5
$tar zxvf hdf5-1.8.19.tar.gz
$ cd hdf5-X.Y.Z
$ ./configure–prefix=/usr/local/hdf5 (这一块与视频中不同,按照这个来)
$ make.
$ sudo makeinstall
$gedit ~/.bashrc
末尾添加:
PATH=$PATH:/usr/local/hdf5/include
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/hdf5/lib
$source ~/.bashrc (使其生效)
# opencv
$ unzip 3.0.0.zip
$ cd opencv3.0.0
$ mkdir release
$ cd release
$ cmake -DCMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
中间会在下载ippicv_linux_20141027.tgz卡主,直接ctrl+c终止安装,将ippicv_linux_20141027.tgz拷贝到opencv/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b/文件中,然后继续输入 cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local .. 继续安装
$ make –j10 (使用多线程加速编译,大约半小时)
运行到90%左右,期间会报错cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ hasnot been declared,需要修改/opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp文件中,将
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER)
改为 #if!defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
然后继续输入命令make –j10进行安装
$ sudo makeinstall
将opencv的库加入到路径,从而让系统可以找到
$ sudo gedit/etc/ld.so.conf.d/opencv.conf
末尾加入/usr/local/lib,保存退出
$ sudo ldconfig#使配置生效
$ sudo gedit~/.bashrc
末尾加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
exportPKG_CONFIG_PATH
保存退出
$ source~/.bashrc #使配置生效
$ sudo updatedb#更新database
# snappy
$ tar zxvf snappy-1.1.1.tar
$ cd snapy-1.1.1
$ ./configure
$ make
$ sudo make install
# leveldb
$ unzip leveldb-master
$ cd leveldb
$ make
$ sudo cp -r include/leveldb/usr/local/include/
$ sudo cp out-shared/libleveldb.so* /usr/local/lib
$ sudo ldconfig
# boost
$ tar zxvf boost_1_58_0.tar
$ cd boost_1_58_0
$ ./bootstrap.sh
$ ./b2
$ sudo ./b2 install
# atlas
$ sudo apt-get install libatlas-base-dev
# git
$ sudo apt-get install git
五. caffe依赖项安装(每一项依赖项的安装包请自行下载,安装包版本能从图中看出)
# 下载caffe
$ sudo git clone https://github.com/BVLC/caffe.git
$ cp Makefile.config.example Makefile.config
取消# OPENCV_VERSION := 3 前的注释,95和96行分别改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/hdf5/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/usr/local/hdf5/lib
然后开始编译caffe
$ make all –j10 (如果报错,就先用makeall,只要proto编译完成后,就可以ctrl+c终止,然后用makeall –j10多线程编译)
成功后,训练minist
$./data/mnist/get_mnist.sh
$ ./examples/mnist/create_mnist.sh
$ ./examples/mnist/train_lenet.sh