![](/img/trans.png)
[英]Why is OpenCV GPU CUDA template matching so much slower than CPU?
[英]CUDA(GPU) as OpenCV backend
我正在嘗試使用 CUDA 作為 opencv-4.1.1 中提供的 dnn 模塊的后端,我構建了啟用 CUDA 的 opencv,nvidia 驅動程序和 CUDA 正確放置在系統上,這里使用 manjaro 作為開發平台。
我正在嘗試使用 cv2.dnn 模塊加載預訓練的 YOLOv3 權重,
net = cv2.dnn.readNetFromDarknet('yolov3.cfg', 'yolov3.weights')
但它使用 CPU 作為默認推理引擎,但我試圖使用 GPU 作為后端 IE,來自官方 opencv 文檔,我發現以下
DNN_TARGET_CPU
DNN_TARGET_OPENCL
DNN_TARGET_OPENCL_FP16
DNN_TARGET_MYRIAD
DNN_TARGET_FPGA
作為目標后端,但不支持直接 GPU 推理,所以如果不使用 GPU 作為底層推理引擎,用 CUDA 編譯 opencv 有什么意義,
為了確保進程在 GPU 上運行,我發布了
nvidia-smi
輸出,
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 710 Off | 00000000:01:00.0 N/A | N/A |
| 40% 40C P0 N/A / N/A | 598MiB / 1998MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
GPU 使用的進程 id 為 0,顯然意味着沒有使用 GPU 的進程,任何指導將不勝感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.