我真的想知道使用 OpenCV 是否setNumThreads();真的允许我的代码并行运行。我在互联网上搜索了很多,但没有找到我的问题的任何答案。
有人对我的问题有答案吗?
效果很大程度上取决于您在 cmake configure 上选择的配置选项,例如CMakeLists.txt ,以及不同配置选项的捕获:
/* 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)
*/
Run Code Online (Sandbox Code Playgroud)
有了这些,你就可以理解代码本身了。话虽如此,如果您运行的是固有的顺序算法(这实际上是 OpenCV 下的所有内容),并行引擎不会做太多事情……我的猜测是,如果您有多个并行运行的 OpenCV 程序,您可能会看到有意义的差异。