Is it possible to program GPU for Android

11,586

Solution 1

2021-April Update

Google has announced deprecation of the RenderScript API in favor of Vulkan with Android 12.

The option for manufacturers to include the Vulkan API was made available in Android 7.0 Compatibility Definition Document - 3.3.1.1. Graphic Libraries.

Original Answer

Actually Renderscript Compute doesn't use the GPU at this time, but is designed for it

From Romain Guy who works on the Android platform:

  • Renderscript Compute is currently CPU bound but with the for_each construct it will take advantage of multiple cores immediately
  • Renderscript Compute was designed to run on the GPU and/or the CPU
  • Renderscript Compute avoids having to write JNI code and gives you architecture independent, high performance results
  • Renderscript Compute can, as of Android 4.1, benefit from SIMD optimizations (NEON on ARM)

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

Solution 2

yes , it is possible .

you can use either renderscript or opengGL ES 2.0 .

renderscript is available on android 3.0 and above , and openGL ES 2.0 is available on about 95% of the devices.

Solution 3

As of Android 4.2, Renderscript can involve GPU in computations (in certain cases). More information here: http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html

As I understand, ScriptIntrinsic subclasses are well-optimized to run on GPU on compatible hardware (for example, Nexus10 with Mali T604). Documentation: http://developer.android.com/reference/android/renderscript/ScriptIntrinsic.html

Of course you can decide to use OpenCL, but Renderscript is guaranteed (by Google, being a part of Android itself) to be running even on hardware which doesn't support GPGPU computation and will use any other available acceleration means supported by hardware it is running on.

Solution 4

There are several options: You can use OpenGL ES 2.0, which is supported by almost all devices but has limited functionality for GPGPU. You can use OpenGL ES 3.0, with which you can do much more in terms of GPU processing. Or you can use RenderScript, but this is platform-specific and furthermore does not give you any influence on whether your algorithms run on the GPU or the CPU. A summary about this topic can be found in this master's thesis: Parallel Computing for Digital Signal Processing on Mobile Device GPUs.

You should also check out ogles_gpgpu, which allows GPGPU via OpenGL ES 2.0 on Android and iOS.

Share:
11,586

Related videos on Youtube

Timothy
Author by

Timothy

Updated on September 15, 2022

Comments

  • Timothy
    Timothy almost 2 years

    I am now programming on Android and I wonder whether we can use GPGPU for Android now? I once heard that Renderscript can potentially execute on GPGPU in the future. But I wonder whether it is possible for us to programming on GPGPU now? And if it is possible for me to program on the Android GPGPU, where can I find some tutorials or sample programs? Thank you for your help and suggestions.

    Up till now I know that the OpenGL ES library was now accelerated use GPU, but I want to use the GPU for computing. What I want to do is to accelerate computing so that I hope to use some libraries of APIs such as OpenCL.

  • Timothy
    Timothy almost 12 years
    So I can use renderscript to program on GPU now, just as CUDA on PCs? Thank you and I will try to learn renderscript.
  • android developer
    android developer almost 12 years
    good luck . there are also some videos and tutorials about it , but i think they are not enough . wish there was much more info in order for developers to create amazing stuff.
  • Timothy
    Timothy almost 12 years
    Thank you and I am now trying to use it. I do not know whether Renderscript will meet my need yet, but I will try it. I am really confused because many people told me it works while other told me it does not.
  • Morrison Chang
    Morrison Chang almost 12 years
    Its only available on 3.0 and above devices. You still didn't explain what your are trying to do (image processing, graphics computation, other).
  • swcai
    swcai over 11 years
    Renderscript is lack of documentation. But I heard in Nexus 4 and Nexus 10, RenderScript is using GPU to accelerate the computation. And my question is if you want to use GPGPU, why you should invest on RenderScript? It is only for Android. OpenCL is the direction but not really ready on Android and IOS6. OpenGLES 2.0 is the good candidate for your use.
  • Morrison Chang
    Morrison Chang over 11 years
    If you know OpenGL ES 2.0 do it there, but if you don't want to think about vertex arrays, textures and the shader pipeline, Renderscript simplifies the entry points for a 'average' programmer to use the CPU/GPU. Compared with OpenCL, Renderscript is simpler. How many lines of code does it take to setup a OpenCL compute kernel? I agree though on the lack of documentation and the Android only nature is holding it back.
  • IsaacKleiner
    IsaacKleiner over 9 years
    Why the down-vote? I see no possible reason for this.