主要参考这片文章ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历
一、首先安装nvidia显卡驱动
安装nvidia驱动,终端输入
$ sudo add-apt-repository ppa:graphics-drivers/ppa
回车后继续
$ sudo apt-get update
$ sudo apt-get install nvidia-367
$ sudo apt-get install mesa-common-dev
$ sudo apt-get install freeglut3-dev
之后重启系统让GTX1060显卡驱动生效
测试
终端输入
$ nvidia-smi
一、cuda安装
下载cuda_8.0.27_linux.run,我在别人给的百度网盘提前下载好,链接:https://pan.baidu.com/s/1i515khB#list/path=%2F
拷到ubuntu的下载目录下
安装cuda8.0
终端输入
$ cd 下载/
$ sh cuda_8.0.27_linux.run --override
启动安装程序,一直按空格到最后,输入accept接受条款
让你选择是否安装nvidia361驱动时,一定要选择否:输入n,因为之前已经安装过了
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
输入n不安装nvidia图像驱动,之前已经安装过了
输入y安装cuda 8.0工具
回车确认cuda默认安装路径:/usr/local/cuda-8.0
输入y用sudo权限运行安装,输入密码
输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
输入y安装CUDA 8.0 Samples,以便后面测试
回车确认CUDA 8.0 Samples默认安装路径:/home/yangxing(yangxing是我的用户名),该安装路径测试完可以删除
安装完显示如下图
此处我没安装cudnn5.1,有了它加速更快,没有也行。
设置环境变量,终端输入
$ sudo gedit /etc/profile
在末尾加入
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后,创建链接文件
$ udo vim /etc/ld.so.conf.d/cuda.conf
按a进入插入模式,增加下面一行
/usr/local/cuda/lib64
按esc退出插入模式,按:wq保存退出
最后在终端输入
$ sudo ldconfig使链接生效,
#执行sudo ldconfig时,报错如下:
出现的问题
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
原因:
系统找的是一个符号连接,而不是一个文件。
解决方法:
$ sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
$ sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
再次在终端输入
$ sudo ldconfig#使链接生效
cuda Samples测试
00001.
打开CUDA 8.0 Samples默认安装路径,终端输入
$ cd /home/yangxing/NVIDIA_CUDA-8.0_Samples(yangxing是我的用户名)
$ sudo make all -j4(4核)
出现“unsupported GNU version! gcc versions later than 5.3 are not supported!”的错误,这是由于GCC版本过高,在终端输入
$ cd /usr/local/cuda-8.0/include
$ sudo cp host_config.h host_config.h.bak
$ sudo gedit host_config.h
ctrl+f寻找有“5.3”的地方,只有一处,如下
# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
将两个5改成6,即
#if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)
保存退出,继续在终端输入
$ cd /home/yangxing/NVIDIA_CUDA-8.0_Samples(yangxing是我的用户名)
$sudo make all -j4(4核)
完成后继续向终端输入
$ cd bin/x86_64/linux/release
$./deviceQuery
完成之后出现如下图所示,表示成功安装cuda
之后的安装参考caffe,一些依赖库
编译caffe(暂不对matlab说明,配置文件参考之前的)
00001.
终端输入
cd /home/yangxing/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
②INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格 然后添加/usr/include/hdf5/serial如果没有这一句可能会报一个找不到hdf5.h的错误
终端输入
make all -j16
make过程中出现找不到lhdf5_hl和lhdf5的错误
$ cd /usr/lib/x86_64-linux-gnu
$ sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
$ sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
然后继续输入
$ sudo ldconfig使链接生效
在原终端/workspace/caffe-master中,清除,再编译
$ make clean
$ make all -j16
$ make test -j16
$ make runtest -j16
$ make pycaffe -j16
$ cd /home/yangxing/workspace/caffe-master/python
$ python
>>>import caffe #不出错,表明编译成功
Mnist测试
00001.
下载mnist数据集,终端输入
$ cd /home/yangxing/caffe-master/data/mnist/
$ ./get_mnist.sh获取mnist数据集
在/home/yangxing/caffe/data/mnist/目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件
00002.
00003.
mnist数据格式转换,终端输入
$ cd /home/yangxing/caffe/
$ ./examples/mnist/create_mnist.sh
必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh
此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集
00004.
00005.
LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt
00006.
00007.
Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt
00008.
00009.
训练mnist,执行文件在/caffe/examples/mnist/train_lenet.sh
终端输入
$ cd /home/yangxing/caffe/
$ ./examples/mnist/train_lenet.sh
测试结果如下