我现在在Android上编程,我想知道我们现在是否可以使用GPGPU for Android?我曾经听说Renderscript将来可能会在GPGPU上执行。但我想知道我们现在是否有可能在GPGPU上进行编程?如果我可以在Android GPGPU上编程,我在哪里可以找到一些教程或示例程序?感谢您的帮助和建议。
到目前为止,我知道OpenGL ES库现在已加速使用GPU,但我想使用GPU进行计算。我想做的是加速计算,以便我希望使用一些API库,如OpenCL。
答案 0 :(得分:9)
实际上Renderscript Compute目前还没有使用GPU,但它是专门为它设计的。
来自在Android平台上工作的Romain Guy:
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。