2012-06-10 10 views

Respuesta

9

A partir de JellyBean 4.2 hay una integración directa de GPU para renderscript. Ver this y this.

+0

Se puede encontrar información más detallada con la comparación del rendimiento aquí: http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html – keaukraine

+0

Para ser específico, en Android 4.2 un nuevo concepto FilterScript era introducido. FilterScripts son RenderScripts más limitados y posiblemente se pueden ejecutar en GPU. Sin embargo, si se ejecuta realmente en la GPU será decidido por el soporte del proveedor. –

3

No puedo confirmar con ninguna documentación oficial para Google, pero trabajo con RenderScript todos los días y cada vez que lo ejecuto, veo el informe de logcat cargando controladores para chips gráficos en mis dispositivos, especialmente Tegra 2. Google realmente ha quedado rezagado en la documentación de RenderScript, y no me sorprendería en absoluto si simplemente no hubieran corregido esta omisión en su discusión.

+0

Gracias, ¿puedo preguntar en qué estás trabajando (solo curiosidad)? – fhucho

+1

Tenemos un Motorola Xoom (Tegra 2), un Samsung Galaxy Tab 7.0+ (Mali-400MP), un Galaxy Nexus (SGX540) y un Galaxy S (Snapdragon) en los que probamos el código RenderScript, aunque el Xoom es lo que más utilicé. a menudo prueba porque suele ser el factor limitante debido a algunos problemas de Sprite con el Tegra 2. Si se refería al proyecto, es un motor de gráficos de propósito general para algunos de nuestros proyectos internos. – Jared

+0

¡Gracias, buena suerte con el proyecto! – fhucho

1

El diseño de RenderScript es para que se ejecute en la GPU. Este fue el propósito principal de agregar el nuevo idioma. Supongo que hay dispositivos donde se ejecuta en la CPU debido a la falta de soporte, pero en la mayoría de los dispositivos se ejecuta en la GPU

+0

Esto es incorrecto. A partir de Ice Cream Sandwich y Jelly Bean, Renderscript se ejecuta solo en la CPU. Google no ha agregado ningún soporte de GPU. Pero sí, la intención es que el código Renderscript se ejecute en la GPU y la CPU. – codetwiddler

1

Creo que esto puede depender de si está haciendo gráficos o operaciones de cálculo. Es probable que las operaciones gráficas se ejecuten en la GPU, pero las operaciones de cómputo no llegarán a lo que yo entiendo.

Cuando utiliza la construcción forEach, el cálculo se ejecutará en varios subprocesos en la CPU, no en la GPU (puede ver esto en el código fuente de ICS). En versiones futuras esto puede cambiar (vea https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf) pero no he visto ningún anuncio.

2

Actualmente el lado de cómputo de renderScript sólo se ejecutará en la CPU:

Por ahora, calcular Renderscripts sólo puede tomar ventaja de núcleos de CPU, pero en el futuro, que potencialmente se puede ejecutar en otros tipos de procesadores como GPU y DSP.

Tomado de Renderscript dev guide.

El lado de los gráficos de Renderscript se encuentra en la parte superior de OpenGL ES para que los sombreadores se ejecuten en la GPU.

La GPU Mali-T604 de ARM proporcionará un objetivo para el lado de procesamiento de Renderscript (en una futura versión de Android?) (Vea ARM Blog entry).

Cuestiones relacionadas