亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 python 線程會減慢更快的 R-CNN 的推理時間

為什么 python 線程會減慢更快的 R-CNN 的推理時間

繁星coding 2022-07-26 16:06:26
我正在開發一個流量跟蹤系統,該系統分析已經收集的視頻。我正在使用 opencv、threading、pytorch 和 dectron2。為了加快從 opencv 抓取幀的速度,我決定使用一個線程,它運行一個循環,用幀填充隊列,如本文中所見。在實現這個之后,我可以像我的處理管道的其余部分一樣快地訪問幀,所以那里沒有問題。當我現在對幀進行推理(只是通過 Faster R-CNN 模型的前向傳遞)時,就會出現問題,這需要 5 秒以上,而過去需要 0.11 秒。我的 GPU 正在被使用,而我的 CPU 遠未充分利用。什么可能導致這種情況發生?
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

CPython 有一個全局解釋器鎖。這意味著解釋器有一個大鎖,它可以防止同時從多個線程評估 Python 字節碼。

用 C 實現并提供對高級操作的訪問的包通常能夠在運行時釋放 GIL,但如果您的處理代碼主要是 Python 和 CPU-bound,您將不會從多線程中獲得任何加速:您'會有線程相互爭斗,但由于 GIL,您的處理最終將完全按順序進行。

在這種情況下,您需要多處理來獲得加速,GIL 是每個解釋器的,因此不同進程中的獨立解釋器不會相互干擾。但是,通信/同步成本甚至更高。


查看完整回答
反對 回復 2022-07-26
  • 1 回答
  • 0 關注
  • 77 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號