RenderScript es un componente obsoleto del sistema operativo Android para dispositivos móviles que ofrece una API de aceleración que aprovecha la heterogeneidad del hardware. Permite a los desarrolladores aumentar el rendimiento de sus aplicaciones a costa de escribir código más complejo (de bajo nivel).
Proporciona al desarrollador tres herramientas principales: una API de renderizado 3D sencilla, una API de cómputo similar a CUDA y un lenguaje derivado de C99 .
Historia
RenderScript se agregó en Android 3.0 Honeycomb . [ 1 ]
A partir de Android 4.1, la API de renderizado 3D experimental de RenderScript ha quedado obsoleta y ahora existe únicamente como una API de cómputo.
Android 4.2 añadió nuevas capacidades a las funciones intrínsecas de script, como Blend y Blur ; así como ScriptGroups , que permite agrupar y ejecutar scripts RenderScript relacionados con una sola llamada. También añadió FilterScript, un subconjunto de RenderScript que permite a los desarrolladores escribir sus operaciones de procesamiento de imágenes en FilterScript utilizando la API de tiempo de ejecución estándar de RenderScript, pero con restricciones más estrictas que garantizan una mayor compatibilidad y una mejor optimización en CPU multinúcleo , GPU y DSP . FilterScript es menos preciso en cuanto a precisión de punto flotante y es un subconjunto de RenderScript con mayor compatibilidad entre dispositivos ; no debe confundirse con una tecnología que reemplace a RenderScript. [ 2 ]
El 19 de abril de 2021, Google anunció que RenderScript quedará obsoleto en Android 12 y recomendó portar el código existente a Vulkan . [ 3 ]
Características
Portabilidad
RenderScript está diseñado para ejecutarse siempre en las distintas plataformas Android, independientemente del tipo de hardware. La optimización del rendimiento se realiza en tiempo de ejecución.
La portabilidad de RenderScript depende de los controladores específicos del dispositivo: [ 4 ] se proporciona un controlador básico solo para CPU para cada dispositivo, mientras que existen algunos controladores RenderScript específicos proporcionados por el chipset que permiten el uso de la GPU (por ejemplo, controladores específicos de Qualcomm, que se proporcionan en la libRSDriver_adreno.sobiblioteca de Android).
Actuación
RenderScript está diseñado para ajustar tareas en tiempo de ejecución que se pueden dividir de manera eficiente y ejecutar simultáneamente en el hardware subyacente. [ 5 ]
A partir de Android 4.2, RenderScript se ha ampliado para ejecutarse en la GPU además de la CPU en los sistemas compatibles. [ 6 ]
Limitaciones
- RenderScript aún no puede expresar la comunicación entre hilos en el chip (conocida como memoria local en OpenCL y memoria compartida en CUDA).
- RenderScript aún no puede expresar búsquedas 2D y 3D implementadas por hardware con interpolación bilineal (conocida como textura en CUDA y lectura de imagen en OpenCL).
Referencias
- ↑ "Panal de abejas" .
- ↑ "API de Android 4.2" . Consultado el 20 de marzo de 2013 .
- ↑ "Android GPU Compute Going Forward" . Blog de desarrolladores de Android . Consultado el 19 de abril de 2021 .
- ↑ Marchetti, Alberto (2016). RenderScript: computación paralela en Android, la forma más sencilla (1.ª ed.). Archivado del original el 25 de agosto de 2016. Consultado el 5 de julio de 2016 .
- ↑ "Renderscript Parte 2" .
- ↑ "Jelly Bean - Rendimiento del script de renderizado" . Consultado el 27 de noviembre de 2012 .
Enlaces externos
- Página de desarrolladores de Google
- Presentamos Renderscript
- Renderscript Parte 2
- Google detalla la API de Renderscript de bajo nivel para Honeycomb.
- Vídeo: Aprende sobre RenderScript con Romain Guy y Chet Haase. Archivado el 9 de agosto de 2011 en Wayback Machine.
- Guía para configurar Renderscript en Android Studio
- Android (sistema operativo)
- Bibliotecas GPGPU