Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
0.检查配置
1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windows 7 64bit系统上安装了Ubuntu 14.04 64bit系统,链接在此,以此来搭建Caffe GPU版本);
2. 确定GPU支持CUDA
输入:
lspci | grep -i nvidia
显示结果:

我的是GTX 650,然后到http://developer.nvidia.com/cuda-gpus去验证,支持CUDA;

3. 确定Linux版本支持CUDA
输入:
uname -m && cat /etc/*release
结果显示:

4. 确定系统已经安装了GCC
输入:
gcc --version
结果显示:

5. 确定系统已经安装了正确的Kernel Headers和开发包
输入:
uname -r
结果:4.2.0-36-generic,这个是必须安装的kernel headers和开发包的版本;
安装对应的kernels header和开发包,
sudo apt-get install linux-headers-$(uname -r)
1.安装CUDA
下载CUDA,从https://developer.nvidia.com/cuda-downloads,下载对应版本的cuda安装包,我下载的是deb(local)版,

安装CUDA,运行如下命令,即可安装CUDA;
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安装完成后,重启一下;
2.安装cuDNN
下载cuDNN,从https://developer.nvidia.com/rdp/cudnn-download,注册,然后下载,

注意事项:
有可能由于最新cuDNN不稳定,导致后续caffe工程编译失败,报出如下错误,详情参考第三个链接,这时可以回退一下,下载较新版本的cuDNN;
CXX src/caffe/test/test_im2col_layer.cpp
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
from ./include/caffe/common.hpp:19,
from ./include/caffe/blob.hpp:8,
from src/caffe/test/test_im2col_layer.cpp:5:
./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:
./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’
pad_h, pad_w, stride_h, stride_w));
^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’
cudnnStatus_t status = condition; \
^
In file included from ./include/caffe/util/cudnn.hpp:5:0,
from ./include/caffe/util/device_alternate.hpp:40,
from ./include/caffe/common.hpp:19,
from ./include/caffe/blob.hpp:8,
from src/caffe/test/test_im2col_layer.cpp:5:
/usr/local/cuda/include/cudnn.h:799:27: note: declared here
cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
^
Makefile:572: recipe for target '.build_release/src/caffe/test/test_im2col_layer.o' failed
make: *** [.build_release/src/caffe/test/test_im2col_layer.o] Error 1
拷贝cuDNN库文件到cuda目录下,
tar -zxvf cudnn-7.0-linux-x64-v4.0-prod.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
设置环境变量,在/etc/profile中添加CUDA环境变量,
sudo gedit /etc/profile
在打开的文件中加入如下两句话
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存后,使环境变量立即生效,
source /etc/profile
进入/usr/local/cuda/samples,执行下面的命令来build samples,
sudo make all -j4
全部编译完成后,进入 samples/bin/x86_64/linux/release,运行deviceQuery,
./deviceQuery
如果出现显卡信息,则驱动及显卡安装成功,结果如下:

3.编译caffe
修改caffe/Makefile.config,
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1#去掉这个注释
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1#加上这个注释
然后输入,
make clean#第一次编译,不需要执行
make all
make test
make runtest
显示结果:

cpu版本Caffe学习笔记1--Ubuntu 14.04 64bit caffe安装的编测试行结果是共1058项,GPU版本的测试运行结果是2005项;
编译pycaffe,
make pycaffe
make distribute
4.mnist数据测试
cd caffe
# 下载mnist数据
sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh
执行结果,

和CPU版本Caffe学习笔记1--Ubuntu 14.04 64bit caffe安装的mnist数据测试相比,速度明显提升;当时我运行脚本后,就开始看书,刚看完一页,抬头发现已经运行完毕,第一次用GPU计算,虽然只是很渣的GTX 650,但依然对GPU的运算能力感到佩服;
5.深度学习开源库环境搭建大礼包
昨晚群里一个哥们分享了一个github链接,涵盖了主流深度学习开源库的环境搭建,包括Nvidia驱动、CUDA、cuDNN、TensorFlow、Caffe、Theano、Keras、Torch,链接在此,他的配置是Ubuntu 14.04 64bit + Nvidia Titan X,还是适用于好多朋友的机器的,所以好东西还是要分享给大家;
6.参考链接
Ubuntu 14.04 + Caffe + Cuda 7.5 + Opencv 3.0安装教程
Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)的更多相关文章
- Ubuntu 14.04 64bit 安装tensorflow(GPU版本)
本博客主要用于在Ubuntu14.04 64bit 操作系统上搭建google开源的深度学习框架tensorflow. 0.安装CUDA和cuDNN 如果要安装GPU版本的tensorflow,就必须 ...
- Ubuntu 14.04 64bit下Caffe + Cuda6.5/Cuda7.0 安装配置教程
http://www.embeddedlinux.org.cn/emb-linux/entry-level/201612/21-6005.html 随着深度学习快速发展的浪潮,许多有兴趣的工作者都转入 ...
- Ubuntu 14.04上安装caffe
本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...
- ubuntu 14.04 64bit 安装 oracle 11g r2
参考文章:http://tutorialforlinux.com/2016/03/09/how-to-install-oracle-11g-r2-database-on-ubuntu-14-04-tr ...
- 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战> ...
- Window7下安装Ubuntu 14.04 64bit
本文章主要讲解如何在Windows7操作系统中硬盘安装Ubuntu 14.04 64bit: 1.准备文件 1.ubuntu-14.04.4-desktop-amd64.iso 2.EasyBCD.e ...
- Installation Guide of Ubuntu 14.04, 64bit on Dell Server
Installation Guide of Ubuntu 14.04, 64bit on Dell Server 准备:U盘(已通过ultraiso刻录ISO镜像). 1.插入U盘: 2.启动服务器, ...
- 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...
- 在Ubuntu 14.04 上安装网易云音乐
之前因为电脑有网络的原因,一直使用网页网易云音乐听歌,最近电脑没网络使用,才发现网易云音乐有linux版本,果断下载. 在Chrome浏览器中,登陆官网下载Linux版本中的Ubuntu 14.04 ...
随机推荐
- Junit测试框架 Tips
关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...
- 【Java】JDK类 CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 countDown() 方法,所以在当前计数到达 ...
- sort命令
1.默认情况下,sort命令,以字母序进行文本排序sort word.txt2.如果想对数字进行排序,可以使用-n参数sort num.txt -n3指定列排序下面是对passwd文件,以冒号(:)进 ...
- sass和compass的配置
http://note.youdao.com/share/?id=4f57187f9695bcaadf80516187d2de0e&type=note 当执行安装sass出错时,可以试试这个命 ...
- java-JDBC从数据库中读取数据并进行日期民族男女的转换
代码如下: package com.itnba.maya.mysql; import java.sql.*; import java.text.SimpleDateFormat; public cla ...
- Unity - 接入Android SDK
在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...
- Fedora17安装MySQL及配置
一.安装 以下操作均是在root用户下进行操作.首先,如果以前有安装过,这次卸载后安装的话,最好是先将/var/lib/mysql/里面的内容全部删掉(如果不重要的话),我就遇到过没有删除这些东西,结 ...
- python serial 获取所有的串口名称
http://blog.csdn.net/qq61394323/article/details/44619511 #!/usr/bin/env python # -*- coding: utf-8 - ...
- .NET中的DES对称加密
DES是一种对称加密(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法.一般密码长度为8个字节,其中56位加密密钥, ...
- ReactJS入门(三)—— 顶层API
本文基本跟着官方文档把API都走一遍,但会有实例来解释应该怎么用,木有比我更详细的API文档咯. React.createClass 参数:CONFIG(object) 创建一个ReactClass( ...