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

本文介绍如何在Android平台上进行深度学习算法的性能测试,包括锁定CPU和GPU频率的方法,确保测试结果稳定可靠。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做深度学习算法在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值