Opencl 在 ARM 上找不到 gpu

Opencl can't find gpu on ARM

我正在尝试 运行 android/ARM 上的图像处理应用程序,使用 opencv 的 ocl 模块。在某些情况下(android4.2.2/Qualcomm snapdragon msm8930/Adreno TM305),它运行很好。

但在其他情况下(android4.4.2/rockchip RK3288/mali-T764; android4.4/sumsung exynos5410/powerVR SGX 544mp),有问题。 CV::ocl::getOpenCLDevice() 表示没有 opencl 平台或设备。

我确定所有三个经过测试的系统都支持 opencl。谁能告诉我这里有什么问题?谢谢!

嗯,我已经解决了这个问题。问题是一些 android 设备在文件系统中没有 opencl lib 文件 libopencl.so,或者文件有不同的名称(例如 libgles_Mali.so)。要使用opencl,首先要设置环境

具体来说,添加

setenv("OPENCV_OPENCL_BINARY", "libGLES_Mali.so", 0);

之前

cv::ocl::getOpenCLDevices()