gpt4 book ai didi

python - 为什么python线程会减慢推理时间以实现更快的R-CNN

转载 作者:行者123 更新时间:2023-12-02 17:24:33 25 4
gpt4 key购买 nike

我正在开发一个交通跟踪系统,该系统可以分析已经收集的视频。我正在使用opencv,线程,pytorch和dectron2。为了加快从opencv抓帧的速度,我决定使用Thread,该线程运行一个循环,用该帧填充Queue,如此blog post所示。实现此操作后,我可以按照处理管道其余部分的访问速度来访问帧,因此在那里没有任何问题。当我在现在的帧上进行推理(仅通过Faster R-CNN模型进行正向传递)时,就会发生问题,而过去的时间为0.11s,而现在需要5+秒。正在使用我的GPU,而我的CPU却使用不足。什么会导致这种情况发生?

最佳答案

CPython具有全局解释器锁。这意味着解释器具有一个大锁,可防止同时评估多个线程中的Python字节码。

使用C实现并提供对高级操作的访问权限的程序包在运行时通常能够释放GIL,但是如果您的处理代码主要是针对Python和CPU的,则多线程将不会带来任何提速:将使线程相互冲突,但是由于GIL,您的处理最终将完全按顺序进行。

在那种情况下,您需要多重处理来提高速度,因为GIL是每个解释器,所以在单独进程中的单独解释器不会互相干扰。尽管通信/同步成本更高。

关于python - 为什么python线程会减慢推理时间以实现更快的R-CNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60188630/

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