在我的c ++图像处理算法中,Mat.mul(),cv :: pow和cv :: sqrt是最耗时的操作。是否可以使用英特尔TBB加速这些操作? 我是否需要编写自己的矩阵mul,pow和sqrt函数来启用TBB支持(例如,使用parallel_for进行迭代)或者是否在OpenCV中包含这些函数的TBB支持? 是否有任何不同的方法来平衡这些功能?
答案 0 :(得分:0)
关于OpenCV的相似之处,请参阅问题“OpenCV TBB IPP OpenMP functions”。这些功能似乎并不是平行的(尽管它们是使用IPP优化的)。我猜的原因是因为每次调用这些函数都没有多少工作来证明并行工作的分支是正确的。在程序的这个底层,矢量化(SIMD,数据并行)更合适。 TBB应首先从应用程序的顶层应用,利用功能或(最外层)循环并行(管道,图形,parallel_for)。