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