主要参考:

这三个算是比较新的,综合起来完成HP Z820 上Caffe环境配置

环境: Ubuntu 14.04 desktop, CUDA 7.5

Basics

主要是一部分准备工作
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get autoremove
安装git
sudo apt-get install git

Nvidia Drivers

说明:
  • 现在的显卡驱动安装,CUDA安装不需要关闭图形界面也可以实现;
  • 也不像很多博客所说的那样,转cuda之前不能更新,否则有可能会崩溃之类的;
  • Nvidia Drivers的安装可以通过ubuntu自带的”软件和更新“里的附加驱动实现;
  • 或者按照所提供网址里面的方法实现驱动安装;
  • 另外一种说法是现在CUDA集成驱动,在关闭图形界面的情况下安装CUDA可以自动把驱动也装好,这个可能通过在线安装,顺带安装依赖项实现,离线安装包可能较小;
  • 推荐352,而不是最新的361.42,最新的不一定最合适
 
查看显卡型号:
lspci | grep -i nvidia

在线安装:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-

或者官网下载离安装包,安装

或者按照我所说的使用Ubuntu自带的软件和跟新选择合适的驱动,更简单;
 
重启系统:
sudo shutdown -r now

查看驱动版本:

cat /proc/driver/nvidia/version

CUDA

同样下载离线安装包,这里使用CUDA 7.5版本:
sudo dpkg -i cuda-repo-ubuntu1404*amd64.deb
sudo apt-get update
sudo apt-get install cuda

添加路径:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

检查CUDA版本:

nvcc -V

重启系统:

sudo shutdown -r now

cuDNN

最新版本是cuDNN V5,但是经尝试,V5在编译的过程中有问题,推荐cuDNN V4 for Linux
跳转到cuDNN所在路径,解压安装:
cd ~/Downloads/
tar xvf cudnn*.tgz
cd cuda
sudo cp */*.h /usr/local/cuda/include/
sudo cp */libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

这里其实就是复制相关文件到cuda目录,奇怪为啥cuda不集成cuDNN,也有可能已经自带,未做验证;

 
链接cuDNN库文件,不知是否必须:
sudo ln -sf /usr/local/lib/libcudnn.so.4.0. /usr/local/lib/libcudnn.so.
sudo ln -sf /usr/local/lib/libcudnn.so. /usr/local/lib/libcudnn.so

检查:

nvidia-smi

OpenBLAS

 cuDNN和OpenBLAS只安装一个就可以完成caffe的编译工作,可选操作
mkdir ~/git
cd ~/git
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make FC=gfortran -j $(($(nproc) + ))
sudo make PREFIX=/usr/local install

添加路径:

echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

Common Tools

  • 关于相关python依赖项,可以参照所给出的网址尝试,也可以直接安装Anaconda2一步到位,只是注意添加额外的环境变量:
  • 当然也可以不装Anaconda2直接安装;
  • 跑一下,稍作检查,确保依赖项都在;
sudo apt-get install -y libfreetype6-dev libpng12-dev
pip install -U matplotlib ipython[all] jupyter pandas scikit-image

还有一些caffe的依赖包:

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 libgflags-dev libgoogle-glog-dev liblmdb-dev

OpenCV

推荐安装,很多时候是需要用到的:
下载安装包,切换到文件保存的文件夹,安装依赖项:
sudo sh Ubuntu/dependencies.sh

进入Ubuntu\3.0\安装OpenCV 3.0.0:

sudo sh opencv3_0_0.sh

如果成功安装应该不会有什么错误提示:

使用一个有用的命令查看版本:
pkg-config --modversion opencv

Caffe

下载安装包:
cd ~/git
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config

主要是新建了一个git文件夹,下载caffe安装包到git路径里面:

最后一条命令是复制一个配置文件,源文件留作备份,我们要修改这个配置文件,打开后修改;
sudo gedit /caffe/Makefile.config
USE_CUDNN :=
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
# 默认启用OpenBLAS
PYTHON_LIB := /usr/local/lib # pythn库
MATLAB_DIR := /usr/local/MATLAB/R2014a # Matlab安装路径,用于链接Matlab
OPENCV_VERSION = # OpenCV

