簡體   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