有没有一种好方法可以验证用renderscript编写的算法是CPU还是GPU绑定的?
我知道这个决定是在设备上运行的,但是,我发现Nexus 5和Nexus 10设备上的跟踪信息不一致。 Nexus 10 logcat吐出信息说该算法被移回CPU(如果GPU无法处理内核),而Nexus 5上没有这样的跟踪(据我所见)。
一种显而易见但不太精确的方法是使用基于rs的算法的执行时间来解决上述问题。
然而,最近,当我开始在Nexus 5上测试我的脚本时,我看到在Nexus 10上运行在GPU上的算法,现在 APPEAR 在Nexus 5上的CPUS上运行。我会比较确切地证实这一点。
可以想象为什么这可能是一个问题。如果有人打算构建一个应用程序,该应用程序可以在同一类设备上提供类似的性能(四核,足够好的GPU - Mali6xx,Adreno3xx),那么这些类设备的性能将不可靠,因为算法GPU的好处可能会在CPU上表现不佳
答案 0 :(得分:1)
Nexus 5和Nexus 10具有不同的GPU(因此由完全不同的软件团队编写的不同GPU驱动程序)。它们不会很好地加速相同类型的代码,因为它们是非常不同的架构。我们正试图从这些驱动程序中获得一致的日志记录,但很长一段时间内都不会有公开更新(因为我们不经常为AOSP推出新的GPU驱动程序)。