我在谷歌上搜索了很多,但找不到关于将 OpenCl 与 Android 集成的好文档。我提到了这个链接:https://aplacetogeek.wordpress.com/android-with-opencl-tutorial/
但这似乎不完整。有人知道如何在 Android 中使用 OpenCl 做事吗?此外,如果有的话,示例工作代码也很受欢迎。我想了解它。
最佳答案
类似的问题之前有人问过,建议先阅读以下页面:
基本上,您需要注意以下事项:
Google 未正式支持 Android 上的 OpenCL。因此,您可能会看到某些 Android 设备不支持 OpenCL。虽然到目前为止,大多数旗舰设备都支持 OpenCL,例如带有 Qualcomm/Samsung 芯片组的设备(Google Nexus 设备除外,但对于某些 Nexus 设备有解决方法,请在线谷歌)。
如果您清楚地知道您的应用程序只能在某些支持 OpenCL 的设备上运行,您可以继续这样做。 Qualcomm 和 Samsung 芯片组上的 OpenCL 目前相当稳定,编译器也经过多年优化;因此,您可以期待这些设备的一些良好性能。
开发步骤: 1) 开发C/C++ OpenCL代码并使用NDK编译。 2) 为您的Android 应用程序编写JNI 接口(interface)。 3) 编写您的 Android 应用程序,调用您编写的 JNI 接口(interface)。然后你就完成了。这里没什么特别的,您甚至可以在桌面 GPU 上调试 OpenCL 内核代码。除了移动设备上的一些限制,例如有限的扩展和更少的资源,大多数内核代码应该在桌面和 Android 环境中都能很好地工作。
要优化性能,请务必查看芯片供应商提供的分析器和开发者网络的优化指南。例如,Snapdragon Profiler 包含 GPU 分析工具; Mali 也有离线 CL 内核编译器,它提供一些内部信息,例如寄存器使用等。
关于android - Opencl 与 Android 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802058/