有没有一种好的方法来验证在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上表现不佳。
我知道这个决策是在设备上运行时做出的,但是,在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上表现不佳。