系统gpu 调试_Android平台CPU和GPU锁频绑核测性能方法

做深度学习算法在Android平台部署的时候会涉及到性能测试的工作。

主要是测试CPU和GPU运行算法的耗时。

但是Android系统有一套频率调节的策略,如果不配置一下,会导致测试结果受到SOC频率变化的影响,从而不能得到稳定的结果。

本文简单记录一下配置的方法。

预置条件
首先要将手机解锁,取得root权限,然后执行adb root以root模式打开adb shell。

CPU测试
先锁定CPU的频率。执行如下命令:

echo userspace > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
这里是把大核簇的cpu频率调整策略切换成用户自定义模式。

现在主流手机CPU一般是8核心:4个大核4个小核。Android系统采用分簇管理的方式,/sys/devices/system/cpu/cpufreq/policy4里管理的是4,5,6,7四个大核心的控制策略,/sys/devices/system/cpu/cpufreq/policy0里对应是0,1,2,3四个小核心。

接下来就可以手动设置频率:

echo 1920000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_setspeed
这里的1920000是cpu支持的频率之一,cpu支持哪些频率可以通过如下命令查看:

cat  /sys/devices/system/cpu/cpufreq/policy4/scaling_available_frequencies
这里如果设置比较高的频率的话,还是会自动降低频率,考虑可能是触发了温度保护。

到这里就完成了CPU频率锁定。

然后可以把编译好的可执行文件推送到手机中运行,运行时通过如下命令来绑定大核:

taskset -a f0 benchmark.out
f0是mask,代表大核心,-a指定所有子线程也遵从taskset的设定。

可以使用top命令来检查绑核的结果

top -H -O CPU -p <进程号>
GPU测试
GPU的信息在如下目录查看:/sys/class/kgsl/kgsl-3d0

这里直接引用另一篇博文的内容,里面还介绍了一些cpu&gpu的配置细节,更详细的可链过去看。

https://blog.csdn.net/u010126792/article/details/70186190​blog.csdn.net
锁定GPU频率要执行下面四个步骤:

echo 1 >/sys/class/kgsl/kgsl-3d0/force_clk_on
echo 10000000 >/sys/class/kgsl/kgsl-3d0/idle_timer
echo performance >/sys/class/kgsl/kgsl-3d0/devfreq/governor
echo 710000000  > /sys/class/kgsl/kgsl-3d0/gpuclk
1、echo 1 > force_clk_on是设置KGSL_PWRFLAGS_CLK_ON这个power_flags。使用echo freq > gpuclk时,是通过kgsl_pwrctrl_pwrlevel_change设置频率,它会判断KGSL_PWRFLAGS_CLK_ON这个power_flags,如果没有这个flag,可能就不会真正的设置频率。
2、echo 10000000 > idle_timer,,设置interval_timeout,默认值是80ms。当系统启动的时候,在governorrestart的过程中,会重新初始化GPU所对应的频率,这样即使我们设置了我们想要的频率,最后也很快就被冲掉了,所以要把该interval_timeout设置为很大。
3、echo performance > devfreq/governor, 这时devfreq会为Adreno重新选择governor,也就是performance。这时它会使用GPU所支持的最大频率,而不考虑系统的负载。默认的msm-adreno-tz机制会不停的动态更新频率,即使我们设置过频率也会被覆盖掉,这就是为什么直接设置频率无效的原因。而如果改成performance机制,这样它会使得Adreno动态的调整机制无效,我们的设置才会生效。
4、echo freq > gpuclk,简单的设置GPU的频率,一般是在200 000 000, 320 000 000和450 000 000之间,如果不对,就会就近选择这三者之一。
然后同样可以测试GPU程序了。

最后推荐一个调试时可以实时监测频率等指标的apk:3C tool box。有中文版,功能还挺多。

原文链接:https://blog.csdn.net/weixin_39683025/article/details/111670610

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android手势锁屏界面应用是一种用于增加设备安全性的方式,它允许用户通过在屏幕上绘制特定的手势来解锁手机。这种方式相对于传统的密码锁更加方便和快捷。 手势锁屏应用一般会在用户首次设置锁屏方式时引导用户绘制一条特定的手势线路。用户可以通过在屏幕上滑动手指来创建属于自己的个性化手势锁。手势锁通过记录相应的手势路径,并识别出特定的手势,来判断用户的解锁操作是否正确。 与其他解锁方式相比,手势锁屏界面应用有以下几大优点: 首先,手势锁屏更加安全。因为手势路径的可能性非常多,相较于常见的4位或6位数字密码,直接提高了密码的复杂性,从而增加了破解的难度。 其次,手势锁屏界面应用使用起来非常方便。只需要滑动手指绘制手势路径即可解锁手机。相对于输入数字密码的方式,手势锁屏更加快捷,并且用户可以在界面上随意绘制手势,形成个性化的解锁方式。 此外,手势锁屏界面应用还可以提供额外的功能附加服务。例如,一些手势锁屏应用可以设置特定手势对应特定应用的快速启动,从而提高手机的使用效率。 总而言之,手势锁屏界面应用是一种方便、快捷和个性化的设备锁屏方式。通过绘制特定的手势路径来解锁手机,用户可以提高设备的安全性,并享受更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值