【问题标题】:OpenCV 4.5.3, C++, OpenCL "Transparent API", UMat instead Mat, no improvementsOpenCV 4.5.3、C++、OpenCL“透明 API”、UMat 代替 Mat,无改进
【发布时间】:2022-11-22 17:28:54
【问题描述】:

我的 C++ 代码在 Win 10 上运行,自行构建 OpenCV 4.5.3,检查了 WITH_OPENCL 标志。

使用 UMat 而不是 Mat 不会通过 OpenCL 的“透明 API”带来任何性能改进。

从我在https://jeanvitor.com/opencv-opencl-umat-performance/ 上读到的内容来看,我预计即使在我的笔记本 Intel HD Graphics 520 上使用 UMat 而不是 Mat 时,至少会有轻微的性能提升。

UMatMat执行resizecvtColorbilateralFilter没有显示任何差异。

ocl::haveOpenCLocl::useOpenCL 都返回 true。

唯一的 Device::TYPE_GPU 设备的查询值是:

name: Intel(R) HD Graphics 520
extensions: cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_depth_images cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_media_block_io cl_intel_driver_diagnostics cl_intel_device_side_avc_motion_estimation cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_khr_fp64 cl_khr_subgroups cl_khr_il_program cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_advanced_motion_estimation cl_khr_gl_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_intel_dx9_media_sharing cl_khr_dx9_media_sharing cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_intel_d3d11_nv12_media_sharing cl_intel_simultaneous_sharing
version: OpenCL 2.1 NEO
OpenCLVersion: OpenCL 2.1 NEO
OpenCL_C_Version: OpenCL C 2.0

在其他机器上也试过,性能没有区别。

我错过了什么,有什么想法或提示吗?

【问题讨论】:

  • 请阐明您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: c++ windows opencv opencl


【解决方案1】:

发现问题是由 Microsoft C++ 单元测试框架引起的。在我的生产代码中使用UMatMat 快得多。

问题已回答

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2016-03-04
    • 2016-01-29
    • 2019-08-03
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多