gpt4 book ai didi

opencv - 在 OpenCV 构建中能否同时启用 TBB、OpenMP 和 OpenCL?

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:08 24 4
gpt4 key购买 nike

我正在构建 OpenCV,想知道添加所有 3 个是否有意义?或者如果这会导致以后出错,因为它们都用于并行执行?

最佳答案

我最近也想知道同样的事情,我的研究找到了文件 modules\core\src\parallel.cpp,其中包含并行 for循环,parallel_for_,以及相应的数据结构和线程控制函数。

从这个文件来看,OpenCV 准备按优先顺序支持以下框架:

/* IMPORTANT: always use the same order of defines
1. HAVE_TBB - 3rdparty library, should be explicitly enabled
2. HAVE_CSTRIPES - 3rdparty library, should be explicitly enabled
3. HAVE_OPENMP - integrated to compiler, should be explicitly enabled
4. HAVE_GCD - system wide, used automatically (APPLE only)
5. HAVE_CONCURRENCY - part of runtime, used automatically (Windows only - MSVS 10, MSVS 11)
*/

只有框架启用(并在系统中找到)在此列表中最顶层被编译到库中;其余代码被预处理器指令禁用。

总而言之,您应该只启用您希望 OpenCV 使用的框架。
如果您添加多个,则应自动选择上面列表中第一个出现的。其他的不会提供额外的好处,但也不应该造成任何麻烦。

线程相关函数的文档可以在 Utility and System Functions and Macros 中找到。部分。

希望对您有所帮助!

关于opencv - 在 OpenCV 构建中能否同时启用 TBB、OpenMP 和 OpenCL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com