2

In my c++ image processing algorithm, Mat.mul(), cv::pow and cv::sqrt are the most time consuming operations. Is it possible to speed up these operations using Intel TBB? Do I need to write my own matrix mul,pow and sqrt functions to enable TBB support (e.g. using parallel_for for iterating over mat) or is TBB support included for these functions in OpenCV? Are there any diffrent approaches for paralization of these functions?

user3392074
  • 31
  • 1
  • 3

1 Answers1

0

Please refer to the question 'OpenCV TBB IPP OpenMP functions' regarding what OpenCV parallels. It doesn't seem these functions are parallel (though they are optimized using IPP). And the reason I guess is because there is no much work per one call to these functions to justify a fork of a parallel work. At this bottom-level of the program, vectorization (SIMD, data-parallelism) is more appropriate. TBB should rather be applied from the top-level of the application first, leveraging functional or (outermost) loop parallelism (pipeline, graph, parallel_for).

Community
  • 1
  • 1
Anton
  • 6,349
  • 1
  • 25
  • 53