为了caffe(二)在ubuntu14.0464位(双显卡)下安装caffe+cuda7.5+opencv3.0+cudnn5.1

时间:2021-03-02 06:30:40

为了caffe(二)在ubuntu14.0464位(双显卡)下安装caffe+cuda7.5+opencv3.0+cudnn5.1

配置  联想笔记本G480 双显卡(intel集成显卡和N卡独立显卡GeForce610M

ubuntu14.0464位 cuda7.5   cudnn5.1   opencv3.0  +caffe



现在是20168月这个方法早晚失效        我因为看别人教程   安装过程中各个版本问题兼职要吐了  记录一下 


目录:

双显卡注意

步骤 0 验证是否满足安装条件

步骤1安装依赖库

步骤2下载cuda7.5
 
步骤3安装cuda
步骤4  安装例程
步骤5安装opencv3.0
 
 
步骤6 安装cudnn5.1
步骤7安装caffe   




双显卡注意 我的G480笔记本有intel集成显卡和N卡独立显卡,

负责GUI界面的是集成显卡,他在安装cuda的过程中被+屏蔽了 

导致之后的重启会黑屏 后面会解决这个问题 ,(没用网上提到的那个nouveas方法,太复杂了!!!,)

注意:网上有提到一定要禁用这个nouveas才行,涉及到linux显卡驱动啥的????可我还是没用

(安好cuda后我重启了一下,无法进入图形界面,我都听见那个登录界面的声音了,可就是黑屏,只能Ctrl+atl+F1进入tty界面,,造成这个问题的原因是  ( 我的G480笔记本有intel集成显卡和N卡独立显卡,负责GUI界面的集成显卡,他在安装cuda的过程中被+屏蔽了  )

解决办法是:来自知乎大神  https://www.zhihu.com/question/35249192/answer/61880911 安装gdm



如果你很不幸的进不了Ubuntu GUI界面,就按ctrl+shift+F1进入命令行界面,然后输入以下命令先停掉lightdm,然后安装gdm(把gdm设置为默认开启模式)再重启一下电脑就进了。  

  1.   

  2. sudo stop lightdm  

  3. sudo apt-get install gdm  

  4.   

  5. 作者:快乐的猫  

  6. 链接:https://www.zhihu.com/question/35249192/answer/108564240  

  7. 来源:知乎  

  8. 著作权归作者所有,转载请联系作者获得授权。  







其他解决办法:

我还在网上找到了很多其他的解决办法  例如1run安装而不用deb安装,其间要选择不安装opengl(同样出自上面那个知乎网址)

2 prime切换 3按的时候禁用nouveas 可是这就还要让我再重装一遍啊(重装系统吧,因为进不去GUI了)我都装到现在了,






另外:强烈推荐按照 步骤来 按顺序 特别是caffe一定要最后弄 (原因:caffemakefile关系到前面的东西)


步骤0验证是否满足安装条件



验证你的gpu支持是否支持Cuda
打开支持Cuda运算的Gpu列表,只要你的GPU在里面找得到就没问题

$
lspci | grep -i nvidia
01:00.0
VGA compatible controller: NVIDIA Corporation GF119M [GeForce 610M]
(rev a1)
我查到了GeForce 610M 它的Compute	Capability
2.1 ,不到3,所以不能用cudnn,这个后面会讲到,也会安装cudnn(虽然不能用)
 
 
 
  • 确认你的系统是X86架构,可通过下面的命令查询 必须是x86_64


$ uname -m &&cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubu
 
 
 
  • 安装gccUbuntu 14.04已经自带gcc4.8.4,无需自行下载,检查gcc版本可通过如下方法:


$ gcc --version

注意:网上有人推荐升级到gcc4.9    我觉得不对我看官网文档里推荐的就是gcc4.8版本的  不推荐升级



步骤1

安装依赖库

安装一些基本依赖项:

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



我是先卸载已有N卡驱动, (就算觉得这是新电脑没装过驱动可以不用做这个,也推荐做一下这, 以防万一啊)

sudo
apt-get remove --purge nvidia*
注意:这里卸载了就不需要 再手动安装了 后面的安装cuda会安装驱动,网上有说手动安装的,我不推荐。
 
步骤2下载cuda7.5
地址
https://developer.nvidia.com/cuda-toolkit
现在的版本是7.5版, 进入下载页面,选择linux --x86_64 --ubuntu--》》14.04--deblocal
 
注意:我选择的是deblocal), 我觉得debnetwork)联网安装 实在是不放心, run版本涉及到手动选择配置一些东西,我用不着,。
 

验证Cuda安装包

$
md5sum filename
推荐一定要验证一下
谨慎 以防万一

如果下载没出错,那得到的MD5序列号和那个页面中是一致的,否则只能重新下载。





步骤3安装cuda

cdcuda安装包所在的目录,执行以下命令

$
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
$
sudo apt-get update
$
sudo apt-get install cuda
  • 添加环境变量

