android - Opencl 与 Android 的集成

标签 android opencl gpu

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

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

最佳答案

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

How to use OpenCL on Android?

Does Android support OpenCL?

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

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

  2. 如果您清楚地知道您的应用程序只能在某些支持 OpenCL 的设备上运行,您可以继续这样做。 Qualcomm 和 Samsung 芯片组上的 OpenCL 目前相当稳定,编译器也经过多年优化;因此,您可以期待这些设备的一些良好性能。

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

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

关于android - Opencl 与 Android 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802058/

相关文章:

android - 当应用程序在 Dell Venue 8 7840 上运行时,cacheAsBitmap 导致 Adob​​e Air 中 GPU 渲染模式出现图形故障

multithreading - 使用了多少线程/工作项?

opencv - OpenCL无法使用OpenCV检测我的AMD GPU

c++ - OpenCL 找不到 ATI 卡

android - 使用 adb 启动 Intent 打开完整对话框

c++ - 如何知道 OpenCV 3.0 算法是否在透明 API 中具有 OpenCL 实现

c# - C# 本身是否使用 GPU 进行图形处理?

java - 如何在 Android 上使用 SHA-256

android - 带滚动的多色条形图

javascript - 使用自动生成的 objectId 或为 Parse 中的映射类创建自己的唯一 ID