安卓系统支持OpenCL吗



最近我想使用OpenCL在android上开发并行计算应用程序。据我所知,Android系统不包括"libopencl.so",但仍有一些网站或博客显示OpenCL在Android上的开发。Android支持OpenCL吗?如果是这样的话,我应该如何在android上开发OpenCL?

2016年5月20日更新

对于所有具有arm64-v8a ABI的设备,OpenCL库也可以位于lib64文件夹中。

因此,当您检查OpenCL库时,请确保也检查相应的lib64文件夹(如果您更喜欢arm64-v8a作为应用程序的第一个ABI,则可能需要首先检查lib64文件夹)。

例如:/system/vendor/lib64/libOpenCL.so


原始答案:

自2014年以来,支持OpenCL的手机越来越多。

以下是OpenCL库的位置:

高通Adreno:

/system/vendor/lib/libOpenCL.so
or /system/lib/libOpenCL.so (older devices)

ARM马里:

/system/vendor/lib/egl/libGLES_mali.so
or /system/lib/egl/libGLES_mali.so

PowerVR:

/system/vendor/lib/libPVROCL.so

您可以使用OpenCL-Z Android来检查OpenCL在Android设备上的可用性和功能。

严格来说,Android不支持OpenCL。这是谷歌(糟糕的)选择。然而,如果你能获得OpenCL库,你可以在你的Android设备上运行OpenCL应用程序。从Kirtan提供的链接来看,我推荐索尼的路线,因为它是最直接的(即手机上已经安装了OpenCL),我相信它是高通的Adreno GPU。

据我所知,Imagination OpenCL的唯一可用性就是在这个开发板上。它有一个SGX544,所以你可以从那个板上取下驱动程序,然后把它们放在你的设备上。它可能会起作用。。。。。

顺便说一句:OpenGL ES 3.1支持GL计算着色器,并在Android上受支持,因此您可能希望使用GPU进行计算。

您可以参考以下链接

https://software.intel.com/en-us/android/articles/opencl-basic-sample-for-android-os

http://arrayfire.com/getting-started-with-opencl-on-android/

http://developer.sonymobile.com/2013/10/29/boost-the-performance-of-your-android-app-with-opencl/

我知道这是一篇旧帖子,但可能会对其他访问者有所帮助。

从API 24级开始,在Android上执行GPGPU的更好解决方案是使用Vulkan的计算阶段。

Vulkan不仅用于图形,管道中的计算阶段是独立的,可以用于运行内核。

我最近发布了一个使用Vulkan计算阶段的Java模块。它使用GLSL程序作为内核,但将来我也可以添加对OpenCLC的支持。

最新更新