是否可以为Android编程GPU

时间:2012-09-09 05:52:03

标签: android gpu renderscript

我现在在Android上编程,我想知道我们现在是否可以使用GPGPU for Android?我曾经听说Renderscript将来可能会在GPGPU上执行。但我想知道我们现在是否有可能在GPGPU上进行编程?如果我可以在Android GPGPU上编程,我在哪里可以找到一些教程或示例程序?感谢您的帮助和建议。

到目前为止,我知道OpenGL ES库现在已加速使用GPU,但我想使用GPU进行计算。我想做的是加速计算,以便我希望使用一些API库,如OpenCL。

4 个答案:

答案 0 :(得分:9)

实际上Renderscript Compute目前还没有使用GPU,但它是专门为它设计的。

来自在Android平台上工作的Romain Guy:

  • Renderscript Compute目前受CPU限制,但使用for_each构造,它将立即利用多个核心
  • Renderscript Compute旨在在GPU和/或CPU上运行
  • Renderscript Compute避免了编写JNI代码并为您提供独立于架构的高性能结果
  • 从Android 4.1开始,Renderscript Compute可以受益于SIMD优化(ARM上的NEON)

https://groups.google.com/d/msg/android-developers/m194NFf_ZqA/Whq4qWisv5MJ

答案 1 :(得分:3)

是的,有可能。

您可以使用renderscript或opengGL ES 2.0。

renderscript在Android 3.0及更高版本上可用,而openGL ES 2.0在约95%的设备上可用。

答案 2 :(得分:3)

从Android 4.2开始,Renderscript可以在计算中涉及GPU(在某些情况下)。 更多信息请访问:http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html

据我所知,ScriptIntrinsic子类经过优化,可在兼容硬件上的GPU上运行(例如,Nexus10与Mali T604)。文档: http://developer.android.com/reference/android/renderscript/ScriptIntrinsic.html

当然你可以决定使用OpenCL,但是Renderscript保证(由Google自己作为Android本身的一部分)甚至在不支持GPGPU计算的硬件上运行,并且将使用任何其他可用的加速方式支持它正在运行的硬件。

答案 3 :(得分:1)

有几种选择:您可以使用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。