使用 Mali-G76 锁定已 root 的 Samsung Galaxy S10 上的 GPU 频率,以进行 Flutter 应用程序性能测试

问题描述 投票:0回答:1

我目前正在按照 Filip Hracek 的指南对 Android 上的 Flutter 应用程序进行性能测试:Flutter 应用程序的性能测试

我的测试设备是已root的三星 Galaxy S10 (SM-G973F),CPU 节流按预期工作。但是,我在尝试锁定 GPU 频率时遇到了问题。该指南使用带有 Qualcomm GPU 的 Nexus 5,但 S10 使用 ARM Mali-G76,并且指南中提供的脚本不适用。这是脚本中有问题的部分:GPU 锁定代码

我在设备中发现了潜在的 GPU 设置,例如:

adb shell "cat /sys/kernel/gpu/gpu_freq_table"
# 156000 200000 260000 325000 377000 433000 572000 650000 702000

尝试使用以下命令锁定 GPU 频率只会暂时更改值。所选调速器仍然存在,但频率值会在几秒钟后恢复:

GPU_FREQ="325000"
GPU_GOV="Default"
adb shell "echo ${GPU_GOV} > /sys/kernel/gpu/gpu_governor"
adb shell "echo ${GPU_FREQ} > /sys/kernel/gpu/gpu_min_clock"
adb shell "echo ${GPU_FREQ} > /sys/kernel/gpu/gpu_max_clock"
adb shell "echo ${GPU_FREQ} > /sys/kernel/gpu/gpu_mm_min_clock"

我已经尝试了所有可用的 GPU 调节器(默认、交互式、联合、静态、助推器、动态),没有注意到任何差异 - 即使使用“静态”,这些值仍然独立于调节器而变化。

我怀疑动态电压和频率缩放(DVFS)可能是问题所在:

adb shell "echo 0 > /sys/devices/platform/18500000.mali/dvfs"
adb shell "cat /sys/devices/platform/18500000.mali/dvfs_max_lock"
adb shell "cat /sys/devices/platform/18500000.mali/dvfs_min_lock"

但是,禁用 DVFS 似乎并不能解决问题。

是否有人成功锁定了三星 Galaxy S10 或具有 Mali GPU 的类似设备上的 GPU 频率以进行性能测试?任何关于在此类设备上管理 GPU 调速器和 DVFS 的见解或参考文档将不胜感激。

android flutter gpu adb performance-testing
1个回答
0
投票

请注意,DVSF 配置由 SiP 提供。

© www.soinside.com 2019 - 2024. All rights reserved.