性能不佳基于OpenCL的OpenCV平方实现
Bad Performance OpenCL based OpenCV Squares Implemenation
尝试运行泛型square.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更新来利用专有驱动程序。然而,性能似乎是CPP运行时的两倍。我尝试了大约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-lopencc_gpu-lopencv/imgproc-lOpenCL
结果:
cpp平均时间:233.192ms
ocl平均时间:568.043ms
我在带有FirePro V5900 的Windows上看到了同样的行为
cpp: 66ms
ocl: 90ms
样品进行预热步骤。也许没有足够的迭代。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 如何自己为我自己的shared_ptr实现实现别名构造函数
- "shared_ptr"如何实现协方差?
- 如何实现支持模板协方差的通用工厂
- 快速实现两个 8 位数组的协方差
- 如何使用 std::auto_ptr 实现协方差赋值
- 这个UTF-8实现实现是定义的还是定义良好的