CPU和GPU频率的查看及设置

在嵌入式设备中为了降低功耗防止芯片发热,厂商一般默认都将cpu和gpu频率为最小,为了提高性能,减少算法耗时需要手动将cpu或者gpu频率设到性能模式。
查看gpu频率
    cat /sys/class/devfreq/gpufreq/cur_freqcat /sys/class/devfreq/gpufreq/max_freq  
cpu相关节点路径/sys/devices/system/cpu/cpu0/cpufreq
                        cpuinfo_cur_freq 当前cpu正在运行的工作频率cpuinfo_max_freq 该文件指定了处理器能够运行的最高工作频率cpuinfo_min_freq 该文件指定了处理器能够运行的最低工作频率cpuinfo_transition_latency 该文件定义了处理器在两个不同频率之间切换时所需要的时间(单位:ns)scaling_available_frequencies 所有支持的主频率列表scaling_available_governors 该文件显示当前内核中支持的所有cpufreq governor类型scaling_cur_freq cpu当前运行的主频率,governor和cpufreq核决定的scaling_driver 该文件显示该cpu正在使用何种cpufreq driverscaling_governor 通过echo命令,能够改变当前处理器的governor类型scaling_max_freq 显示policy的上限.当改变cpu policy时,需要首先设scaling_max_freqscaling_min_freq 显示policy的下限scaling_setspeed governor为“userspace”,可设置cpu主频率值。值在scaling_min_freq和scaling_max_freq之间。  
cpu的性能模式设置
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor,  
一般cpu都有多个核,需要手动开启每个核的性能模式
    echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governorecho performance > /sys/devices/system/cpu/cpux/cpufreq/scaling_governor x为cpu的核数
gpu的性能模式设置
  echo performance > /sys/class/devfreq/ff9a0000.gpu/governor 每款芯片的上面红色的gpu数字都不一样,一般都是位于 /sys/class/devfreq/目录下
设置cpu的核心数
在/sys/devices/system/cpu目录下可以看到你的cpu有几个核心,如果是双核,就是cpu0和cpu1,如果是四核,还会加上cpu2和cpu3。随便进一个文件夹,比如cpu1,里面有个online文件。我们可以用cat命令查看该文件的内容:
  cat /sys/devices/system/cpu/cpu1/online  
这个文件只有一个数字,0或1。0表示该核心是offline状态的,1表示该核心是online状态的。所以,如果你想关闭这个核心,就把online文件的内容改为“0”;如果想打开该核心,就把文件内容改为“1”。
    echo 0 > /sys/devices/system/cpu/cpu0/online #关闭该cpu核心echo 1 > /sys/devices/system/cpu/cpu0/online #打开该cpu核心  
查看当前cpu支持的频率档位
    #cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies1800000 1767000 1734000 1700000 1667000 1633000 1533000 1466000 1400000 1308000 1216000 1125000 1056000 987000 918000 850000  
查看当前支持的governor
                  # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorsschedplus ondemand userspace powersave interactive performance//1.performance 注重效率,将cpu频率固定工作在其支持的最高运行频率上,而不动态调节。//2.powersave 注重节能,将cpu会固定工作在其支持的最低运行频率上,而不动态调节。//3.userspace 最早的cpufreq 子系统通过userspace governor为用户提供了这种灵活性。系统将变频策略的决策权交给了用户,提供了相应的接口。长期以来都在用的模式,可以通过手动编辑配置文件进行配置。//4.ondemand 定期检查负载,当cpu负荷超越了阈值,会立即达到最大频率运行。执行完毕立即回到最低频率;userspace是内核态的检测,用户态调整,效率低。而ondemand是完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的governor。在ondemand governor监测到系统负载超过 up_threshold 所设定的百分比时,说明用户当前需要 cpu 提供更强大的处理能力,因此 ondemand governor 会将cpu设置在最高频率上运行。当 ondemand governor 监测到系统负载下降,可以降低 cpu 的运行频率时。ondemand governor 的最初实现是在可选的频率范围内调低至下一个可用频率,例如 cpu 支持三个可选频率,分别为 1.67ghz、 1.33ghz 和 1ghz ,如果 cpu 运行在 1.67ghz 时 ondemand governor 发现可以降低运行频率,那么 1.33ghz 将被选作降频的目标频率。//5.interactive 动态调节,检测时间是20ms,延迟20ms,一次调整周期40ms。//6.schedplus 动态调节,调频时间是1ms//7.conservative 该模式与ondemand的最大区别在于,conservative模式不会立刻在负载增加的情况下将cpu频率调整到最大,他会调整到比目前频率稍微大的频段去工作,某些情况下,该模式的延迟会大于ondemand。  
查看当前选择的governor
    #cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorschedplus  
查看系统支持多少核数
    # cat sys/devices/system/cpu/present0-3  
全开所有cpu
    //逐个echo 1 > cpu 0-3#echo 1 > /sys/devices/system/cpu/cpu1/online  
设置cpu的频率
首先要修改governor的模式,但在修改前需要查下cpu支持哪些governor的模式
  cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors  
  #echo 850000 > sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  
将模式调整为performance
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  
对cpu的频率进行修改,cpu的频率不是可以任意设置的,需要查看scaling_available_frequencies文件,看cpu支持哪些频率
  cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies  
频率是以khz为单位的,准备将cpu0设置为1.416ghz,那就将1416000写入scaling_setspeed即可
  echo 1416000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed  
查看当前这个核心的频率
  cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq  
设置cpu的最大和最小频率
    echo 1800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq #设置最大频率echo 312000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq #设置最小频率


一种可用于单片机的中断高效处理与事件机制方法
盘点北斗智联2021年感动时刻
善睐物联:消费级路由器——让家庭网络更快速稳定的选择
PI将为半导体集成化发展提供“源”动力
罗姆开发出符合ISO 26262车载摄像头模块的电源管理IC
CPU和GPU频率的查看及设置
做手机的华为竟然要开始养猪?
飞利浦将与雷蛇合作,实现家庭照明氛围与游戏体验的同步
三星,苹果依旧是全球前两大半导体芯片买家 前10中有三家中国公司
机器人对齐电极臂前的执行步骤
74hc573在应用电路作用解析 74hc573驱动数码管动态扫描
海尔集团董事局主席周云杰:执一不失,开创未来
网络家电成为家庭娱乐的一种新趋势
苹果13支持低轨道卫星通讯
镍镉电池放电反应式_镍镉电池完全放电的电路
利用无线接口实现LED线性调光驱动器的控制
铅酸电池企业的锂电池业务主要遭遇了哪些发展困境?
DC/DC评估篇损耗探讨-电源IC的功率损耗计算示例
魅族Pro7什么时候上市?魅族Pro7最新消息:魅族Pro7外观创新全面升级,魅族Pro7跑分曝光性能强悍
新智元与极客邦科技合作打造百万级产业服务平台,共推人工智能生态发展