我正在尝试将CUDA用作opencv-4.1.1中提供的dnn模块的后端。我已启用CUDA构建了opencv,nvidia驱动程序和CUDA已正确安装在系统上,这里我使用manjaro作为开发平台。
我正在尝试使用cv2.dnn模块加载预训练的YOLOv3权重。
作为目标后端,但不支持直接GPU推断,那么如果不将GPU作为底层推理引擎使用,编译带有CUDA的OpenCV有什么意义呢?
为了确保进程在GPU上运行,我发布了
我正在尝试使用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,欢迎提供任何指导。