ubuntu16 CUDA 编译opencl caffe版本并通过mnist训练测试

一般来说,大家谈到caffe,都是基于CUDA在的NVIDIA显卡上运行的版本,其实有一个支持opencl的分支版本OpenCL Caffe。理论上这个版本的caffe可以运行在支持OpenCL并行计算框架的任何设备上(不限于显卡),因为这个分支版本目前还是试验性版本,所以之前一直没有尝试使用,今天想起来就试着在NVIDIA显卡编译OpenCL Caffe。 这里记下编译过程:

硬件配置

神舟Z7M-SL7D2笔记本 CPU Core i7-6700HQ(含集成显卡) 芯片组 Intel Hm170 独立显卡 NVIDIA GTX965M

软件环境

ubuntu 16.04 NVIDIA driver 378 CUDA8.0

安装OpenCL

对于NVIDIA显卡,只要正常安装了CUDA,就自动包含了OpenCL的支持,所以不需要另外的安装。

如果是Intel,AMD或其他的GPU显卡,就要安装相应的OpenCL支持,可以去对应的官网下载。

编译环境准备

安装编译OpenCL Caffe所需的依赖库,大部分依赖库与CUDA下编译是一样的,参见我的另一篇博文《Ubuntu16:cmake生成Makefile编译caffe过程(OpenBLAS/CPU+GPU)#编译环境准备》

#!/bin/bash
sudo apt-get install cmake cmake-gui #安装 cmake
sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
sudo apt-get install libboost-all-dev   // 安装boost库
#sudo apt-get install libatlas-base-dev  //BLAS如使用OpenBLAS,可不安装
sudo apt-get install libopenblas-dev    //BLAS如使用atlas,可不安装
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-numpy  // 安装numpy
#sudo apt-get install doxygen // doxygen用于文档生成 可不安装

唯一不同的是需要安装ViennaCL,ubuntu下安装ViennaCL也很简单:

sudo apt-get install libviennacl-dev

ViennaCL是一个用于并行矩阵计算库,ViennaCL在后台支持OpenCL、OpenMP和CUDA。

下载并编译Caffe

#!/bin/bash
# 下载Caffe代码到本地
git clone --recursive https://github.com/BVLC/caffe.git
# 检出opencl分支版本
git checkout opencl
cd caffe && mkdir build && cd build
# 在build下执行cmake生成Makefile 
# 指定BLAS使用OpenBLAS
cmake -DBLAS=Open .. 
# 如果使用atlas 则更简单
# cmake .. 
# 编译caffe 并发8线程 提高编译速度
make -j 8 
# 编译并安装到build/install文件夹下 
# make install -j 8
# 编译成功后可以运行测试程序检查正确性
# make runtest

经编译成功后运行ldd显示,caffe已经是基于cuda下的OpenCL动态库版本

MNIST训练测试

OpenCL Caffe编译成功后可以运行mnist手写体数字识别训练测试一下效果:

#!/bin/bash
cd caffe
# 下载MNIST训练数据
./data/mnist/get_mnist.sh
# 创建imdb格式数据
./examples/mnist/create_mnist.sh
# 开始训练
./build/tools/caffe  train --solver=examples/mnist/lenet_solver.prototxt
训练过程中运行nvidia-smi,显示GPU已经在满速运行中

参考

《Caffe-OpenCL在ubuntu16.04.2上的简要安装指南》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和使用TensorFlow

TensorFlow是一款由Google构建的用于训练神经网络的开源机器学习软件。TensorFlow的神经网络以有状态数据流图的形式表示。图中的每个节点表示神...

1538
来自专栏机器之心

从零开始:深度学习软件环境安装指南

3468
来自专栏wOw的Android小站

[Tensorflow] 使用SSD-MobileNet训练模型

因为Android Demo里的模型是已经训练好的,模型保存的label都是固定的,所以我们在使用的时候会发现还有很多东西它识别不出来。那么我们就需要用它来训练...

1231
来自专栏AI2ML人工智能to机器学习

强化学习体验之小游戏 FlappyBird

在安装完TensorFlow之后(详见” Install TensorFlow in Ubuntu 16.04.1 LTS “), 就可以测试各种深度学习的算法...

551
来自专栏IT派

从零开始:手把手教你安装深度学习操作系统、驱动和各种python库!

为了研究强化学习,最近购置了一台基于 Ubuntu 和英伟达 GPU 的深度学习机器。尽管目前在网络中能找到一些环境部署指南,但目前仍然没有全面的安装说明。另外...

3698
来自专栏技术墨客

Windows安装TensorFlow 原

如果在系统中安装使用GPU运行的TensorFlow,需要确保下面介绍的NVIDIA软件已经安装到系统中。

231
来自专栏机器学习算法与Python学习

值得收臧 | 从零开始搭建带GPU加速的深度学习环境(操作系统、驱动和各种机器学习库)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 原文:https://medium....

3406
来自专栏Hadoop实操

如何在CDSW中使用GPU运行深度学习

1282
来自专栏人工智能LeadAI

配置深度学习主机与环境(TensorFlow+1080Ti) | 第三章 CUDA与CUDNN安装

01 概念介绍 CUDA(Compute Unified Device Architecture 统一计算设备架构) CUDA(Compute Unified ...

3907
来自专栏CVer

重磅:TensorFlow实现YOLOv3(内含福利)

YOLO官网:YOLO: Real-Time Object Detection keras-yolo3:https://github.com/qqwweee/k...

5.5K15

扫码关注云+社区