1

我在 Opencv 答案组中发布了一个关于 TBB 性能的问题。这是链接

此链接中的答案如下所示。

可能您使用带有和不带有 TBB 的 2.4.5 库进行比较,但是,由于源代码中已包含 OpenCV 2.4.3 多线程支持功能,因此不再需要构建带有 TBB 支持的 openCV。它在必要时自动完成,并且包含的​​ dll 包含在需要的源中。

但是我在 Hog 描述符中遇到了性能变化。那就是我从样本中使用了peopledetect.cpp,并在opencv2.4.5中使用TBB和不使用TBB进行编译。我可以看到用 TBB 编译的 Opencv2.4.5 的速度是 2 倍,而没有 TBB 的 Opencv2.4.5 的速度非常慢。

有人可以请遵守以下几点,因为我找不到任何可信的来源。

1)从opencv2.4.3开始,我们不需要在TBB ON的情况下重建opencv吗?

4

1 回答 1

3

自 2.4.3 起,预构建二进制文件使用 Visual Studio Concurrency 框架编译。但是,并非每个算法都使用“新”并行接口,您可以在其中从并发切换到 IPP 到 TBB。以前,它被硬编码为使用 TBB 或什么都不使用。所以问题是不是每个算法都被转换为新的并行方式,因此您可以通过某些方式使用 TBB 获得加速。(IIRC 的一个例子是 BruteForceMatcher,它只使用一个带有预构建库的核心)

于 2013-05-31T10:09:47.983 回答