ARM GPU 的使用率计算公式如下,
JM.GPU_UTILIZATION = JM.GPU_ACTIVE / GPU_MHZ
不包含垂直同步的应用程序,可以流水线化处理。这种情形,GPU 的利用率应该可以达到 98%。如果没有达到,有可能是以下情形,
-
开启了垂直同步时
- GPU 做完了当前帧的渲染后需要等待下一个垂直同步信号的到来才能渲染下一帧
-
CPU 是性能瓶颈时
-
硬件流水线被打断时
-
帧级别的打断
-
glReadPixels()
-
glFinish()
-
-
API 级别的打断
-
glClientWaitSync()
-
glWaitSync()
-
glGetQueryObjectuiv()
-
-
需要注意,很多设备是支持动态电压和频率调节(DVFS)的。也就是说,GPU 的频率会经常变化。建议在进行性能分析和统计的时候,将 CPU、GPU 和显存的频率设置成一个固定的值,关闭动态调节功能。
网友评论