$
sudo gedit /etc/profile
#
在末尾添加(注意自己的Cuda版本):
#
export PATH=/usr/local/cuda-7.5/bin:$PATH
#
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
$
source /etc/profile
$
sudo reboot


查看GPU驱动版本、Cuda版本:正常安装的话,会出现版本信息,如果没出现说明安装出错,

$
cat /proc/driver/nvidia/version
dong@dong-Lenovo-G480:~$
cat /proc/driver/nvidia/version
NVRM
version: NVIDIA UNIX x86_64 Kernel Module 352.63 Sat Nov 7
21:25:42 PST 2015
GCC
version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
 
 
$
nvcc -V
dong@dong-Lenovo-G480:~$
nvcc -V
nvcc:
NVIDIA (R) Cuda compiler driver
Copyright
(c) 2005-2015 NVIDIA Corporation
Built
on Tue_Aug_11_14:27:32_CDT_2015
Cuda
compilation tools, release 7.5, V7.5.17
 
 
 
步骤4 安装例程
cuda-install-samples-7.5.sh
~/cuda

编译
cdNVIDIA_CUDA-7.5_Samplesmake:

$ cd
~/cuda/NVIDIA_CUDA-7.5_Samples
$
make
# 编译结果在~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
 
 

执行编译结果,确认安装配置

$ cd
$
./~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release/deviceQuery
 
 
dong@dong-Lenovo-G480:~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release$
./deviceQuery
./deviceQuery
Starting...


CUDADevice Query (Runtime API) version (CUDART static linking)

Detected
1 CUDA Capable device(s)

Device
0: "GeForce 610M"
 
CUDADriver Version / Runtime Version 7.5 / 7.5
 
CUDACapability Major/Minor version number: 2.1
 
Totalamount of global memory: 1024 MBytes (1073479680bytes)
 (1) Multiprocessors, ( 48) CUDA Cores/MP: 48 CUDA Cores
 
GPUMax Clock rate: 950 MHz (0.95 GHz)
 
MemoryClock rate: 900 Mhz
 
MemoryBus Width: 64-bit
 L2Cache Size: 65536 bytes
 
MaximumTexture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65535),3D=(2048, 2048, 2048)
 
MaximumLayered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
 
MaximumLayered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048layers
 
Totalamount of constant memory: 65536 bytes
 
Totalamount of shared memory per block: 49152 bytes
 
Totalnumber of registers available per block: 32768
 
Warpsize: 32
 
Maximumnumber of threads per multiprocessor: 1536
 
Maximumnumber of threads per block: 1024
 
Maxdimension size of a thread block (x,y,z): (1024, 1024, 64)
 
Maxdimension size of a grid size (x,y,z): (65535, 65535, 65535)
 
Maximummemory pitch: 2147483647 bytes
 
Texturealignment: 512 bytes
 
Concurrentcopy and kernel execution: Yes with 1 copy engine(s)
 
Runtime limit on kernels: No
 
IntegratedGPU sharing Host Memory: No
 
Supporthost page-locked memory mapping: Yes
 
Alignmentrequirement for Surfaces: Yes
 
Devicehas ECC support: Disabled
 
Devicesupports Unified Addressing (UVA): Yes
 
DevicePCI Domain ID / Bus ID / location ID: 0 / 1 / 0
 
ComputeMode:
 
<Default (multiple host threads can use ::cudaSetDevice() with devicesimultaneously) >

deviceQuery,
CUDA Driver = CUDART, CUDA Driver Version = 7.5, CUDA Runtime Version
= 7.5, NumDevs = 1, Device0 = GeForce 610M
Result
= PASS
 

bandwidthTest确认


$./~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release/bandwidthTest
 
dong@dong-Lenovo-G480:~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release$
./bandwidthTest
[CUDA
Bandwidth Test] - Starting...
Running
on...


Device 0: GeForce 610M

Quick Mode


Host to Device Bandwidth, 1
Device(s)

PINNED Memory Transfers

Transfer Size
(Bytes) Bandwidth(MB/s)

33554432 6446.0


Device to Host Bandwidth, 1
Device(s)

PINNED Memory Transfers

Transfer Size
(Bytes) Bandwidth(MB/s)

33554432 6428.6


Device to Device Bandwidth, 1
Device(s)

PINNED Memory Transfers

Transfer Size
(Bytes) Bandwidth(MB/s)

33554432 12653.3

Result
= PASS

NOTE:
The CUDA Samples are not meant for performance measurements. Results
may vary when GPU Boost is enabled.
 
步骤5安装opencv3.0

先用了网上某个大神的方法 试着安装2.4版本oepncv, 听说是非常简单   但是

我在sudo ./opencv2_4_10.sh时,命令行出现很多绿色字体,GUI界面卡死  

 失败了!


那换方法,我又手动装了oepncv3.0    http://blog.csdn.net/u013915633/article/details/49886465

 
 
