Skip to content

Commit 0a6b89f

Browse files
author
Guang Yang
committed
Device telemetry for benchmark
1 parent 311489f commit 0a6b89f

File tree

1 file changed

+78
-6
lines changed

1 file changed

+78
-6
lines changed

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

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

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

112158
- echo "Run benchmark"
113159
- |
@@ -116,7 +162,6 @@ phases:
116162

117163
adb -s $DEVICEFARM_DEVICE_UDID shell dumpsys deviceidle force-idle
118164
adb -s $DEVICEFARM_DEVICE_UDID shell dumpsys deviceidle unforce
119-
adb -s $DEVICEFARM_DEVICE_UDID shell sleep 180
120165

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

140212
post_test:
141213
commands:

0 commit comments

Comments
 (0)