Opencv 如何在AMD GPU上使用DNN OPENCL?

Opencv 如何在AMD GPU上使用DNN OPENCL?,opencv,opencl,dnn9,Opencv,Opencl,Dnn9,在Windows 10上,我想使用GPU作为DNN后端来节省CPU电源。它适用于英特尔GPU,但AMD GPU上存在问题 使用setPreferableTarget(DNN\u TARGET\u OPENCL)后,速度变得非常慢(比DNN\u TARGET\u CPU慢得多)。 我与任务管理器进行了检查,发现所有的计算实际上都在CPU上 下面是一些日志 [ INFO:0] global D:\work\opencv\opencv\modules\core\src\ocl.cpp (891) cv

在Windows 10上,我想使用
GPU
作为
DNN后端
来节省
CPU
电源。它适用于
英特尔GPU
,但
AMD GPU
上存在问题

使用
setPreferableTarget(DNN\u TARGET\u OPENCL)
后,速度变得非常慢(比
DNN\u TARGET\u CPU
慢得多)。 我与任务管理器进行了检查,发现所有的计算实际上都在
CPU

下面是一些日志

[ INFO:0] global D:\work\opencv\opencv\modules\core\src\ocl.cpp (891)
cv::ocl::haveOpenCL Initialize OpenCL runtime...

OpenCV(ocl4dnn): consider to specify kernel configuration cache
directory via OPENCV_OCL4DNN_CONFIG_PATH parameter.

[ INFO:0] global D:\work\opencv\opencv\modules\core\src\ocl.cpp (433)
cv::ocl::OpenCLBinaryCacheConfigurator::OpenCLBinaryCacheConfigurator
Successfully initialized OpenCL cache directory:
C:\Users\wangq\AppData\Local\Temp\opencv\4.3\opencl_cache\

[ INFO:0] global D:\work\opencv\opencv\modules\core\src\ocl.cpp (457)
cv::ocl::OpenCLBinaryCacheConfigurator::prepareCacheDirectoryForContext
Preparing OpenCL cache configuration for context:
Advanced_Micro_Devices__Inc_--Baffin--2906_10

OpenCL program build log: dnn/dummy

Status -66: CL_INVALID_COMPILER_OPTIONS

-cl-no-subgroup-ifp -D AMD_DEVICE

任何帮助都将不胜感激。

欢迎使用堆栈溢出!请正确格式化您的代码。不确定这是否是最新的,但根据本博客,opencv opencl后端仅支持英特尔GPU:“我们在这里将DNN后端设置为OpenCV,将目标设置为CPU。您可以尝试将首选目标设置为cv.dnn.dnn_target_OPENCL,以便在GPU上运行它。但请记住,当前的OpenCV版本仅使用Intel的GPU进行测试,如果您没有Intel GPU,它将自动切换到CPU。