繁体   English   中英

Caffe中的批处理模式-无性能提升

[英]Batch processing mode in Caffe - no performance gains

该线程之后,我重新实现了图像处理代码以一次发送10张图像(即,我现在将输入Blob的num属性设置为100而不是10)。

但是,处理此批次所需的时间比原始时间大10倍。 这意味着我没有得到任何性能提升。

那是合理的还是我做错了什么?

我在CPU模式下运行Caffe。 不幸的是,GPU模式不是我的选择。

更新:现在,当使用多个GPU时,Caffe本机支持并行处理多个图像。 尽管基于当前GPU并行性的实现似乎相对简单,但目前尚不存在对多个CPU并行处理的类似支持。

考虑到实现并行性的主要问题是训练期间需要的同步如果您只想并行处理图像(而不是训练模型),则可以将同一网络的多个副本加载到内存(无论通过python)多处理或c ++和多线程),并在不同的网络上处理每个图像。 这将是简单且相当有效的,尤其是如果您一次加载网络然后仅处理大量图像。 不过,GPU的速度要快得多:)


Caffe不会并行处理多个图像,通过批量处理多个图像而获得的唯一节省是在Caffe的框架之间来回传输图像数据所花费的时间,这在处理GPU时可能很重要。

IIRC尝试了多种并行制作Caffe过程映像的尝试,但大多数尝试着重于GPU的实现(CUDNN,CUDA流等),很少尝试向CPU代码添加并行性(OpenBLAS的多线程模式,或者只是在多个线程上运行) )。 我认为其中只有CUDNN选项是Caffe稳定版的一部分,但显然需要GPU。 您可以尝试在Caffe的github页面上查看有关此问题的请求请求之一,并查看它是否对您有用,但是请注意,这可能会导致与当前版本的兼容性问题。

这是我过去使用过的一个版本,尽管不再维护: https : //github.com/BVLC/caffe/pull/439

我在上述问题的最后一条评论中也注意到,虽然我从未亲自尝试过,但此拉取请求的CPU代码也有所提高: https : //github.com/BVLC/caffe/拉/ 2610

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM