当前位置: 首页 > news >正文

服务器(多GPU)caffe安装和编译

一. 前提

多GPU交互在神经网络是常见的,所以在安装caffe之前需要安装NCCL,来保证多GPU之间的相互交流。
多GPU,这里指的是2个及2个以上英伟达显卡,而不是笔记本中的集显和独显。

二.安装NCCL

1.下载编译
shell终端

cd nccl
make CUDA_HOME=/user/local/cuda-7.5   test #注意自己的cuda路径

2.测试和配置环境变量
shell终端

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./build/lib
./build/test/single/all_reduce_test
./build/test/single/all_reduce_test 10000000
make install

注:make install 是自己添加,而官方原文没有。之所以这么加是因为在caffe 执行 cmake时候,cmake无法找到
非deb安装软件的路径,所以添加make install 是为了能让cmake识别到路径。

三.安装caffe

1.安装所需依赖
shell终端

sudo apt-get install --no-install-recommends build-essential cmake git gfortran libatlas-base-dev 
 libboost-all-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev 
libprotobuf-dev libsnappy-dev protobuf-compiler python-all-dev python-dev python-h5py python-matplotlib python-numpy 
python-opencv python-pil python-pip python-protobuf python-scipy python-skimage python-sklearn

2.下载caffe
shell终端,cd到用户根目录

git clone https://github.com/NVIDIA/caffe.git caffe

3.编译caffe
shell终端

cp Makefile.config.example Makefile.config
gedit Makefile.config

打开文本后,作出如下修改
取消下面这些话的前面注释符号#

USE_CUDNN := 1 
USE_NCCL := 1
ANACONDA_HOME := $(HOME)/anaconda   #这里我们使用Anaconda环境下的python
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
         $(ANACONDA_HOME)/include/python2.7 \
         $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/lib

在下面这些语句中加上#注释符号

#PYTHON_INCLUDE := /usr/include/python2.7 \
        # /usr/lib/python2.7/dist-packages/numpy/core/include
#PYTHON_LIB := /usr/lib

保存后,退出,编译caffe

sudo pip install -r caffe/python/requirements.txt
cd caffe
mkdir build
cd build
make all -j
make install -j
make runtest -j

相关文章:

  • DIGITS安装和配置
  • SeetaFaceEngine安装和测试
  • yolo的安装和使用
  • yolo-v1 train和test自己的分类和数据
  • yolo-v2修改只识别person
  • zigbee编译错误汇总(一)
  • 1.The Graphics View Architecture(图形视图框架)
  • 3.The Graphics View Coordinate System(图形视图坐标系)
  • 2.Classes in the Graphics View Framework(图形视图框架中的类)
  • 4.Key Features(主要特征)
  • 5.Performance(性能)
  • linux解决wifi问题
  • 比较C++中数组,vector,array
  • 一、opencv的图像基本读写
  • 二、opencv的滑块使用
  • 【Leetcode】101. 对称二叉树
  • #Java异常处理
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CSS居中完全指南——构建CSS居中决策树
  • ECMAScript入门(七)--Module语法
  • iOS 颜色设置看我就够了
  • Javascript弹出层-初探
  • java小心机(3)| 浅析finalize()
  • Magento 1.x 中文订单打印乱码
  • npx命令介绍
  • Redux 中间件分析
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SQLServer之创建显式事务
  • Webpack 4x 之路 ( 四 )
  • 观察者模式实现非直接耦合
  • 经典排序算法及其 Java 实现
  • 蓝海存储开关机注意事项总结
  • 线上 python http server profile 实践
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 追踪解析 FutureTask 源码
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Spring Batch JSON 支持
  • ​Spring Boot 分片上传文件
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #pragam once 和 #ifndef 预编译头
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (九)c52学习之旅-定时器
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (转)3D模板阴影原理
  • (转)可以带来幸福的一本书
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Transactional 竟也能解决分布式事务?
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [20190416]完善shared latch测试脚本2.txt
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下