Opencl与Android集成

时间:2016-04-22 19:40:54

标签: android opencl gpu

我在google上搜索过很多但是我无法找到关于将OpenCl与Android集成的好文档。我引用了这个链接:https://aplacetogeek.wordpress.com/android-with-opencl-tutorial/

但这似乎不完整。有人知道如何在Android中使用OpenCl做事吗?此外,还可以了解示例工作代码(如果有的话)。我想了解它。

1 个答案:

答案 0 :(得分:4)

以前曾问过类似的问题,我建议你先阅读以下几页:

How to use OpenCL on Android?

Does Android support OpenCL?

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

  1. Android上的OpenCL并未得到Google的正式支持。因此,您可能会看到某些Android设备上不支持OpenCL。虽然到目前为止,大多数旗舰设备都支持OpenCL,例如配备Qualcomm / Samsung芯片组的设备(除了谷歌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内核编译器,它提供一些内部信息,如寄存器使用等。