是否有任何 Android 设备在 GPU 而不是 CPU 上执行渲染脚本,或者这还没有在任何地方实现?
6 回答
我无法确认 Google 的任何官方文档,但我每天都在使用 RenderScript,每次运行它时,我都会看到 logcat 报告在我的设备中加载图形芯片的驱动程序,尤其是 Tegra 2。Google 确实落后了记录 RenderScript,如果他们在讨论中没有纠正这个遗漏,我一点也不感到惊讶。
目前 Renderscript 的计算端只能在 CPU 上运行:
目前,计算 Renderscripts 只能利用 CPU 内核,但在未来,它们可能会在其他类型的处理器上运行,例如 GPU 和 DSP。
Renderscript 的图形端位于 OpenGL ES 之上,因此着色器将在 GPU 上运行。
ARM 的 Mali-T604 GPU 将为 Renderscript 的计算端提供目标(在未来的 Android 版本中?)(请参阅ARM 博客条目)。
RenderScript 的设计使其在 GPU 上运行。这是添加新语言的主要目的。我假设由于缺乏支持,它在 CPU 上运行的设备,但在大多数设备上,它在 GPU 上运行
我认为这可能取决于您是在进行图形操作还是计算操作。图形操作可能会在 GPU 上执行,但据我所知,计算操作不会。
当您使用 forEach 构造时,计算将在 CPU 上的多个线程中运行,而不是 GPU(您可以在 ICS 源代码中看到这一点)。在未来的版本中,这可能会改变(参见https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf),但我还没有看到任何公告。
目前,似乎只有 Nexus 10支持Renderscript GPU 计算。