美文网首页
Caffe 使用OpenBLAS CPU多线程加速

Caffe 使用OpenBLAS CPU多线程加速

作者: jhttroy | 来源:发表于2018-04-27 16:36 被阅读747次

编译OpenBLAS

OpenBLAS编译可以参照官网:https://github.com/xianyi/OpenBLAS
需要注意的是编译时需加入USE_OPENMP=1 选项使用OpenMP 编译,不然caffe的并行化执行效率会受很大影响,我的系统而言,不使用OpenMP的话在4线程下运行mnist示例已经如便秘一般,比单核慢很多。而使能了OpenMP之后情况好转不少,后面会贴出不同线程数的运行时间。

$ make USE_OPENMP=1
$ sudo make install PREFIX=/opt/OpenBLAS.OpenMP  #默认是/opt/OpenBLAS.

编译Caffe

编译caffe需要注意以下几点,更改Makefile.config:

  • CPU_ONLY
CPU_ONLY := 1
  • BLAS
BLAS := open
BLAS_INCLUDE := /opt/OpenBLAS.OpenMP/include
BLAS_LIB := /opt/OpenBLAS.OpenMP/lib

编译环境设置

export LD_LIBRARY_PATH=/opt/OpenBLAS.OpenMP/lib:/usr/local/lib:/usr/local/lib64:/usr/lib:/usr/lib64:/lib64
export LIBRARY_DIRS=$LD_LIBRARY_PATH
export INCLUDE=/opt/OpenBLAS.OpenMP/include:/usr/include:/usr/include/gflags
export INCLUDE_DIRS=$INCLUDE

多线程优化结果

使用OpenMP的情况下,多核下性能会有些提升,太多的话效率反而会降低。我使用mnist 的examples/mnist/train_lenet.sh 进行测试,为使用CPU计算和减少等待,做了如下改动:

# edit examples/mnist/lenet_solver.prototxt
max_iter: 1000
snapshot: 500
solver_mode: CPU

在使能OpenMP编译OpenBLAS之后,运行时使用多线程需要用下面这个环境变量指定:

export OMP_NUM_THREADS=4

下面是不同线程数的测试结果。

线程数 运行时间(s) - OpenMP 运行时间(s) - No OpenMP
1 89 89
2 66 72
4 52 420
8 49
16 51
32 77,error log: double free or corruption

相关文章

  • Caffe 使用OpenBLAS CPU多线程加速

    编译OpenBLAS OpenBLAS编译可以参照官网:https://github.com/xianyi/Ope...

  • Caffe使用openblas实现CPU模式使用多线程

    (接前文)在Caffe的默认编译安装使用的是ATLAS库,但是这个版本的BLAS不能利用多核CPU,要使用多核CP...

  • openBlas多线程使用教程

    指路原博:OpenBlas多线程使用教程(含测试代码) OpenBLAS的编译运行可参考:https://gith...

  • 编译caffe-Makefile.config解析

    配置cuDNN 原始代码: 如果要使用GPU版本的caffe并且准备使用cuDNN加速库,那就将 改为 CPU o...

  • pycaffe安装过程中问题集锦

    1.caffe 上OpenBLAS的安装使用BLAS是一个数学函数接口标准,有很多个实现。按照Caffe官方ubu...

  • docker

    docker pull elezar/caffe:cpu docker run -it elezar/caffe:...

  • Caffe模型对比

    Caffe模型训练完成后,在实际生产环境中部署时需要对Caffe模型使用的显存(使用CPU时是内存)及模型分类的时...

  • Flutter skia

    CPU 渲染称之为软件绘制(关闭硬件加速时使用该引擎,开启硬件加速时使用OpenGL), Android CPU ...

  • OpenBlas在J1900下的编译问题

    最近在使用别人提供的离线人脸识别sdk的时候,涉及到了OpenBlas这个开源的矩阵计算库,但是这个库对cpu有特...

  • 使用OpenBLAS集成编译numpy

    遇到这样一个错误 需要使用OpenBLAS集成编译numpy首先安装openblas 编辑site.cfg 编辑 ...

网友评论

      本文标题:Caffe 使用OpenBLAS CPU多线程加速

      本文链接:https://www.haomeiwen.com/subject/yjxilftx.html