Android的RenderScript能在GPU上运行吗?

15

有没有任何 Android 设备在其中 renderscript 在 GPU 上执行而不是 CPU,或者这是尚未在任何地方实现的东西?

6个回答

9
从JellyBean 4.2开始,renderscript有了直接的GPU集成。请参见这个这个链接。

更详细的信息和性能比较可以在这里找到:http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html - keaukraine
具体而言,在Android 4.2中引入了一个新的概念FilterScript。FilterScripts比RenderScripts更加受限,并可能在GPU上运行。但是,它是否实际在GPU上运行将由供应商支持决定。 - Sid Datta

3

我无法通过任何官方文档确认谷歌的情况,但是我每天都在使用RenderScript,并且每次运行时,我都会看到logcat报告加载我的设备中图形芯片的驱动程序,特别是Tegra 2。谷歌在记录RenderScript方面确实落后了,并且如果他们没有在讨论中纠正这个遗漏,我一点也不感到惊讶。


1
我们有一台 Motorola Xoom(Tegra 2)、一台 Samsung Galaxy Tab 7.0+(Mali-400MP)、Galaxy Nexus(SGX540)和一台 Galaxy S(Snapdragon),我们会在这些设备上测试 RenderScript 代码。尽管出于某些点精灵问题,通常我最经常在 Xoom 上进行测试,因为它通常是限制因素。如果您指的是该项目,它是我们内部项目中的通用图形引擎。 - Jared
没问题,我很乐意在我力所能及的范围内帮助你,特别是在RenderScript方面。 - Jared

2

目前,Renderscript的计算部分只能在CPU上运行:

目前,计算Renderscripts只能利用CPU核心,但未来可能会在其他类型的处理器上运行,例如GPU和DSP。

引自Renderscript开发指南

Renderscript的图形部分位于OpenGL ES之上,因此着色器将在GPU上运行。

ARM的Mali-T604 GPU将为Renderscript的计算部分提供目标(在未来的Android版本中?)(请参见ARM博客文章)。


1

1
RenderScript 的设计是为了在 GPU 上运行。这是添加新语言的主要目的。我假设有些设备由于缺乏支持而在 CPU 上运行,但在大多数设备上它都在 GPU 上运行。

这是不正确的。从Ice Cream Sandwich和Jelly Bean开始,Renderscript只在CPU上运行。谷歌没有添加任何GPU支持。但是,意图是让Renderscript代码在GPU和CPU上执行。 - codetwiddler

1

我认为这可能取决于您是进行图形还是计算操作。据我所知,图形操作将在GPU上执行,但计算操作不会。

当您使用forEach结构时,计算将在CPU上的多个线程中运行,而不是GPU(您可以在ICS源代码中看到这一点)。在未来的版本中,这可能会改变(请参见https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf),但我没有看到任何公告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接