如何验证 Android 手机是否支持 GPU RenderScript?

4
有没有一种好的方法来验证在RenderScript中编写的算法是CPU绑定还是GPU绑定?
我知道这个决策是在设备上运行时做出的,但是,在Nexus 5和Nexus 10设备上,我看到了不一致的跟踪信息。 Nexus 10 logcat会输出信息,表示该算法被移回到CPU(如果GPU无法处理内核),而在Nexus 5上没有这样的跟踪信息(据我所见)。
一个明显但不太精确的方法是使用rs基于算法的执行时间来解决上述问题。
然而,最近当我开始在Nexus 5上测试我的脚本时,我发现在Nexus 10上运行在GPU上的算法现在似乎在Nexus 5上运行在CPU上。我想更精确地确认这一点。
可以想象为什么这可能是一个问题。如果有人希望构建一个应用程序,该应用程序预期在同一类设备(四核,足够好的GPU-Mali6xx,Adreno3xx)上提供类似的性能,则这些类设备间的性能将不可靠,因为受益于GPU的算法可能在CPU上表现不佳。

我认为JellyBean 4.2与RenderScript集成,因此您可以根据设备上的Android版本进行检测。 - mohammed momn
1个回答

1
Nexus 5和Nexus 10有不同的GPU(因此由完全不同的软件团队编写的不同GPU驱动程序)。它们不会很好地加速相同类型的代码,因为它们是非常不同的架构。我们正在尝试从这些驱动程序中获取一些一致的日志记录,但是公共更新需要相当长的时间(因为我们不经常为AOSP推出新的GPU驱动程序)。

好的。只要在内核交接和CPU与GPU之间有一致的调试消息和错误消息,我的担忧就得到了解决。我认为在特定情况下,我已经找到了一种证明Nexus 5确实具有GPU rs加速的方法。 - Mahesh Renduchintala

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