【问题标题】:Bad Performance OpenCL based OpenCV Squares Implemenation性能不佳的基于 OpenCL 的 OpenCV Squares 实现
【发布时间】:2013-07-08 21:15:15
【问题描述】:

尝试运行通用 squares.cpp 示例: https://github.com/Itseez/opencv/blob/master/samples/ocl/squares.cpp

我有一台带有 AMD Radeon HD 6750M 的 Macbook Pro,并在 /opt/AMDAPP 中安装了正确的 OpenCL 库,以及一个 CMake 编译的 OpenCV2.4,可以正确检测到 CL 库。此外,我正在使用 fglrx-updates 来利用专有驱动程序。但是,性能似乎几乎是 CPP 运行时的 2 倍。我尝试了大约 200 次迭代并遇到了同样的问题。

内置:g++ -o square.out square.cpp -L/usr/local/lib -L/opt/AMDAPP/lib -I/usr/local/include -I/opt/AMDAPP/include -lopencv_core - lopencv_highgui -lopencv_ocl -lopencv_gpu -lopencv_imgproc -lOpenCL

结果:

cpp平均时间:233.192ms

ocl平均时间:568.043ms

【问题讨论】:

  • 这里没有问题。
  • 我认为这个问题是隐含的:为什么硬件加速版本比 CPU 慢。
  • 是的。为什么 GPU 场景会更慢?
  • 第一次运行 OpenCL 内核时,GPU 仍然需要退出省电模式,因此此运行总是需要更长的时间。通常情况下,会循环操作几次以唤醒 GPU,然后为第二次循环计时,该循环重复操作数百次。
  • 可以理解。因此我提到运行它大约 200 次迭代

标签: c++ opencv opencl


【解决方案1】:

我在使用 FirePro V5900 的 Windows 上看到了相同的行为

cpp: 66ms
ocl: 90ms

样本执行预热步骤。可能迭代次数不够。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2019-02-26
    • 2014-08-10
    • 2022-10-15
    • 2013-09-12
    • 1970-01-01
    • 2014-03-16
    相关资源
    最近更新 更多