仅仅列出修改部分,如果使用Anaconda配置文件中有相关修改,只需要取消注释就可以了,并修改路径为自己Anaconda安装路径;

 
编译caffe:
make all -j16
make test -j16
make runtest -j16

添加“-16”为使用多核进行编译,速度更快;

 
编译Pythn 和 Matlab用到的caffe
make pycaffe -j16
make matcaffe -j16
测试详见第二个网址末尾: )
 

一篇顺手的Ubuntu+caffe配置笔记的更多相关文章

  1. ubuntu——caffe配置deeplab

    1. 下载deeplab 2. 安装matio sudo apt-get install libmatio-dev 3. 修改Makefile文件 LIBRARIES += glog gflags p ...

  2. 新装系统(CentOS7.4)环境初始化配置笔记

    新装系统(CentOS7.4)环境初始化配置笔记 一.概述 设备详情: Dell R730 服务器 (四个网卡,一根网线插在第2个网卡上) CentOS 7.4 x64 最小安装环境 二.网络环境配置 ...

  3. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  4. 沈逸老师ubuntu速学笔记(1)--安装flashplayer,配置中文输入法以及常用命令

    开篇首先感谢程序员在囧途(www.jtthink.com)以及沈逸老师,此主题笔记主要来源于沈老师课程.同时也感谢少年郎,秦少.花旦等同学分享大家的学习笔记. 1.安装flash player ctr ...

  5. Ubuntu虚拟机+ROS+Android开发环境配置笔记

    Ubuntu虚拟机+ROS+Android开发环境配置笔记 虚拟机设置: 1.本地环境:Windows 7:VMWare:联网 2.虚拟环境 :Ubuntu 14.04. 比較稳定,且支持非常多ROS ...

  6. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  7. Caffe学习笔记4图像特征进行可视化

    Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...

  8. CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

    1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验 ...

  9. 烂泥:ubuntu下配置msmtp+mutt发送邮件

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 本文主要介绍如何在Linux下使用msmtp+mutt发送邮件,当然Linux下发送邮 ...

随机推荐

  1. 字符串比较strcmp

    问题: 原型:extern int strcmp(const char *s1,const char * s2); 所在头文件:string.h 功能:比较字符串s1和s2. 一般形式:strcmp( ...

  2. JForum2.1.9 安装过程

    JForum2.1.9 安装过程 JForum2.1.9 安装过程 2013/08/10 0:48 1.第一次接触 2013/08/08 在开源中国看到一个国外开源的Java论坛,然后下载JForum ...

  3. How to deploy openbr on linux server very shorly---- linuxmint13/ubuntu12.04 AMD64/debian7

    SO FAST ON A SERVER!!!! There are serveral packages that you have to install: 1. openbr 0.6.0 packag ...

  4. HDU 3127 WHUgirls dp背包问题

    WHUgirls Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total ...

  5. hdu-4471-Homework-矩阵快速幂+优化加速

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4471 题目意思: 求f(n). 当n为特殊点nk时 解题思路: 当x不为特殊点时,直接用基本的矩阵快 ...

  6. 蓝牙UUID——Android各种蓝牙设备的UUID

    本文转自:http://www.14blog.com/archives/481 UUID是“Universally Unique Identifier”的简称,通用唯一识别码的意思.对于蓝牙设备,每个 ...

  7. 以helloworld为例讲解magento中控制器的工作

    1.下面介绍的前提是你已经安装了magento ,版本是1.9.1.0. 2.下面是实际步骤 ①在工程下面创建下面的文件目录 app/code/local/Magentotutorial/Hellow ...

  8. oc之封装与类之间的关系

    1. 面向对象的特征-封装? 封装: 现实生活中的封装: 将很多的小东西 塞在1个大口袋里面. 好处: a. 对外部屏蔽. b. 方便管理. 代码的封装: 函数/方法 就是1种封装的体现: 将一段代码 ...

  9. C语言之分支结构 if(一)

    一 程序的三种基本结构 顺序结构:程序从上往下依次执行,这个叫顺序结构 分支结构:有选择的执行或者不执行某段代码 循环结构:重复的执行某段代码 二 分支结构之if 最简单的俩种用法 (tips: if ...

  10. 【APEX初步】【2】【sObjects与数据库】

    由于apex是与数据库集成的.我们可以直接用apex访问数据库.每条记录就是一个SObject对象