DVFS(Dynamic Voltage And Frequency Scaling)动态电压和频率调节,这里主要研究GPU频率动态的调节。
和CPU采用cpufreq框架动态调节频率类似,GPU这块采用了Linux devfreq框架。
Devfreq有四种对频率的管理策略governor:
1、 performance:GPU会固定工作在其支持的最高频率上,以追求最高性能。
2、 powersave:GPU会固定工作在其支持的最低频率上,以追求最低的功耗。
3、 userspace:早期的管理策略,系统将变频策略的决策交给了用户态应用程序,并提供相应的接口供其使用。
4、 ondemand:userspace 是用户态的检测,效率低,而 ondemand 则是一个完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的 governor 。
Devfreq只提供了实现变频的框架,只是机制,而具体如何决定变频的策略则是各硬件厂商根据其硬件特性来决定的。
Qualcomm的GPU则使用的是他们自己的governor:msm-adreno-tz,他和ondemand有点相似,是在内核态根据GPU的负载来动态决定如何变频的。