![](/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.