Renderscript

科技工作者之家 2020-11-17

RenderScript是用于移动设备的Android操作系统的一个组件,它提供了一个利用异构硬件加速的API。 它允许开发人员以编写更复杂(更低级别)的代码为代价来提高应用程序的性能。

它为开发人员提供了三个主要工具:一个简单的3D渲染API,一个类似于CUDA的计算API和一个C99派生语言。

历史RenderScript是在Android 3.0 Honeycomb中添加的。从Android 4.1开始,Renderscipt的实验性3D渲染API已被弃用,仅作为计算API存在。

Android 4.2增加了新功能来编写内部函数,例如Blend和Blur; 以及允许您链接相关RenderScript脚本并通过一次调用执行它们的ScriptGroups。

最近,谷歌添加了FilterScript,它是RenderScript的一个子集,允许开发人员使用标准的RenderScript运行时API在FilterScript中编写图像处理操作,但在更严格的约束条件下确保更广泛的兼容性并改进跨多核CPU,GPU, 和DSP。 FilterScript在数字数据类型精度方面不够精确,并且与RenderScript有更多跨设备兼容的子集 - 不应该被误认为RenderScript替代技术1。

特征可移植性无论硬件类型如何,RenderScript都可以在各种Android平台上运行。性能调整在运行时完成。

RenderScript可移植性取决于特定于设备的驱动程序:[3]为每个设备提供基本的仅CPU驱动程序,同时存在一些特定的芯片组提供的RenderScript驱动程序,用于启用GPU使用(例如,Qualcomm特定的驱动程序,这些驱动程序在libRSDriver_adreno .so Android库)。

性能RenderScript设计用于在运行时调整任务,可以在底层硬件上高效地分割和同时运行。从Android 4.2开始,除了支持的系统上的CPU,RenderScript已经扩展到GPU上运行。

局限性RenderScript还不能表示片上线程间通信(OpenCL中的本地内存,以及CUDA中的共享内存)RenderScript不能用双线性插值(在CUDA中称为纹理,在OpenCL中读取图像)表示硬件实现的2D和3D查找。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。