Opencl 与 Android 的集成

Adi*_*war 3 android gpu opencl

我在谷歌上搜索了很多,但找不到关于将 OpenCl 与 Android 集成的好文档。我提到了这个链接:https : //aplacetogeek.wordpress.com/android-with-opencl-tutorial/

但这似乎不完整。有没有人知道如何在 Android 中使用 OpenCl 做事?此外,示例工作代码(如果有)也值得赞赏。我想了解它。

Rob*_*ang 5

之前也有人问过类似的问题,建议您先阅读以下几页:

如何在 Android 上使用 OpenCL?

Android 是否支持 OpenCL?

基本上,您需要注意以下事项:

  1. Google 不正式支持 Android 上的 OpenCL。因此,您可能希望看到某些 Android 设备不支持 OpenCL。虽然到目前为止,大多数旗舰设备都支持 OpenCL,例如带有高通/三星芯片组的设备(Google Nexus 设备除外,但某些 Nexus 设备有解决方法,请在线谷歌)。

  2. 如果您清楚地知道您的应用程序只能在某些支持 OpenCL 的设备上运行,您可以继续这样做。目前高通和三星芯片组上的 OpenCL 非常稳定,编译器也经过了几年的优化;因此,您可以期待这些设备具有良好的性能。

  3. 开发步骤: 1) 开发C/C++ OpenCL代码并使用NDK编译。2) 为您的 Android 应用程序编写 JNI 接口。3)编写你的Android应用程序,调用你编写的JNI接口。然后你就完成了。这里没什么特别的,您甚至可以在桌面 GPU 上调试 OpenCL 内核代码。除了在移动设备上的一些限制,例如有限的扩展和更少的资源,大多数内核代码应该可以很好地从桌面到 Android 环境。

  4. 要优化性能,请务必查看芯片供应商提供的分析器和开发者网络的优化指南。例如,Snapdragon Profiler 包含 GPU 分析工具;Mali 也有离线 CL 内核编译器,它提供一些内部信息,如寄存器使用等。