华硕笔记本(GTX 1060显卡)安装Ubuntu16.04+Nvidia显卡驱动+Cuda8.0+cudnn6.0+ROS+Opencv3.2+Caffe+Tensorflow
1.安装Ubuntu16.04
Ubuntu16.04的安装较为简单,我使用的是UltraISO制作U盘启动盘,具体的操作可以看这个链接:
http://jingyan.baidu.com/article/3c48dd348bc005e10be358eb.html
值得注意的是在硬盘分区上,我的硬盘是1T的机械硬盘和128G的固态硬盘。网上有说可以把Ubuntu16.04的一部分放在固态上,可以加快速度。但是我也在固态上装了win10,担心要是重装系统时引导区会有问题,所以我把Ubuntu16.04全部放在了机械硬盘里。我给Ubuntu的总大小为340G左右,分区情况如下:
/ :30G
/boot: 500M
swap:8G(和内存空间相同)
/home: 300G
2.安装Nvidia驱动
这一步网上的说法有很多很多,我尝试了使用系统自带的附加驱动和从NVIDIA官网上下载驱动,但是最终都没有摆脱循环开机界面的结局。
但经过多次尝试和搜索,我终于找到了符合我这样电脑的方法,大神的链接如下:
http://www.cnblogs.com/supersponge/p/6490804.html
这里面大神已经说的非常详细了,我就把真正对我有用的操作部分写一下:
1.从Nvidia官网查找对应的显卡驱动,链接如下:
http://www.nvidia.cn/Download/index.aspx?lang=cn
尽可能找满足自己系统的最新的驱动。
2.后面就按照大神的指令安装就好了,非常简单。
打开一个终端窗口,运行以下命令(添加nvidia官方驱动包源)
$ sudo add-apt-repository ppa:graphics-drivers/ppa$ sudo apt-get update
安装驱动(对应我的gtx1060显卡,最新的驱动是381)
$ sudo apt-get install nvidia-381 nvidia-settings
3.但是在安装过程中会出现多个对话框,要注意正确选择,否则就会造成循环进入开机界面。
【1】它会提示我们是否要Disable security boot,一定要选择“是”,关闭security boot。
【2】后面,它为了防止是病毒关闭了security boot,还会让我们设置一个验证码,设置12345678即可,它在开机的时候会让我们输入对应位数的数字,这样设置最方便。
【3】等驱动安装完毕,重启计算机后还要注意,它会提示我们是(1)boot还是(2)Change boot state,一定要选择(2)改变boot状态,否则还会出现循环登录。
完成以上所有步骤后,Nvidia显卡驱动安装成功!为了确认,你可以打开系统的System settings,查看有没有出现Nvidia的显卡信息,如果有的话,说明就已经成功安装了Nvidia的显卡驱动了。
3.安装Cuda8.0
要学习caffe或者tensorflow,cuda是少不了的。先从Nvidia官网下载适合你电脑的cuda。下载链接: https://developer.nvidia.com/cuda-release-candidate-download。
(pic:https://img-blog.csdn.net/20160824135852933)
下载好后,执行:
sudo sh cuda_8.0.61_linux.run
安装过程中,会问你好几个问题。只要注意问你要不要安装Nvidia显卡驱动时选择no就好了。(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? n)其它的都可以选择yes。
完成后,执行:
sudo gedit ~/.bashrc
在末尾添加:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存后:
source ~/.bashrc
完成后测试是否安装成功:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery
如果在最后一行显示PASS,并出现了Nvidia的显卡信息,则安装成功。
也可以使用
nvidia-smi
检查显卡信息。
4.安装cudnn6.0
最新的Tensorflow只支持cudnn6.0以上版本,所以选择安装cudnn6.0。还是要去Nvidia官网下载cudnn压缩包,链接:https://developer.nvidia.com/rdp/cudnn-download
(pic:https://img-blog.csdn.net/20160824135909011)
解压后,将其中的include和lib64文件夹分别复制到/usr/local/cuda文件夹下:
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
然后建立软链接:
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6 #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so #生成软链接
记得将版本号改为自己的。
5.安装ROS Kinetic
Ubuntu16.04对应的ros版本为Kinetic。这部分按照官网说明安装即可,基本不会出什么问题。链接:http://wiki.ros.org/kinetic/Installation/Ubuntu
6.安装Opencv3.2
多次实践证明Opencv3是需要安装的。然而在Caffe的安装中使用Opencv3比较好,所以我使用了源码安装Opencv3。直接使用官网上的源码安装。链接:http://opencv.org/releases.html 。选择了Opencv3.2的Source,就可以下载安装包了。
然后解压到需要安装的位置,进入解压出的文件夹opencv-3.2.0下,执行:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D
CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
编译成功后安装
sudo make install
最后检查安装是否成功:
pkg-config --modversion opencv
7.安装Caffe
这部分参考http://blog.csdn.net/yhaolpz/article/details/71375762的内容就可以了。
在要安装的地方执行:
git clone https://github.com/BVLC/caffe.git
进入caffe目录,执行:
sudo cp Makefile.config.example Makefile.config
然后打开Makefile.config:
sudo gedit Makefile.config
修改Makefile.config里的一些配置:
1、可以不修改cudnn。使用cudnn可能可以提速30%左右,Caffe里不一定需要用cudnn。
2、修改Opencv版本
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
3、使用Python_layer
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
4、修改 python 路径
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
然后修改 caffe 目录下的 Makefile 文件:
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
然后修改 /usr/local/cuda/include/host_config.h 文件 :
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
最后进行编译:
make all -j8
编译成功后进行测试:
sudo make runtest -j8
成功后会显示PASSED。
8.安装Tensorflow
这部分我的安装非常简单,直接使用了官网上的pip安装方法即可,只有两步。官网安装链接:https://www.tensorflow.org/install/install_linux
我使用的是Python2.7版本,所以执行:
sudo apt-get install python-pip python-dev # for Python 2.7
然后执行:
pip install tensorflow-gpu # Python 2.7; GPU support
即可。
安装完成后验证是否可用:
python
#进入python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果能显示Hello,TensorFlow!,即安装成功。
参考:
[1] https://img-blog.csdn.net/20160824135852933
[2] https://img-blog.csdn.net/20160824135909011
[3] http://blog.csdn.net/yhaolpz/article/details/71375762