如何查看android 是不是支持opencl
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看android 是不是支持opencl相关的知识,希望对你有一定的参考价值。
参考技术A AMD官方宣称支持,不过实际情况是基本不支持。就算打了 ATI Stream SDK 这个开发包也是一样。毕竟OpenCL1.0直到2008年年底才正式敲定,而RV770这个芯片在06年就已经开始投入开发。因此中间有2年多的断档。本回答被提问者采纳 参考技术B 这天天下雨,openCV 3.0、openCL 和 meanShiftFiltering
【中文标题】openCV 3.0、openCL 和 meanShiftFiltering【英文标题】:openCV 3.0, openCL and meanShiftFiltering 【发布时间】:2015-12-10 13:51:53 【问题描述】:基于 openCV 3.0 和 openCL 中的更改,我似乎无法使用 openCL 让 pyrMeanShiftFiltering 工作。我知道 openCV 2.4.10 支持 ocl::meanShiftFiltering。下面的两个函数需要相同的时间来执行。
如何检查 openCL 支持 openCV 3.0 中的哪些功能?有什么建议么?
#include <opencv2/core/ocl.hpp> //attempting to use openCL
using namespace cv;
using namespace ocl;
void meanShiftOCL()
setUseOpenCL(true)
UMat in, out;
imread("./images/img.png").copyTo(in);
pyrMeanShiftFiltering(in, out, 40, 20, 3);
//not using openCL
void meanShift()
Mat in, out;
imread("./images/img.png").copyTo(in);
pyrMeanShiftFiltering(in, out, 40, 20, 3);
【问题讨论】:
【参考方案1】:我不确定是否有简单的方法可以使用给定的 OpenCV 二进制文件来确定它,但是您可以使用额外的定义自己重新编译 OpenCV(可以在 cmake 中指定):
CV_OPENCL_RUN_VERBOSE
有了这个定义,每个 OpenCL 实现可用的函数都将打印到控制台(stdout)以下消息:
<function name>: OpenCL implementation is running
关于您的问题 - 据我所知,目前 pyrMeanShiftFiltering
没有 OpenCL 实现。
【讨论】:
感谢您的回复。 pyrMeanShiftFiltering 没有 openCL 实现真是太可惜了。在 2.4.10 版本中,ocl::meanShiftFiltering 可用。他们拿走它的任何理由? \n 3.0 文档中有什么方法可以判断一个函数是否启用了 openCL? 我不知道为什么会这样——也许你可以create a feature request 甚至添加实现并提出拉取请求。关于文档 - 我没有找到任何可能确定 OpenCL 实现是否可用... 如我所见,pyrMeanShiftFiltering
的 cuda 版本存在。还有OpenCL-收费pyrUp
和pyrDown
。以上是关于如何查看android 是不是支持opencl的主要内容,如果未能解决你的问题,请参考以下文章
Linux下,GCC环境,C语言,使用Opencl, 如何做一个有Button的界面?
失败经验分享android下使用支持opencl的cv::dft()