步骤6 安装cudnn5.1
cuDNNGPU加速计算深层神经网络的库
注意:这个因为CUDNN要求GPUCUDA Capability 不小于3.0 (来自大神http://blog.csdn.net/eagelangel/article/details/50562065),我的只有2.1,所以实际不能用cudnn
,我怎么知道不行的,我后面才知道的,
现在还是先安了再说,仅仅是记录了
 
下载cudnn  https://developer.nvidia.com/cudnn(网上好多人说,注册以后还要一两天才能下载,,我不是,我注册完了直接就能下载了)
我下载了
cudnn-7.5-linux-x64-v5.1.tgz
 

安装在终端中切换到文件所在文件夹,输入下面指令:

$
sudo tar xvf cudnn-7.0-linux-x64-v4.0-prod.tgz
$ cd
cuda/include
$
sudo cp *.h /usr/local/include/
$ cd
../lib64
$
sudo cp lib* /usr/local/lib/
$ cd
/usr/local/lib
$
sudo chmod +r libcudnn.so.4.0.4
$
sudo ln -sf libcudnn.so.4.0.4 libcudnn.so.4
$
sudo ln -sf libcudnn.so.4 libcudnn.so
$
sudo ldconfig

注意(我安装的是libcudnn.so.4.0.7,跟上面的例子对应就好,,,,上面的版本号要自己对应)





 
 
步骤7安装caffe   请确保cudnnoepncv3.0都安装完成了再进行这一步

Caffe下载
直接从github下载最新版本,下载前切换到home目录

$ cd
~
$
git clone git://github.com/BVLC/caffe.git
  • 编译Caffe

$ cd
~/caffe
$ cp
Makefile.config.example Makefile.config
 
# 修改Makefile.config文件:
 
# 如果安装了Opencv3.0,去掉
OPENCV_VERSION := 3的注释
 
# 如果安装了cudnn,去掉
USE_CUDNN := 1 的注释
 
注意:这里还可能
BLAS有关,先标注下
 
 
保存后重新编译:

注意:::caffe需要一个BLAS。。。BLAS有3钟种选择,1 ATLAS 2 MKL 3 openBLAS 

 
$
sudo make clean
(第一次编译不用这个,之后重新编译时候用)
$
sudo make all
$
sudo make test
$
sudo make runtest

本人编译的时候最后一步的时候,出现这样的错误:

libcudart.so.7.5
cannot open shared object file: No such file or directory
1



解决方法是这样,将一些文件复制到/usr/local/lib文件夹下:

$
sudo cp /usr/local/cuda-7.5/lib64/libcudart.so.7.5
/usr/local/lib/libcudart.so.7.5 && sudo ldconfig
$
sudo cp /usr/local/cuda-7.5/lib64/libcublas.so.7.5
/usr/local/lib/libcublas.so.7.5 && sudo ldconfig
$
sudo cp /usr/local/cuda-7.5/lib64/libcurand.so.7.5
/usr/local/lib/libcurand.so.7.5 && sudo ldconfig
123

再次,尝试sudomake runtest命令,出现如下:

显示很多绿色的RUN

注意:这里出现问题

F0823 12:59:13.293607 16025cudnn_tanh_layer.cpp:13] Check failed: status == CUDNN_STATUS_SUCCESS(6 vs. 0) CUDNN_STATUS_ARCH_MISMATCH

*** Check failure stack trace: ***

@ 0x2b7d843c9daa (unknown)

@ 0x2b7d843c9ce4 (unknown)

@ 0x2b7d843c96e6 (unknown)



这就是上文说的

这个因为CUDNN要求GPUCUDA Capability 不小于3.0 (来自大神http://blog.csdn.net/eagelangel/article/details/50562065),我的只有2.1,所以实际不能用cudnn
 
只能禁用cudnn,再重新编译!!!

sudomake runtest
 
很多很多绿色的
RUN
 OK   最后是
[
RUN ] ConvolutionLayerTest/1.TestGradient3D
[
OK ] ConvolutionLayerTest/1.TestGradient3D (450 ms)
[----------]
15 tests from ConvolutionLayerTest/1 (1390 ms total)

[----------]
Global test environment tear-down
[==========]
2021 tests from 267 test cases ran. (593012 ms total)
[
PASSED ] 2021 tests.
 

至此,caffe安装完成。

最后注意: 上面没有写到python    没有 写到mnist





 
 
 
附录:
1
 
caffe需要一个BLAS。。。BLAS有3钟种选择,1 ATLAS 2 MKL 3 openBLAS 
  我好像选了BLAS?????? 我不明白
 这个好像是一个运算库吧,可以加速运算什么,那个MKL性能最好,我用的是 前面安装依赖项的时候就着按了 atlas
2
vi编辑的时候
  更进入
vi以后
i表示插入
     (但是在
vi里面删除功能真烂)
3
dpkg是软件管理系统
管理
deb文件
       -i表示安装
第4 下面命令里 -y表示 确定安装 就不用再确定了
  1. sudo apt-get install build-essential -y