gpt4 book ai didi

c++ - opencv::flann:Index knnsearch 线程安全吗?

转载 作者:行者123 更新时间:2023-11-28 00:00:42 29 4
gpt4 key购买 nike

我正在尝试将我的 ML 问题与 flann 索引并行化。简而言之,我的代码如下所示:

Index index(dict, KDTreeIndexParams(TREE_NUM)); // HUGE dict, very expensive to construct -- prefer to create it once.
#pragma omp parallel for
for (int i = 0; i < featuresize; i++) {
// creating thread-local params
auto denseTF = index.knnSearch(<thread-local params>);
// not relevant code
}

我查阅了文档 here但是那里没有关于线程安全的内容。我担心的是这个片段是否是线程安全的?

最佳答案

经过一天的调试和捕获数据竞争并通读源代码 (here),我可以得出结论,index.knnSearch 不是线程安全的。

在内部,indexTree 正在 knnSearch 调用中更新。我通过为每个线程创建 index 的拷贝解决了这个问题(是的,它很昂贵,但仍然比顺序代码快)。

关于c++ - opencv::flann:Index knnsearch 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39257005/

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