Ubuntu18 + NVDIA 1070ti + CUDA9.0 + CUDNN7.0 + OpenCV3.4 + caffe + python3环境 (GPU配置)

教程说明:

以下步骤是自己安装时采用的,但是在安装期间有一些细节没有完全列出来,因为每个系统的差异和问题的特色性,无法一一列出,因此如若遇到本文中未出现的问题,建议先查阅一下网上现存的方案,若还是无法解决,欢迎留言,如若本人可以解决,则会回复您!

感谢以下博客内容(主要参考资料,十分有价值):

https://blog.csdn.net/yggaoeecs/article/details/79163789

https://blog.csdn.net/weixin_37251044/article/details/82222098

https://blog.csdn.net/lingyunxianhe/article/details/85012003

https://blog.csdn.net/yhaolpz/article/details/71375762

https://blog.csdn.net/CAU_Ayao/article/details/83536320

https://blog.csdn.net/uniqueyyc/article/details/83338889

 

1. 电脑配置及软件下载

1.1 系统配置

Ubuntu 18.04.2英文系统

OS type64-bit

GPU GeForce GTX 1070 Ti(命令行lspci | grep -i nvidia查看)

1.2 NVDIA显卡驱动下载

下载链接:https://www.nvidia.com/Download/index.aspx?lang=en-us

1.3 CUDA9.0下载

说明:CUDANVIDIA的编程语言平台,想使用GPU就必须要使用cuda

链接:https://developer.nvidia.com/cuda-90-download-archive

1.4 CUDNN7.0.5下载

说明:cuDNNGPU加速计算深层神经网络的库

链接:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse705-9

点击以下选项

选择以下三个都要下载

1.5 OpenCV3.4.5下载

链接:https://opencv.org/releases.html

点击以下的Sources下载

1.6 所有准备材料都放在caffe-gpu新建文件夹中

HOME目录下新建一个caffe-gpu文件夹,将以上所有材料存放到此文件夹中,方便取用

文件清单:

 

2. 安装NVDIA GPU驱动

2.1 屏蔽自带显卡驱动

# 终端输入
sudo gedit /etc/modprobe.d/blacklist.conf

在打开文件的最后一行加上:blacklist nouveau

这里是将Ubuntu自带的显卡驱动加入黑名单

# 终端输入
sudo update-initramfs -u

使修改生效

2.2 安装新驱动

重启系统,Ctrl+Alt+F2进入命令行界面(安装GPU驱动要求在命令行环境,提示:按Ctrl+Alt+F7可回到图形界面)

在命令行界面输入用户名和密码,进入用户目录

# 命令行输入
sudo service lightdm stop

可能出现错误:unit lightdm.service not loaded

方法:输入sudo apt install lightdm,会弹出一个界面,选择lightdm,再回到上一步

# 命令行输入
cd caffe-gpu #进入下载文件所在目录
sudo chmod +x ./NVIDIA* #增加操作权限
sudo ./NVIDIA* #进入安装程序
roboot #重启系统

电脑重启后,

# 命令行输入
sudo nvidia-smi #验证新驱动的安装

 

3. 安装CUDA9.0

Ctrl+Alt+F2进入命令行界面

# 命令行输入
cd caffe-gpu #进入下载文件所在目录
sudo chmod 777 cuda* #权限改为可读可写可执行
sudo ./cuda* --override #开始安装

命令行界面上出现关于CUDA的说明,按Ctrl+c直接跳过内容,输入accept,接下来都是yes通过,注意:一定要选择否(出现Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.**)

可能出现错误:出现多行的Missing recommended library

方法:命令行输入:sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev ,安装相关的依赖库,完成后回到上一步

可能出现错误:cannot find Toolkit in ..

方法:命令行输入:sudo apt-get install nvidia-cuda-toolkit,完成后回到上一步

安装完成后,重启系统进入图形界面

# 终端输入
sudo gedit ~/.bashrc #配置CUDA环境变量

在打开文件的最后加入以下两行代码:(注意其中cuda,根本自己cuda版本修改)

export PATH=/usr/local/cuda-9.0/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

# 终端输入
source ~/.bashrc #更新修改

测试CUDA9.0是否安装成功,

# 终端输入
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

可能出现错误:CUDA 9.0 unsupported gcc versions later than 6

方法:在终端中分别输入以下代码

sudo apt-get install gcc-6

 sudo apt-get install g++-6

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10

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

成功安装提示:

 

4. 安装CUDNN

