• iTOPiMX6UL开发板动态调频技术文档分享


    本文档以 iMX6UL 为例,简单介绍 cpufreq 的 5 种模式。

    在 imx6ul 的 menuconfig 中,进入

    CPU Power Management --->

    CPU Frequency scaling --->

    Default CPUFreq governor (ondemand) --->

    中,如下图所示,可以看到有 5 个选项。 这 5 个选项,可以将 cpu 的频率设置为不同的

    管理模式,默认设置的是 ondemand 模式。

     

    cpufreq 是一个动态调整 cpu 频率的模块,系统启动时会生成

    “/sys/devices/system/cpu/cpu0/cpufreq/ ”,如下图所示,是 imx6ul 文件上的

    cpufreq 文件夹。

     

    以上参数可以通过 cat 命令,例如:

    “cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”可以获取当前

    CPU 频率的模式。作者机器当前模式是“ondemand”,也就是动态调频模式。

     

    其它参数:

    cpuinfo_cur_freq 为当前频率;

    cpuinfo_max_freq 为最大频率;

    scaling_min_freq 为最小频率;

    scalin_governor 为当前模式。

    在动态调频模式下,state 下的 time_in_state 可以查询 cpu 整个运行周期中,在不同频

    率下运行时间的比例。

    以下简单介绍各种模式,用户可以根据需求,在不同模式下运行。

    performance 模式:将 CPU 频率固定工作在其支持的最高运行频率上,而不动态调节。

    powersave 模式:将 CPU 频率固定在“省电”模式,也就是最低频率。

    以上两种,一种是极端效率,一种是极端低功耗。

    Userspace 模式:用户可以在用户态调整频率,用户在应用或者在系统启动阶段,可以进

    入这种模式,来设置频率。

    ondemand 模式:这种模式会依据需求来调整频率,例如 ul 有三种频率:198000、

    396000 和 528000,在有大量计算量的情况下,会立即达到最高频率,在运算完成就会立即

    回到最低频率。

    conservative 模式:和 ondemand 对比,这种模式下,系统会平滑地调整 CPU 频率,

    频率的升降是渐变式的,而不是在大量计算到来就立即进入最高频率。

    接着可以尝试配置这几种模式,验证一下。

    测试 Userspace 模式,使用“echo userspace >

    /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”命令可以进入 Userspace 模

    式,这样就可以在用户态调整频率,使用命令“echo 528000 >

    /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed”可以配置为 528000,如下图

    所示。

     

    测试 powersave 模式,使用命令“echo powersave >

    /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”配置为最低功耗模式。然后

    就能发现频率降低到最低。

     

    测试 performance 模式,使用命令“echo performance >

    /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”,如下图所示。配置为最高

    频率模式,理所当然频率九尾最高 528000 了。

     

    测试下 ondemand 动态调频模式,如下图所示,可以使用命令“cat

    /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state”查看各种频率运行占用的时

    间长度。作者因为调整过多次频率,528000 看起来比例较高,实际上默认这种系统,不运行

    程序,大部分时间都是 198000 频率。

     
     
  • 相关阅读:
    第四周:卷积神经网络 part3
    第四周作业:卷积神经网络学习part3
    视频学习--《 图像语义分割前沿进展》
    视频学习--《语义分割中的自注意力机制和低秩重建》
    第二次作业:卷积神经网络 part 1
    使用VGG模型迁移学习进行猫狗大战
    使用 VGG16 对 CIFAR10 分类
    CIFAR10 数据集分类
    MNIST数据集分类
    第一次作业:深度学习基础
  • 原文地址:https://www.cnblogs.com/liyue3/p/10818446.html
Copyright © 2020-2023  润新知