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