我现在在 Android 上编程,我想知道我们现在是否可以在 Android 上使用 GPGPU?我曾经听说 Renderscript 将来可能会在 GPGPU 上执行。但我想知道我们现在是否可以在 GPGPU 上编程?如果我可以在 Android GPGPU 上编程,我在哪里可以找到一些教程或示例程序?感谢您的帮助和建议。
到目前为止,我知道 OpenGL ES 库现在使用 GPU 进行加速,但我想使用 GPU 进行计算。我想做的是加速计算,所以我希望使用一些API库,比如OpenCL。
我现在在 Android 上编程,我想知道我们现在是否可以在 Android 上使用 GPGPU?我曾经听说 Renderscript 将来可能会在 GPGPU 上执行。但我想知道我们现在是否可以在 GPGPU 上编程?如果我可以在 Android GPGPU 上编程,我在哪里可以找到一些教程或示例程序?感谢您的帮助和建议。
到目前为止,我知道 OpenGL ES 库现在使用 GPU 进行加速,但我想使用 GPU 进行计算。我想做的是加速计算,所以我希望使用一些API库,比如OpenCL。
2021-4 月更新
Google 已宣布弃用 RenderScript API,转而支持Android 12 中的 Vulkan。
Android 7.0 兼容性定义文档 - 3.3.1.1中提供了制造商包含 Vulkan API 的选项。图形库。
原始答案
其实Renderscript Compute此时并不使用GPU,而是为它设计的
来自在 Android 平台上工作的 Romain Guy:
https://groups.google.com/d/msg/android-developers/m194NFf_ZqA/Whq4qWisv5MJ
是的,有可能 。
您可以使用 renderscript 或 opengGL ES 2.0 。
renderscript 在 android 3.0 及更高版本上可用,openGL ES 2.0 在大约 95% 的设备上可用。
从 Android 4.2 开始,Renderscript 可以在计算中涉及 GPU(在某些情况下)。更多信息在这里:http ://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html
据我了解,ScriptIntrinsic
子类经过优化,可以在兼容硬件上的 GPU 上运行(例如,带有 Mali T604 的 Nexus10)。文档:http:
//developer.android.com/reference/android/renderscript/ScriptIntrinsic.html
当然,您可以决定使用 OpenCL,但 Renderscript 保证(由 Google,作为 Android 本身的一部分)即使在不支持 GPGPU 计算的硬件上也能运行,并且将使用硬件支持的任何其他可用加速手段。继续运行。
有多种选择: 您可以使用几乎所有设备都支持的 OpenGL ES 2.0,但 GPGPU 的功能有限。您可以使用 OpenGL ES 3.0,使用它可以在 GPU 处理方面做更多的事情。或者您可以使用 RenderScript,但这是特定于平台的,而且不会对您的算法是在 GPU 上运行还是在 CPU 上运行产生任何影响。关于这个主题的总结可以在这篇硕士论文中找到:Parallel Computing for Digital Signal Processing on Mobile Device GPUs。
您还应该查看ogles_gpgpu,它允许在 Android 和 iOS 上通过 OpenGL ES 2.0 进行 GPGPU。