Android支持OpenCL吗?

nbnkbykc  于 2023-01-15  发布在  Android
关注(0)|答案(4)|浏览(170)

最近我想在android上使用OpenCL开发并行计算应用。据我所知,Android系统不包括“libopencl.so“,但仍有一些网页或博客展示在android上开发OpenCL。Android是否支持OpenCL?如果支持,我应该如何在android上开发OpenCL?

p8ekf7hl

p8ekf7hl1#

    • 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

动力虚拟现实:

/system/vendor/lib/libPVROCL.so

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

ezykj2lf

ezykj2lf2#

严格地说,Android不支持OpenCL。这是谷歌的(糟糕的)选择。然而,如果你能获得OpenCL库,你可以在你的Android设备上运行OpenCL应用程序。从Kirtan提供的链接来看,我推荐索尼的路线,因为它是最直接的(即手机已经配备了OpenCL),我相信高通的Adreno GPU。
我所知道的唯一可用的Imagination OpenCL是在this dev board上。它有一个SGX544,所以你可以从那个板上取下驱动程序并把它们放在你的设备上。它可能会工作。
顺便说一句:OpenGL ES 3.1支持GL计算着色器,并且在Android上也受支持,所以如果您希望使用GPU进行计算,这可能是一个选择。

5uzkadbs

5uzkadbs4#

我知道这是一个老职位,但可以帮助其他游客。
从API级别24开始,在Android上执行GPGPU的更好解决方案是使用Vulkan的计算阶段。
Vulkan不仅适用于图形,流水线中的计算阶段是独立的,可以用于运行内核。
我最近发布了一个使用Vulkan计算平台的Java module,它使用GLSL程序作为内核,但在未来我也可以添加OpenCL C支持。

相关问题