c++ - 基于 OpenCL 的性能不佳的 OpenCV 方 block 实现

标签 c++ opencv opencl

尝试运行通用 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

最佳答案

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

cpp: 66ms
ocl: 90ms

样本执行预热步骤。可能没有足够的迭代。

关于c++ - 基于 OpenCL 的性能不佳的 OpenCV 方 block 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17536103/

相关文章:

c++ - 英特尔 OpenCL 编译器 : optimize struct usage

c++ - 设备说它可用,但无法在 OpenCL 中创建上下文

C++ 标准库 - 我应该什么时候使用它,什么时候不应该使用它?

c++ - 为什么这段代码非常慢?与缓存行为有关的任何事情吗?

ios - Xcode 10 iOS OpenCV 链接器命令失败,退出代码 1

c++ - YUV420 从像素指针到 BGR 图像

c++ - 什么是谷歌测试、死亡测试

c++ - 什么是形式参数?

python - Python视频降低fps

python - 如何在 pyopencl 中明确设置工作维度?