Ubuntu16.04 + Caffe + CUDA9.0 + cudnn7.0 的配置详细教程

来源:互联网 发布:域名邮箱登陆 编辑:程序博客网 时间:2024/06/05 07:30

Ubuntu16.04配置Caffe环境(cudn9.0 + cudnn7 GPU版)

主要感谢此人的博客博客


 
配置过很多笔记本电脑,TAITAN XP 也配置过,也碰到过很多坑,但最后大同小异。
参考:




下载相关依赖


sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

安装NVIDIA驱动

NVIDIA下载:官方下载地址,并且找到自己的驱动下载。

  • 安装驱动
    1. 终端输入
sudo gedit /etc/modprobe.d/blacklist.conf  

在最后一行添加如下代码,表示讲自带驱动加入黑名单

blacklist nouveau

在shell输入下列代码,然后重启电脑

sudo update-initramfs -u

重启电脑有时会出现屏幕分辨率问题,其中的解决方案->解决方案

重启电脑后,进入命令行界面 (Ctrl+Alt+F7 表示进入图形化界面)

Ctrl+Alt+F1  #进入命令行界面

然后shell中输入用户名以及密码后输入

sudo service lightdm stop

然后进入下载的驱动所在的文件夹,并且运行X,X为你下载的驱动

sudo sh X

重启,并且输入,会显示信息说明正确安装

nvidia-smi



安装CUDA


首先下载CUDA9.0官方下载地址,下载完成后进入文件下载的地址
然后赋予权限

sudo chmod 777 X # X为你下载的文件名,".run"后缀

在运行以下代码前,一定要先知道当选择选项 Install NVIDIA Accelerated Graphics Driver for nvidia*时候选择取消,其他选项选择yes,或则回车,并且查看协议时候有快捷键CART + D 进行翻页,其中X是你下载的CUDA9的文件名

sudo sh X



配置环境变量

进入环境变量

sudo gedit ~/.bashrc 

添加,下面内容到文件末尾,保存并关闭。

export PATH=/usr/local/cuda-9.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64:$LD_LIBRARY_PATH
  • 测试cuda,最后输出有PASS,即为正确安装。
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuerysudo makesudo ./deviceQuery

安装cudnn

下载地址:官方下载地址
cuda9.0对应cudnn7,下载cudnn7即可

下载完成后直接解压,然后进入其include目录

cd cuda/includesudo cp cudnn.h /usr/local/cuda/include  #复制头文件

进入lib目录,注意 -rf 参数一定不要沈略,并且再进入lib64之前,先看一下其中文件有哪些,并且操作目录一定要找出对应的操作目录,libcudnn.so后面的数字一定要做出相应的更改。下面这一步一定要看懂了逻辑之后操作。

cd cuda/lib64sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.7     sudo ln -s libcudnn.so.7.0.3 libcudnn.so.7  sudo ln -s libcudnn.so.7 libcudnn.so      

然后使用命令,可以看到输出相应的信息

NVCC -V

安装并测试Caffe

首先下载caffe 官方下载地址

-然后将 caffe主目录下的 Makefile.config.example,更名为Makefile.config

cp Makefile.config.example Makefile.config

将其中的

#USE_CUDNN := 1# USE_LEVELDB := 0# USE_LMDB := 0INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/includeLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

分别更改成:

USE_CUDNN := 1USE_LEVELDB := 1USE_LMDB := 0INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial       
  • 更改makefile文件:

将其中的

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

更改成:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
  • 编译caffe并且测试
    使用make命令编辑测试,参数 -j6 代表 cpu 6 个核心并行计算,可根据实际更改,更重要的是得使用sudo 命令。

执行下列代码之前,最好先看看紧接这一步骤后的下一步骤的错误处理的解决方案后再执行此步骤,因为本人裸机配,然后出现了错误并且解决了。换句话说,可以先执行解决错误的方案,也就是下一步骤,然后执行此步骤,相对顺序不重要,

sudo make clean -j8sudo make all -j8 sudo make test -j8sudo make runtest -j8

最后执行了runtest 后输出 PASS 说明测试成功。

不过大多数情况会出现 “libcudnn.so.7 cannot open shared object file: No such file or directory”,则执行下面代码,根据不同版本适当进行修改。此步骤一定要弄懂了对应数字的区别后再进行修改。

sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfigsudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfigsudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfigsudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig




最后完成了配置,然后可以使用caffe自带的例子跑,比如 mnist 。不过只要 runtest 跑通了过后后面的就没问题了,



再多说一下错误处理的


想要调用电脑GPU时,一定要使用sudo命令,如果出现以下ERROR,说明可能和 GPU权限有关,可以试用一下 sudo

4 vs 0

如果出现一下ERROR,那就好办了,说明内存不够,重启一下或者更改 protxt 中的 batch_size 更改为 1 试一下,若跑通了,说明内存太小,然后慢慢增加 batch_size的值,达到电脑的上限停止

2 vs 0
阅读全文
0 0
原创粉丝点击