Ubuntu 16.04下CUDA8.0 Theano Caffe TensorFlow环境搭建

目前自己撘过深度学习各种库、各种环境,已经搭建了n多台电脑,发现每台电脑配置安装方法各不相同,总会出现各不相同的错误,真是心塞。笔记本和台式机有差别,台式机之间的安装方法又各不相同,不同的系统版本环境、平台又各有差异。比如昨天搞的一台电脑,可能因为显卡比较新,然而Ubuntu 14.04、Ubuntu 15.04都比较旧,连安装系统都装不上,一开始在14.04上重装了n多次系统,还以为是自己电脑的问题。最后在Ubuntu 16.04竟然非常顺利完成了安装;然而16.04的版本,只有cuda8.0才支持,在这台破电脑上,又折腾了我快一天的时间。

Ubuntu 16.04 CUDA8.0 cuDNN7.5 Caffe安装过程,需要实现下载文件:

显卡:GTX960

1 U 盘安装 ubuntu 16.04(ultra iso )

环境:Ubuntu16.04、cuda8.0

2 系统进入之后,进入setting -> 软件和更新 附加驱动 安装nvidia驱动

下面是我的安装之路,总的来说theano、keras、tensorflow都比较容易安装;最难安装的是caffe,因为caffe调用的第三方库比较杂、比较多。

3 修改gcc4.9 ( 非必须, 下一步 加override 就行 )

一、安装cuda8.0

sudo apt-get install g -4.9 

1、输入命令:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 

 sudo vim /etc/modprobe.d/blacklist.conf在文件最后面,添加:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 

blacklist nouveau
sudo reboot
sudo apt-get remove --purge nvidia*
重启,然后进入终端:

sudo update-alternatives --install /usr/bin/g  g  /usr/bin/g -4.9 20 

sudo service lightdm stop
chmod x cuda*.run
sudo ./cuda*.run2、安装cuda的过程中,一直跳出错误:

sudo update-alternatives --install /usr/bin/g  g  /usr/bin/g -5 10 

If you're sure that X is not running, but are getting this error, please delete any X lock files in /tmp.
那么我们可以直接删除X-lock文件,具体命令为:
sudo rm /tmp/.X0-lock3、ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 

sudo apt-get install g -4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g g /usr/bin/g -4.9 20
sudo update-alternatives --install /usr/bin/g g /usr/bin/g -5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c c /usr/bin/g 30
sudo update-alternatives --set c /usr/bin/g 等待安装完成

sudo update-alternatives --set cc /usr/bin/gcc 

4、配置环境变量:

sudo update-alternatives --install /usr/bin/c  c  /usr/bin/g  30 

sudo vim /etc/profile在文件末尾添加:

sudo update-alternatives --set c  /usr/bin/g

PATH=/usr/local/cuda/bin:$PATH
export PATH
保存退出。输入命令:

4 安装cuda  ./NVIDIA-Linux-XX-XX .run  (加 --override!!!) 不要安装驱动 (驱动处输入n)!!!!!!!!!!

source /etc/profile
使其生效。

5 reboot

输入命令:

6 nvidia-settings 选择Nvidia

sudo /etc/ld.so.conf.d/cuda.conf

7 reboot

添加内容:

8 sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

/usr/local/cuda/lib645、验证测试

9  sudo gedit ~/.bashrc

测试cuda是否安装成功:

export PATH=/usr/local/cuda-7.5/bin${PATH: :${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}

cd /usr/local/cuda/samples
编译例子:

10 test  :

sudo make all -j8运行编译可执行结果文件:

nvidia-smi

./deviceQuery

结果如下所示:

二、安装theano

太阳集团所有网址16877 1

1、直接输入命令:

11
cd /usr/local/cuda/samples 
sudo make all -j8 

sudo pip install theano
2、配置参数文件:.theanorc

。。。。。。

[global]
floatX=float32
device=gpu
base_compiledir=~/external/.theano/
allow_gc=False
warn_float64=warn
[mode]=FAST_RUN

试几个CUDA例子:

[nvcc]
fastmath=True

cd  /usr/local/cuda/samples/1_Utilities/deviceQuery

[cuda]
root=/usr/local/cuda
3、运行测试例子:

./deviceQuery 

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

12 安装 cudnn

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

sudo tar -zxvf cudnn-7.5-linux-x64-v5.0-ga.tgz

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')
可以看到结果:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

/usr/bin/python2.7 /home/hjimce/PycharmProjects/untitled/.idea/temp.py
Using gpu device 0: GeForce GTX 960 (CNMeM is disabled, cuDNN not available)
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.302778 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296]
Used the gpu

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

三、caffe环境搭建

sudo chmod a r /usr/local/cuda/include/cudnn.h

1、切换编译器:

sudo chmod a r /usr/local/cuda/lib64/libcudnn*

sudo update-alternatives --config g 选择g 5.0以上的对应编号
sudo update-alternatives --config gcc根据编号选择gcc编译器5.0以上的版本。

13 安装OpenCV

2、hd5相关问题:遇到hd5等相关找不到的文件错误。

Github上有人已经写好了完整的安装脚本:

输入命令:

下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
3、caffe编译

chmod  x *.sh

从github上下载caffe,解压打开makefile.config对其进行修改,makefile.config修改内容内容如下:

然后安装最新版本 (当前为2.4.9)

sudo ./opencv2_4_9.sh

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib改为:

脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概半小时左右。 

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/serial4、cuda8.0编译器问题

注意,中途可能会报错

打开/usr/local/cuda/include/host_config.h

opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization

注释掉:

///////////////////////////////////////

error -- unsupported GNU version! gcc versions later than 5.3 are not supported太阳集团所有网址16877,!
结果如下:

自己撰写::

#if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
//#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
#endif /* __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 1) */
5、遇到prototuf等编译问题:

cd OpenCV
# unzip OpenCV-2.4.9.zip
cd opencv-2.4.9
 mkdir build
cd build

本文由太阳集团所有网址16877发布于www.16877.com,转载请注明出处:Ubuntu 16.04下CUDA8.0 Theano Caffe TensorFlow环境搭建

您可能还会对下面的文章感兴趣: