OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
並行後端 API

詳細描述

提供以下 API 以解決來自不同多執行緒框架的多個執行緒池過度訂閱 CPU 資源的問題。 對於 OpenCV 編譯的執行緒框架與使用者應用程式框架不同的情況,這是一個常見問題。

應用程式可以用自己的實現替換 OpenCV 的 parallel_for() 後端(以重用應用程式的執行緒池)。

後端 API 用法示例

Intel TBB

OpenMP

外掛支援

執行時配置選項

類  cv::parallel::ParallelForAPI
 
類  cv::parallel::openmp::ParallelForBackend
 
類  cv::parallel::tbb::ParallelForBackend
 

函式

void cv::parallel::setParallelForBackend (const std::shared_ptr< ParallelForAPI > &api, bool propagateNumThreads=true)
 替換 OpenCV parallel_for 後端。
 
bool cv::parallel::setParallelForBackend (const std::string &backendName, bool propagateNumThreads=true)
 更改 OpenCV parallel_for 後端。
 

函式文件

◆ setParallelForBackend() [1/2]

void cv::parallel::setParallelForBackend ( const std::shared_ptr< ParallelForAPI > & api,
bool propagateNumThreads = true )
Python
cv.parallel.setParallelForBackend(backendName[, propagateNumThreads]) -> retval

#include <opencv2/core/parallel/parallel_backend.hpp>

替換 OpenCV parallel_for 後端。

應用程式可以用自己的實現替換 OpenCV 的 parallel_for() 後端。

注意
此呼叫不是執行緒安全的。 考慮在任何其他 OpenCV 處理函式之前(且不建立任何其他執行緒)從 main() 中呼叫此函式。

◆ setParallelForBackend() [2/2]

bool cv::parallel::setParallelForBackend ( const std::string & backendName,
bool propagateNumThreads = true )
Python
cv.parallel.setParallelForBackend(backendName[, propagateNumThreads]) -> retval

#include <opencv2/core/parallel/parallel_backend.hpp>

更改 OpenCV parallel_for 後端。

注意
此呼叫不是執行緒安全的。 考慮在任何其他 OpenCV 處理函式之前(且不建立任何其他執行緒)從 main() 中呼叫此函式。