Skip to content

Commit 2b2a315

Browse files
author
Guang Yang
committed
Device telemetry for benchmark
1 parent 311489f commit 2b2a315

File tree

1 file changed

+74
-5
lines changed

1 file changed

+74
-5
lines changed

extension/benchmark/android/benchmark/android-llm-device-farm-test-spec.yml.j2

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,51 @@ phases:
105105
echo "*.model tokenizer files found in /data/local/tmp/minibench/"
106106
fi
107107

108-
- echo "Collect device state before running"
108+
- echo "Collect Device Telemetry - CPU Scaling Configuration"
109109
- |
110-
adb -s $DEVICEFARM_DEVICE_UDID shell 'cat /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state /sys/devices/system/cpu/cpu*/cpufreq/stats/trans_table' > $DEVICEFARM_LOG_DIR/state_before.txt
110+
adb -s $DEVICEFARM_DEVICE_UDID shell '
111+
for core_path in /sys/devices/system/cpu/cpu*/cpufreq; do
112+
if [ -d "$core_path" ]; then
113+
core_name=$(basename $(dirname $core_path))
114+
governor=$(cat $core_path/scaling_governor 2>/dev/null || echo "N/A")
115+
min_freq=$(cat $core_path/scaling_min_freq 2>/dev/null || echo "N/A")
116+
max_freq=$(cat $core_path/scaling_max_freq 2>/dev/null || echo "N/A")
117+
echo "$core_name | governor=$governor | min_freq=$min_freq | max_freq=$max_freq"
118+
fi
119+
done
120+
' > $DEVICEFARM_LOG_DIR/telemetry_cpu_scaling_config.txt
121+
122+
- echo "Collect Device Telemetry - Thermal Status"
123+
- |
124+
adb -s $DEVICEFARM_DEVICE_UDID shell dumpsys thermalservice > $DEVICEFARM_LOG_DIR/telemetry_thermal_status.txt
125+
126+
- echo "Collect Device Telemetry - CPU Frequency Statistics (pre-benchmark)"
127+
- |
128+
adb -s $DEVICEFARM_DEVICE_UDID shell '
129+
for core in /sys/devices/system/cpu/cpu*/cpufreq/stats; do
130+
if [ -d "$core" ]; then
131+
core_name=$(basename $(dirname $(dirname $core)))
132+
echo "=== $core_name ==="
133+
echo "--- time_in_state ---"
134+
cat $core/time_in_state 2>/dev/null
135+
echo "--- trans_table ---"
136+
cat $core/trans_table 2>/dev/null
137+
echo "--- total_trans ---"
138+
cat $core/total_trans 2>/dev/null
139+
echo ""
140+
fi
141+
done
142+
' > $DEVICEFARM_LOG_DIR/telemetry_cpu_freq_stats_pre.txt
143+
144+
- echo "Collect Device Telemetry - Battery (pre-benchmark)"
145+
- |
146+
adb -s $DEVICEFARM_DEVICE_UDID shell '
147+
dumpsys battery
148+
' > $DEVICEFARM_LOG_DIR/telemetry_battery_info_pre.txt
149+
150+
echo "Reset Battery Stats (pre-benchmark)"
151+
adb -s $DEVICEFARM_DEVICE_UDID shell 'dumpsys batterystats --reset'
152+
adb -s $DEVICEFARM_DEVICE_UDID shell 'dumpsys batterystats --enable full-wake-history'
111153

112154
- echo "Run benchmark"
113155
- |
@@ -132,10 +174,37 @@ phases:
132174
adb -s $DEVICEFARM_DEVICE_UDID shell am start -W -n org.pytorch.minibench/.BenchmarkActivity \
133175
--es "model_dir" "/data/local/tmp/minibench"
134176
fi
135-
136-
- echo "Collect device state after running"
177+
178+
- echo "Collect Device Telemetry - CPU Frequency Statistics (post-benchmark)"
179+
- |
180+
adb -s $DEVICEFARM_DEVICE_UDID shell '
181+
for core in /sys/devices/system/cpu/cpu*/cpufreq/stats; do
182+
if [ -d "$core" ]; then
183+
core_name=$(basename $(dirname $(dirname $core)))
184+
echo "=== $core_name ==="
185+
echo "--- time_in_state ---"
186+
cat $core/time_in_state 2>/dev/null
187+
echo "--- trans_table ---"
188+
cat $core/trans_table 2>/dev/null
189+
echo "--- total_trans ---"
190+
cat $core/total_trans 2>/dev/null
191+
echo ""
192+
fi
193+
done
194+
' > $DEVICEFARM_LOG_DIR/telemetry_cpu_freq_stats_post.txt
195+
196+
- echo "Collect Device Telemetry - Battery (post-benchmark)"
137197
- |
138-
adb -s $DEVICEFARM_DEVICE_UDID shell 'cat /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state /sys/devices/system/cpu/cpu*/cpufreq/stats/trans_table' > $DEVICEFARM_LOG_DIR/state_after.txt
198+
adb -s $DEVICEFARM_DEVICE_UDID shell '
199+
echo "=== POST-BENCHMARK BATTERY INFO ==="
200+
dumpsys battery
201+
echo ""
202+
echo "=== APP BATTERY STATS (org.pytorch.minibench) ==="
203+
dumpsys batterystats --charged org.pytorch.minibench
204+
echo ""
205+
echo "=== POWER CONSUMPTION SUMMARY ==="
206+
dumpsys batterystats --charged | grep -E "(org.pytorch.minibench|Estimated power use|Time on battery|Total running time)"
207+
' > $DEVICEFARM_LOG_DIR/telemetry_battery_post.txt
139208

140209
post_test:
141210
commands:

0 commit comments

Comments
 (0)