# 终端输入
sudo caffe-gpu #进入下载文件存放目录中
sudo dpkg -i libcudnn7_* #安装运行库
sudo dpkg -i libcudnn7-dev* #安装开发库
sudo dpkg -i libcudnn7-doc* #安装文档库

测试安装情况:

# 终端输入
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

输出Test passed!则成功安装

可能出现错误:/mnistCUDNN: error while loading shared libraries: libcudart..

方法:在终端中依次输入以下代码

sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig

sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig

sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig

 

5 安装OpenCV3.4

# 终端输入
cd caffe-gpu #回到下载文件存放目录中
unzip opencv* #解压下载文件
sudo cp ./opencv* /home/username #其中username改为你的用户名
sudo mv opencv* opencv
cd ~/opencv
mkdir build #创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j6 #-j6表示并行计算,根据自己电脑的配置进行设置
sudo make install #安装OpenCV

验证安装情况:

# 终端输入
pkg-config --modversion opencv

当出现版本号时,则安装成功

 

6. 安装caffe(GPU)

6.1 安装预编译的caffe-cuda

# 终端输入
sudo apt-get install caffe-cuda

6.2 安装caffe依赖库

# 终端输入
sudo apt-get install --no-install-recommends libboost-all-dev #boost 
sudo apt-get install libgflags-dev #gflags  
sudo apt-get install libgoogle-glog-dev #glog     
sudo apt-get install libleveldb-dev #LevelDB  
sudo apt-get install liblmdb-dev #LMDB     
sudo apt-get install libprotobuf-dev #ProtoBuf 
sudo apt-get install protobuf-c-compiler protobuf-compiler #ProtoBuf compiler
sudo apt-get install libhdf5-serial-dev #HDF5     
sudo apt-get install libsnappy-dev #snappy   
sudo apt-get install libopenblas-dev #OpenBlas 

6.3 安装caffe

# 终端输入
git clone https://github.com/BVLC/caffe.git

6.4 配置caffe

# 终端输入
cd caffe
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config #打开并编辑Makefile.config

修改Makefile.config文件里面的相关内容:

将
#USE_CUDNN := 1 
改为
USE_CUDNN := 1
将
#OPENCV_VERSION := 3
改为
OPENCV_VERSION := 3
将
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
 		-gencode arch=compute_20,code=sm_21 \
 		-gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode arch=compute_50,code=sm_50 \
		-gencode arch=compute_52,code=sm_52 \
		-gencode arch=compute_60,code=sm_60 \
		-gencode arch=compute_61,code=sm_61 \
		-gencode arch=compute_61,code=compute_61
改为
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode arch=compute_50,code=sm_50 \
		-gencode arch=compute_52,code=sm_52 \
		-gencode arch=compute_60,code=sm_60 \
		-gencode arch=compute_61,code=sm_61 \
		-gencode arch=compute_61,code=compute_61
将
#BLAS := atlas
改为
BLAS := open
文件中的python3环境设置为(因人而异):
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_INCLUDE := /usr/include/python3.6m \
                /usr/lib/python3/dist-packages/numpy/core/include
将
#PYTHON_LIB := /usr/lib
改为
PYTHON_LIB := /usr/lib
将
#WITH_PYTHON_LAYER := 1
改为
WITH_PYTHON_LAYER := 1
将
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

保存好退出

# 终端输入
sudo gedit Makefile

修改Makefile文件的相关内容:

将
PYTHON_LIBRARIES ?= boost_python python2.7
改为
PYTHON_LIBRARIES ?= boost_python3 python3.6m
将
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

保存好退出

编译环境,

# 终端输入
sudo make clean
sudo make all 
sudo make test
sudo make runtest

可能出现错误:“boost/shared_ptr.hpp”: No such file or directory

方法:sudo apt-get install --no-install-recommends libboost-all-dev

安装成功的结果:

6.5 CMake搭建

# 终端输入
mkdir build
cd build
cmake ..
make all
make install
make runtest

运行成功结果:

 

7. python3环境中运行caffe

# 终端输入
python3
import caffe

可能出现错误:ImportError: cannot import name '_validate_lengths'

方法:(以下路径每个人有点差异,请根据错误提示中的路径提醒找)

sudo gedit /home/brian/.local/lib/python3.6/site-packages/numpy/lib/arraypad.py

在文件中添加以下两个函数:

函数链接:https://blog.csdn.net/Brianone/article/details/89068005

8、最终测试-案例运行

代码链接:https://blog.csdn.net/Brianone/article/details/89067220

成功运行结果:

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值