【问题标题】:Intel TBB for OpenCV pow and sqrt用于 OpenCV pow 和 sqrt 的英特尔 TBB
【发布时间】:2014-04-30 13:23:22
【问题描述】:
在我的 c++ 图像处理算法中,Mat.mul()、cv::pow 和 cv::sqrt 是最耗时的操作。是否可以使用英特尔 TBB 加速这些操作?
我是否需要编写自己的矩阵 mul、pow 和 sqrt 函数来启用 TBB 支持(例如,使用 parallel_for 迭代 mat)或者 OpenCV 中的这些函数是否包含 TBB 支持?
是否有任何不同的方法可以对这些函数进行并行化?
【问题讨论】:
标签:
c++
opencv
parallel-processing
tbb
【解决方案1】:
请参阅问题“OpenCV TBB IPP OpenMP functions”,了解 OpenCV 的相似之处。这些函数似乎不是并行的(尽管它们使用 IPP 进行了优化)。我猜的原因是因为每次调用这些函数并没有太多工作来证明并行工作的分叉是合理的。在程序的这个底层,向量化(SIMD,数据并行)更合适。 TBB 应该首先从应用程序的顶层应用,利用功能或(最外层)循环并行性(管道、图形、parallel_for)。