From 15662054c26e251bc8de17e77a937dde9ae0d5e5 Mon Sep 17 00:00:00 2001 From: triasha72 Date: Thu, 27 Aug 2026 16:04:25 -0400 Subject: [PATCH 1/2] Capture Android 16 KB runtime evidence --- .../android_16kb_emulator_reference_v0_1_7.md | 67 ++++++++++++++++++ .../device-report.txt | 9 +++ .../final-screen.png | Bin 0 -> 196623 bytes .../latency-memory.csv | 11 +++ .../measurement-status.txt | 5 ++ .../runs/run-001/activity-start.txt | 7 ++ .../runs/run-001/logcat.txt | 20 ++++++ .../runs/run-001/meminfo.txt | 50 +++++++++++++ .../runs/run-001/thermal.txt | 23 ++++++ .../runs/run-002/activity-start.txt | 7 ++ .../runs/run-002/logcat.txt | 20 ++++++ .../runs/run-002/meminfo.txt | 50 +++++++++++++ .../runs/run-002/thermal.txt | 23 ++++++ .../runs/run-003/activity-start.txt | 7 ++ .../runs/run-003/logcat.txt | 20 ++++++ .../runs/run-003/meminfo.txt | 50 +++++++++++++ .../runs/run-003/thermal.txt | 23 ++++++ .../runs/run-004/activity-start.txt | 7 ++ .../runs/run-004/logcat.txt | 20 ++++++ .../runs/run-004/meminfo.txt | 50 +++++++++++++ .../runs/run-004/thermal.txt | 23 ++++++ .../runs/run-005/activity-start.txt | 7 ++ .../runs/run-005/logcat.txt | 20 ++++++ .../runs/run-005/meminfo.txt | 50 +++++++++++++ .../runs/run-005/thermal.txt | 23 ++++++ .../runs/run-006/activity-start.txt | 7 ++ .../runs/run-006/logcat.txt | 20 ++++++ .../runs/run-006/meminfo.txt | 50 +++++++++++++ .../runs/run-006/thermal.txt | 23 ++++++ .../runs/run-007/activity-start.txt | 7 ++ .../runs/run-007/logcat.txt | 20 ++++++ .../runs/run-007/meminfo.txt | 50 +++++++++++++ .../runs/run-007/thermal.txt | 23 ++++++ .../runs/run-008/activity-start.txt | 7 ++ .../runs/run-008/logcat.txt | 20 ++++++ .../runs/run-008/meminfo.txt | 50 +++++++++++++ .../runs/run-008/thermal.txt | 23 ++++++ .../runs/run-009/activity-start.txt | 7 ++ .../runs/run-009/logcat.txt | 20 ++++++ .../runs/run-009/meminfo.txt | 50 +++++++++++++ .../runs/run-009/thermal.txt | 23 ++++++ .../runs/run-010/activity-start.txt | 7 ++ .../runs/run-010/logcat.txt | 20 ++++++ .../runs/run-010/meminfo.txt | 50 +++++++++++++ .../runs/run-010/thermal.txt | 23 ++++++ .../thermal-after.txt | 23 ++++++ .../thermal-before.txt | 23 ++++++ scripts/profile_android_reference.sh | 9 ++- 48 files changed, 1145 insertions(+), 2 deletions(-) create mode 100644 reports/android_16kb_emulator_reference_v0_1_7.md create mode 100644 reports/device/android-16kb-api35-reference-10-runs/device-report.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/final-screen.png create mode 100644 reports/device/android-16kb-api35-reference-10-runs/latency-memory.csv create mode 100644 reports/device/android-16kb-api35-reference-10-runs/measurement-status.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-001/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-001/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-001/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-001/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-002/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-002/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-002/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-002/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-003/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-003/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-003/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-003/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-004/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-004/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-004/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-004/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-005/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-005/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-005/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-005/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-006/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-006/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-006/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-006/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-007/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-007/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-007/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-007/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-008/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-008/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-008/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-008/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-009/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-009/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-009/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-009/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-010/activity-start.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-010/logcat.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-010/meminfo.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/runs/run-010/thermal.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/thermal-after.txt create mode 100644 reports/device/android-16kb-api35-reference-10-runs/thermal-before.txt diff --git a/reports/android_16kb_emulator_reference_v0_1_7.md b/reports/android_16kb_emulator_reference_v0_1_7.md new file mode 100644 index 0000000..b2ac97b --- /dev/null +++ b/reports/android_16kb_emulator_reference_v0_1_7.md @@ -0,0 +1,67 @@ +# Android 16 KB runtime evidence: API 35 ARM64 emulator + +Captured on 2026-08-27 from EdgeGenBench Android v0.1.7 (version code 8) +using `scripts/profile_android_reference.sh` for 10 automated cold launches. + +## Provenance and scope + +| Field | Observed value | +|---|---| +| Environment | Google Android Emulator `sdk_gphone16k_arm64` | +| Android / SDK | Android 15 / SDK 35 | +| ABI | `arm64-v8a` | +| Runtime page size | **16,384 bytes** | +| App version | 0.1.7 (code 8) | +| Backend | Deterministic reference backend, **not QNN** | +| QNN/NPU placement | Not tested | +| Power | Not measured | + +The runtime page size was read from the booted environment with +`adb shell getconf PAGE_SIZE`. Every retained machine-readable benchmark result +also records `runtime_page_size_bytes=16384`. Before installation, Android SDK +`zipalign -c -P 16 -v 4` passed and all `PT_LOAD` segments in both packaged +native libraries reported `0x4000` alignment. + +This closes the Android 16 KB **runtime compatibility** gap for the reference +APK/JNI path. An emulator is not physical-device performance evidence, and +these timings must not be compared with the Samsung or Qualcomm measurements. + +## Ten-run results + +Each outer run force-stopped and cold-launched the activity. The native +benchmark then performed 100 measured iterations. + +| Metric | Mean | Median | Minimum | Maximum | +|---|---:|---:|---:|---:| +| Native cold latency (ms) | 0.022621 | 0.014333 | 0.011500 | 0.060667 | +| Native warm mean (ms) | 0.002608 | 0.002440 | 0.002259 | 0.003924 | +| Native warm p95 (ms) | 0.003333 | 0.002667 | 0.002458 | 0.006250 | +| Baseline preprocessing (ms) | 26.361593 | 23.912975 | 21.260857 | 38.929105 | +| Fused preprocessing (ms) | 12.570465 | 12.233062 | 11.625028 | 14.820786 | +| Preprocessing speedup | 2.092613x | 1.951007x | 1.772588x | 2.852528x | +| Android launch total (ms) | 4032.9 | 3948.0 | 3190 | 5258 | +| Post-run PSS (KiB) | 60,623 | 60,698 | 60,233 | 60,853 | +| Post-run RSS (KiB) | 157,038 | 157,096 | 156,608 | 157,232 | + +All ten runs reported zero preprocessing drift and zero downstream output +drift. PSS and RSS are post-run process snapshots, not sampled peaks. + +## Thermal and power boundaries + +The emulator reported thermal status 0 and a constant synthetic test sensor. +Those values are emulator diagnostics, not physical thermal measurements. +Power remains `not measured`; no energy or power-savings claim is made. + +## Retained evidence + +The complete capture is stored under +`reports/device/android-16kb-api35-reference-10-runs/` and includes: + +- device/app identity and the observed runtime page size; +- ten activity-start, logcat, memory, and thermal records; +- the aggregate latency/memory CSV; +- pre/post thermal snapshots and the final screenshot; +- explicit reference-backend, QNN, memory, thermal, and power claim boundaries. + +The remaining hardware-only gaps are an end-to-end QNN APK run on a supported +Snapdragon device and a calibrated physical power measurement. diff --git a/reports/device/android-16kb-api35-reference-10-runs/device-report.txt b/reports/device/android-16kb-api35-reference-10-runs/device-report.txt new file mode 100644 index 0000000..2551309 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/device-report.txt @@ -0,0 +1,9 @@ +captured_at=2026-08-27T20:01:33Z +manufacturer=Google +model=sdk_gphone16k_arm64 +android=15 +sdk=35 +abi=arm64-v8a +page_size=16384 + versionCode=8 minSdk=28 targetSdk=35 + versionName=0.1.7 diff --git a/reports/device/android-16kb-api35-reference-10-runs/final-screen.png b/reports/device/android-16kb-api35-reference-10-runs/final-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2f8a0edc2b2f0c5a62868641b4bb45eeda1e52 GIT binary patch literal 196623 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

8OpRhJfICJE2<76c`T1?m-!H#$|dGhI+5ll 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%0A_~+=TZsSPQVQ7B4Q%21ua2`Z))|5JG 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 IfB*B}0MFUUK>z>% literal 0 HcmV?d00001 diff --git a/reports/device/android-16kb-api35-reference-10-runs/latency-memory.csv b/reports/device/android-16kb-api35-reference-10-runs/latency-memory.csv new file mode 100644 index 0000000..2342aaf --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/latency-memory.csv @@ -0,0 +1,11 @@ +run,cold_ms,warm_mean_ms,warm_p95_ms,baseline_preprocess_mean_ms,fused_preprocess_mean_ms,preprocess_speedup_x,preprocess_max_abs_drift,output_max_abs_drift,launch_total_ms,total_pss_kib,total_rss_kib +1,0.033250,0.002658,0.002667,38.929105,13.647231,2.852528,0.000000,0.000000,4575,60548,156992 +2,0.013958,0.002545,0.002750,21.260857,11.686140,1.819322,0.000000,0.000000,4036,60695,157104 +3,0.011500,0.002315,0.002584,23.230263,12.460185,1.864359,0.000000,0.000000,3190,60247,156688 +4,0.020083,0.002310,0.002667,25.604844,12.850200,1.992564,0.000000,0.000000,5258,60701,157088 +5,0.012625,0.002312,0.002583,23.244588,12.173451,1.909449,0.000000,0.000000,3484,60717,157168 +6,0.060667,0.002259,0.002458,30.244593,14.820786,2.040688,0.000000,0.000000,4001,60788,157232 +7,0.035708,0.003924,0.006250,21.789849,12.292673,1.772588,0.000000,0.000000,4840,60233,156608 +8,0.014709,0.002855,0.006041,21.970452,12.135276,1.810462,0.000000,0.000000,3804,60853,157232 +9,0.011625,0.002335,0.002708,32.760015,11.625028,2.818059,0.000000,0.000000,3895,60642,157056 +10,0.012084,0.002570,0.002625,24.581362,12.013676,2.046115,0.000000,0.000000,3246,60807,157216 diff --git a/reports/device/android-16kb-api35-reference-10-runs/measurement-status.txt b/reports/device/android-16kb-api35-reference-10-runs/measurement-status.txt new file mode 100644 index 0000000..99c63ee --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/measurement-status.txt @@ -0,0 +1,5 @@ +backend=reference +qnn-npu-placement=not-tested +power=not-measured +memory=post-run-snapshots-not-sampled-peaks +thermal=platform-sensor-snapshots-not-calibrated-power diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/activity-start.txt new file mode 100644 index 0000000..9269250 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 4575 +WaitTime: 4837 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/logcat.txt new file mode 100644 index 0000000..3836976 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:01:35.017 7683 7683 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:01:36.400 7683 7683 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:01:36.401 7683 7683 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:01:44.154 7683 7705 I EdgeGenBench: backend=reference +08-27 16:01:44.154 7683 7705 I EdgeGenBench: CPU fallback=false +08-27 16:01:44.154 7683 7705 I EdgeGenBench: cold_ms=0.033250 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: warm_mean_ms=0.002658 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: warm_p95_ms=0.002667 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: runs=100 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: baseline_preprocess_mean_ms=38.929105 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: fused_preprocess_mean_ms=13.647231 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: preprocess_elements=262144 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: preprocess_speedup_x=2.852528 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: output=0.156160 +08-27 16:01:44.154 7683 7705 I EdgeGenBench: power=not measured +08-27 16:01:44.154 7683 7705 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:01:44.221 7683 7683 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.03325,"warm_mean_ms":0.00265791,"warm_p95_ms":0.002667,"runs":100,"baseline_preprocess_mean_ms":38.9291046,"fused_preprocess_mean_ms":13.6472313,"preprocess_elements":262144,"preprocess_speedup_x":2.852527648,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860904166} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/meminfo.txt new file mode 100644 index 0000000..25364a4 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16882397 Realtime: 16882397 + +** MEMINFO in pid 7683 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17258 17216 0 77 18080 24384 17314 1938 + Dalvik Heap 4283 4160 32 333 5168 6687 3344 3343 + Dalvik Other 6454 2464 0 169 10688 + Stack 928 928 0 0 928 + Ashmem 65 0 0 0 608 + Other dev 80 0 32 0 688 + .so mmap 4299 528 384 21 34032 + .jar mmap 3489 0 400 0 40352 + .apk mmap 8869 64 8560 0 10224 + .ttf mmap 266 0 0 0 1024 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2143 16 0 0 5152 + Unknown 1130 1024 80 14 1664 + TOTAL 60548 35712 10000 727 156992 31071 20658 5281 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13984 30976 + Native Heap: 17216 18080 + Code: 9968 96208 + Stack: 928 928 + Graphics: 0 0 + Private Other: 3616 + System: 14836 + Unknown: 10800 + + TOTAL PSS: 60548 TOTAL RSS: 156992 TOTAL SWAP PSS: 727 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 5 Parcel count: 20 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-001/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/activity-start.txt new file mode 100644 index 0000000..2efed0f --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 4036 +WaitTime: 4042 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/logcat.txt new file mode 100644 index 0000000..afe177e --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:01:48.212 7797 7797 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:01:49.011 7797 7797 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:01:49.012 7797 7797 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:01:54.321 7797 7814 I EdgeGenBench: backend=reference +08-27 16:01:54.321 7797 7814 I EdgeGenBench: CPU fallback=false +08-27 16:01:54.321 7797 7814 I EdgeGenBench: cold_ms=0.013958 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: warm_mean_ms=0.002545 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: warm_p95_ms=0.002750 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: runs=100 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: baseline_preprocess_mean_ms=21.260857 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: fused_preprocess_mean_ms=11.686140 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: preprocess_elements=262144 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: preprocess_speedup_x=1.819322 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: output=0.156160 +08-27 16:01:54.321 7797 7814 I EdgeGenBench: power=not measured +08-27 16:01:54.321 7797 7814 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:01:54.375 7797 7797 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.013958,"warm_mean_ms":0.00254542,"warm_p95_ms":0.00275,"runs":100,"baseline_preprocess_mean_ms":21.26085666,"fused_preprocess_mean_ms":11.68614039,"preprocess_elements":262144,"preprocess_speedup_x":1.819322373,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860914336} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/meminfo.txt new file mode 100644 index 0000000..5d1bf3c --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16892536 Realtime: 16892536 + +** MEMINFO in pid 7797 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17258 17216 0 78 18080 24384 17303 2055 + Dalvik Heap 4267 4144 32 333 5152 6687 3344 3343 + Dalvik Other 6726 2752 0 169 10944 + Stack 880 880 0 0 880 + Ashmem 65 0 0 0 608 + Other dev 80 0 32 0 688 + .so mmap 4291 528 384 21 34016 + .jar mmap 3488 0 400 0 40352 + .apk mmap 8864 64 8560 0 10208 + .ttf mmap 266 0 0 0 1024 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2143 16 0 0 5152 + Unknown 1082 1024 32 14 1616 + TOTAL 60695 35936 9952 728 157104 31071 20647 5398 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13968 30960 + Native Heap: 17216 18080 + Code: 9984 96160 + Stack: 880 880 + Graphics: 0 0 + Private Other: 3840 + System: 14807 + Unknown: 11024 + + TOTAL PSS: 60695 TOTAL RSS: 157104 TOTAL SWAP PSS: 728 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 4 Parcel count: 16 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-002/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/activity-start.txt new file mode 100644 index 0000000..8ba09a6 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 3190 +WaitTime: 3454 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/logcat.txt new file mode 100644 index 0000000..fa67338 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:01:57.633 7896 7896 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:01:58.442 7896 7896 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:01:58.442 7896 7896 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:03.924 7896 7914 I EdgeGenBench: backend=reference +08-27 16:02:03.924 7896 7914 I EdgeGenBench: CPU fallback=false +08-27 16:02:03.924 7896 7914 I EdgeGenBench: cold_ms=0.011500 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: warm_mean_ms=0.002315 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: warm_p95_ms=0.002584 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: runs=100 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: baseline_preprocess_mean_ms=23.230263 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: fused_preprocess_mean_ms=12.460185 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: preprocess_speedup_x=1.864359 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: output=0.156160 +08-27 16:02:03.924 7896 7914 I EdgeGenBench: power=not measured +08-27 16:02:03.924 7896 7914 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:03.982 7896 7896 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.0115,"warm_mean_ms":0.00231455,"warm_p95_ms":0.002584,"runs":100,"baseline_preprocess_mean_ms":23.23026294,"fused_preprocess_mean_ms":12.46018544,"preprocess_elements":262144,"preprocess_speedup_x":1.864359327,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860923937} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/meminfo.txt new file mode 100644 index 0000000..592c744 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16902219 Realtime: 16902219 + +** MEMINFO in pid 7896 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17178 17136 0 87 18000 24384 17282 2023 + Dalvik Heap 4219 4096 32 333 5104 6687 3344 3343 + Dalvik Other 6358 2352 0 169 10608 + Stack 848 848 0 0 848 + Ashmem 65 0 0 0 608 + Other dev 64 0 16 0 672 + .so mmap 4300 528 384 21 34032 + .jar mmap 3488 0 400 0 40352 + .apk mmap 8864 64 8560 0 10208 + .ttf mmap 317 0 32 0 1088 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2154 16 16 0 5152 + Unknown 1098 1040 32 14 1632 + TOTAL 60247 35392 9984 737 156688 31071 20626 5366 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13920 30912 + Native Heap: 17136 18000 + Code: 10000 96288 + Stack: 848 848 + Graphics: 0 0 + Private Other: 3472 + System: 14871 + Unknown: 10640 + + TOTAL PSS: 60247 TOTAL RSS: 156688 TOTAL SWAP PSS: 737 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 3 Parcel count: 14 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-003/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/activity-start.txt new file mode 100644 index 0000000..46b5132 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 5258 +WaitTime: 5395 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/logcat.txt new file mode 100644 index 0000000..3b13045 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:02:08.954 8001 8001 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:02:09.725 8001 8001 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:02:09.725 8001 8001 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:15.444 8001 8021 I EdgeGenBench: backend=reference +08-27 16:02:15.444 8001 8021 I EdgeGenBench: CPU fallback=false +08-27 16:02:15.444 8001 8021 I EdgeGenBench: cold_ms=0.020083 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: warm_mean_ms=0.002310 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: warm_p95_ms=0.002667 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: runs=100 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: baseline_preprocess_mean_ms=25.604844 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: fused_preprocess_mean_ms=12.850200 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: preprocess_speedup_x=1.992564 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: output=0.156160 +08-27 16:02:15.444 8001 8021 I EdgeGenBench: power=not measured +08-27 16:02:15.444 8001 8021 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:15.485 8001 8001 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.020083,"warm_mean_ms":0.00230957,"warm_p95_ms":0.002667,"runs":100,"baseline_preprocess_mean_ms":25.60484414,"fused_preprocess_mean_ms":12.85020045,"preprocess_elements":262144,"preprocess_speedup_x":1.992563792,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860935453} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/meminfo.txt new file mode 100644 index 0000000..f913b79 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16913785 Realtime: 16913785 + +** MEMINFO in pid 8001 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17210 17168 0 83 18032 24128 17296 1861 + Dalvik Heap 4251 4128 32 333 5136 6687 3344 3343 + Dalvik Other 6758 2800 0 169 10960 + Stack 864 864 0 0 864 + Ashmem 65 0 0 0 608 + Other dev 80 0 32 0 688 + .so mmap 4292 528 384 21 34016 + .jar mmap 3488 0 400 0 40352 + .apk mmap 8869 64 8560 0 10224 + .ttf mmap 266 0 0 0 1024 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2154 16 16 0 5152 + Unknown 1114 1024 64 14 1648 + TOTAL 60701 35904 10000 733 157088 30815 20640 5204 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13952 30944 + Native Heap: 17168 18032 + Code: 10016 96176 + Stack: 864 864 + Graphics: 0 0 + Private Other: 3904 + System: 14797 + Unknown: 11072 + + TOTAL PSS: 60701 TOTAL RSS: 157088 TOTAL SWAP PSS: 733 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 4 Parcel count: 16 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-004/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/activity-start.txt new file mode 100644 index 0000000..7fad886 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 3484 +WaitTime: 3508 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/logcat.txt new file mode 100644 index 0000000..aaa2eba --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:02:18.186 8105 8105 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:02:19.318 8105 8105 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:02:19.318 8105 8105 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:25.274 8105 8122 I EdgeGenBench: backend=reference +08-27 16:02:25.274 8105 8122 I EdgeGenBench: CPU fallback=false +08-27 16:02:25.274 8105 8122 I EdgeGenBench: cold_ms=0.012625 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: warm_mean_ms=0.002312 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: warm_p95_ms=0.002583 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: runs=100 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: baseline_preprocess_mean_ms=23.244588 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: fused_preprocess_mean_ms=12.173451 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: preprocess_speedup_x=1.909449 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: output=0.156160 +08-27 16:02:25.274 8105 8122 I EdgeGenBench: power=not measured +08-27 16:02:25.274 8105 8122 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:25.328 8105 8105 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.012625,"warm_mean_ms":0.00231206,"warm_p95_ms":0.002583,"runs":100,"baseline_preprocess_mean_ms":23.24458831,"fused_preprocess_mean_ms":12.17345126,"preprocess_elements":262144,"preprocess_speedup_x":1.909449327,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860945287} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/meminfo.txt new file mode 100644 index 0000000..3866989 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16923575 Realtime: 16923575 + +** MEMINFO in pid 8105 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17274 17232 0 77 18096 24384 17302 2020 + Dalvik Heap 4235 4112 32 333 5120 6687 3344 3343 + Dalvik Other 6742 2736 0 169 10992 + Stack 880 880 0 0 880 + Ashmem 65 0 0 0 608 + Other dev 80 0 32 0 688 + .so mmap 4300 528 384 21 34032 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8869 64 8560 0 10224 + .ttf mmap 266 0 0 0 1024 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2154 16 16 0 5152 + Unknown 1082 1024 32 14 1616 + TOTAL 60717 35904 9968 727 157168 31071 20646 5363 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13936 30928 + Native Heap: 17232 18096 + Code: 9968 96240 + Stack: 880 880 + Graphics: 0 0 + Private Other: 3856 + System: 14845 + Unknown: 11024 + + TOTAL PSS: 60717 TOTAL RSS: 157168 TOTAL SWAP PSS: 727 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 4 Parcel count: 16 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-005/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/activity-start.txt new file mode 100644 index 0000000..7321442 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 4001 +WaitTime: 4008 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/logcat.txt new file mode 100644 index 0000000..fcbfdaa --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:02:28.218 8205 8205 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:02:29.659 8205 8205 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:02:29.659 8205 8205 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:36.015 8205 8228 I EdgeGenBench: backend=reference +08-27 16:02:36.015 8205 8228 I EdgeGenBench: CPU fallback=false +08-27 16:02:36.015 8205 8228 I EdgeGenBench: cold_ms=0.060667 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: warm_mean_ms=0.002259 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: warm_p95_ms=0.002458 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: runs=100 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: baseline_preprocess_mean_ms=30.244593 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: fused_preprocess_mean_ms=14.820786 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: preprocess_speedup_x=2.040688 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: output=0.156160 +08-27 16:02:36.015 8205 8228 I EdgeGenBench: power=not measured +08-27 16:02:36.015 8205 8228 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:36.070 8205 8205 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.060667,"warm_mean_ms":0.00225875,"warm_p95_ms":0.002458,"runs":100,"baseline_preprocess_mean_ms":30.2445934,"fused_preprocess_mean_ms":14.82078586,"preprocess_elements":262144,"preprocess_speedup_x":2.040687564,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860956028} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/meminfo.txt new file mode 100644 index 0000000..77e3702 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16934334 Realtime: 16934334 + +** MEMINFO in pid 8205 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17258 17216 0 76 18080 24384 17300 1996 + Dalvik Heap 4251 4128 32 333 5136 6687 3344 3343 + Dalvik Other 6758 2784 0 169 10976 + Stack 848 848 0 0 848 + Ashmem 65 0 0 0 608 + Other dev 81 0 32 0 688 + .so mmap 4346 528 384 21 34032 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8869 64 8560 0 10224 + .ttf mmap 306 0 16 0 1136 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2155 16 16 0 5152 + Unknown 1082 1024 32 14 1616 + TOTAL 60788 35920 9984 726 157232 31071 20644 5339 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13952 30944 + Native Heap: 17216 18080 + Code: 10000 96304 + Stack: 848 848 + Graphics: 0 0 + Private Other: 3888 + System: 14884 + Unknown: 11056 + + TOTAL PSS: 60788 TOTAL RSS: 157232 TOTAL SWAP PSS: 726 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 4 Parcel count: 16 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-006/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/activity-start.txt new file mode 100644 index 0000000..b9e1726 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 4840 +WaitTime: 4842 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/logcat.txt new file mode 100644 index 0000000..73b056b --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:02:41.672 8318 8318 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:02:42.225 8318 8318 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:02:42.225 8318 8318 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:47.786 8318 8336 I EdgeGenBench: backend=reference +08-27 16:02:47.786 8318 8336 I EdgeGenBench: CPU fallback=false +08-27 16:02:47.786 8318 8336 I EdgeGenBench: cold_ms=0.035708 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: warm_mean_ms=0.003924 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: warm_p95_ms=0.006250 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: runs=100 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: baseline_preprocess_mean_ms=21.789849 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: fused_preprocess_mean_ms=12.292673 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: preprocess_speedup_x=1.772588 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: output=0.156160 +08-27 16:02:47.786 8318 8336 I EdgeGenBench: power=not measured +08-27 16:02:47.786 8318 8336 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:47.841 8318 8318 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.035708,"warm_mean_ms":0.00392369,"warm_p95_ms":0.00625,"runs":100,"baseline_preprocess_mean_ms":21.78984912,"fused_preprocess_mean_ms":12.2926725,"preprocess_elements":262144,"preprocess_speedup_x":1.772588436,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860967799} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/meminfo.txt new file mode 100644 index 0000000..f253db5 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16946104 Realtime: 16946104 + +** MEMINFO in pid 8318 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17226 17184 0 78 18048 24384 17290 2043 + Dalvik Heap 4235 4112 32 333 5120 6687 3344 3343 + Dalvik Other 6246 2272 0 169 10464 + Stack 848 848 0 0 848 + Ashmem 65 0 0 0 608 + Other dev 81 0 32 0 688 + .so mmap 4339 528 384 21 34016 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8864 64 8560 0 10208 + .ttf mmap 317 0 32 0 1088 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2155 16 16 0 5152 + Unknown 1086 1008 48 14 1632 + TOTAL 60233 35344 10016 728 156608 31071 20634 5386 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13936 30928 + Native Heap: 17184 18048 + Code: 10016 96224 + Stack: 848 848 + Graphics: 0 0 + Private Other: 3376 + System: 14873 + Unknown: 10560 + + TOTAL PSS: 60233 TOTAL RSS: 156608 TOTAL SWAP PSS: 728 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 3 Parcel count: 14 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-007/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/activity-start.txt new file mode 100644 index 0000000..8f36475 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 3804 +WaitTime: 3875 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/logcat.txt new file mode 100644 index 0000000..ba1d470 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:02:52.219 8436 8436 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:02:52.638 8436 8436 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:02:52.638 8436 8436 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:02:58.318 8436 8454 I EdgeGenBench: backend=reference +08-27 16:02:58.318 8436 8454 I EdgeGenBench: CPU fallback=false +08-27 16:02:58.318 8436 8454 I EdgeGenBench: cold_ms=0.014709 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: warm_mean_ms=0.002855 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: warm_p95_ms=0.006041 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: runs=100 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: baseline_preprocess_mean_ms=21.970452 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: fused_preprocess_mean_ms=12.135276 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: preprocess_elements=262144 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: preprocess_speedup_x=1.810462 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: output=0.156160 +08-27 16:02:58.318 8436 8454 I EdgeGenBench: power=not measured +08-27 16:02:58.318 8436 8454 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:02:58.377 8436 8436 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.014709,"warm_mean_ms":0.00285543,"warm_p95_ms":0.006041,"runs":100,"baseline_preprocess_mean_ms":21.97045166,"fused_preprocess_mean_ms":12.13527629,"preprocess_elements":262144,"preprocess_speedup_x":1.810461594,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860978328} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/meminfo.txt new file mode 100644 index 0000000..3f7eb2d --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16956671 Realtime: 16956671 + +** MEMINFO in pid 8436 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17258 17216 0 77 18080 24384 17305 1999 + Dalvik Heap 4267 4144 32 333 5152 6687 3344 3343 + Dalvik Other 6726 2768 0 169 10928 + Stack 928 928 0 0 928 + Ashmem 65 0 0 0 608 + Other dev 81 0 32 0 688 + .so mmap 4346 528 384 21 34032 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8864 64 8560 0 10208 + .ttf mmap 295 0 16 0 1088 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2155 16 16 0 5152 + Unknown 1098 1040 32 14 1632 + TOTAL 60853 36016 9984 727 157232 31071 20649 5342 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13968 30960 + Native Heap: 17216 18080 + Code: 10016 96224 + Stack: 928 928 + Graphics: 0 0 + Private Other: 3872 + System: 14853 + Unknown: 11040 + + TOTAL PSS: 60853 TOTAL RSS: 157232 TOTAL SWAP PSS: 727 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 54 + Parcel memory: 5 Parcel count: 20 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-008/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/activity-start.txt new file mode 100644 index 0000000..faa8233 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 3895 +WaitTime: 3908 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/logcat.txt new file mode 100644 index 0000000..d5840ec --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:03:01.281 8544 8544 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:03:02.118 8544 8544 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:03:02.119 8544 8544 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:03:08.642 8544 8564 I EdgeGenBench: backend=reference +08-27 16:03:08.642 8544 8564 I EdgeGenBench: CPU fallback=false +08-27 16:03:08.642 8544 8564 I EdgeGenBench: cold_ms=0.011625 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: warm_mean_ms=0.002335 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: warm_p95_ms=0.002708 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: runs=100 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: baseline_preprocess_mean_ms=32.760015 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: fused_preprocess_mean_ms=11.625028 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: preprocess_elements=262144 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: preprocess_speedup_x=2.818059 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: output=0.156160 +08-27 16:03:08.642 8544 8564 I EdgeGenBench: power=not measured +08-27 16:03:08.642 8544 8564 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:03:08.695 8544 8544 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.011625,"warm_mean_ms":0.00233504,"warm_p95_ms":0.002708,"runs":100,"baseline_preprocess_mean_ms":32.7600154,"fused_preprocess_mean_ms":11.62502804,"preprocess_elements":262144,"preprocess_speedup_x":2.818059044,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860988655} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/meminfo.txt new file mode 100644 index 0000000..c093564 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16966725 Realtime: 16966725 + +** MEMINFO in pid 8544 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17322 17280 0 77 18144 24384 17323 2056 + Dalvik Heap 4283 4160 32 333 5168 6687 3408 3279 + Dalvik Other 6454 2464 0 169 10688 + Stack 960 960 0 0 960 + Ashmem 65 0 0 0 608 + Other dev 81 0 32 0 688 + .so mmap 4339 528 384 21 34016 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8848 64 8544 0 10192 + .ttf mmap 295 0 16 0 1088 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2155 16 16 0 5152 + Unknown 1070 1008 32 14 1616 + TOTAL 60642 35792 9968 727 157056 31071 20731 5335 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13984 30976 + Native Heap: 17280 18144 + Code: 9968 96224 + Stack: 960 960 + Graphics: 0 0 + Private Other: 3568 + System: 14882 + Unknown: 10752 + + TOTAL PSS: 60642 TOTAL RSS: 157056 TOTAL SWAP PSS: 727 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 52 + Parcel memory: 5 Parcel count: 22 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-009/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/activity-start.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/activity-start.txt new file mode 100644 index 0000000..5617259 --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/activity-start.txt @@ -0,0 +1,7 @@ +Starting: Intent { cmp=dev.edgegenbench/.MainActivity (has extras) } +Status: ok +LaunchState: COLD +Activity: dev.edgegenbench/.MainActivity +TotalTime: 3246 +WaitTime: 3348 +Complete diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/logcat.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/logcat.txt new file mode 100644 index 0000000..a8e53ae --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/logcat.txt @@ -0,0 +1,20 @@ +--------- beginning of main +08-27 16:03:11.092 8650 8650 I EdgeGenBench: MainActivity.onCreate: rendering high-contrast benchmark UI +08-27 16:03:12.432 8650 8650 I EdgeGenBench: MainActivity.onCreate: content view attached +08-27 16:03:12.432 8650 8650 I EdgeGenBench: MainActivity.onCreate: auto_run requested +08-27 16:03:17.740 8650 8668 I EdgeGenBench: backend=reference +08-27 16:03:17.740 8650 8668 I EdgeGenBench: CPU fallback=false +08-27 16:03:17.740 8650 8668 I EdgeGenBench: cold_ms=0.012084 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: warm_mean_ms=0.002570 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: warm_p95_ms=0.002625 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: runs=100 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: baseline_preprocess_mean_ms=24.581362 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: fused_preprocess_mean_ms=12.013676 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: preprocess_elements=262144 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: preprocess_speedup_x=2.046115 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: preprocess_max_abs_drift=0.000000 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: output_max_abs_drift=0.000000 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: output=0.156160 +08-27 16:03:17.740 8650 8668 I EdgeGenBench: power=not measured +08-27 16:03:17.740 8650 8668 I EdgeGenBench: placement={"backend":"reference","operators":{"ReferenceLinear":1},"cpu_fallback":false,"hardware_measurement":false} +08-27 16:03:17.792 8650 8650 I EdgeGenBench: benchmark_json={"schema_version":1,"backend":"reference","cpu_fallback":false,"cold_ms":0.012084,"warm_mean_ms":0.00257002,"warm_p95_ms":0.002625,"runs":100,"baseline_preprocess_mean_ms":24.58136208,"fused_preprocess_mean_ms":12.01367589,"preprocess_elements":262144,"preprocess_speedup_x":2.04611497,"preprocess_max_abs_drift":0,"output_max_abs_drift":0,"output":0.156159997,"runtime_page_size_bytes":16384,"power":"not measured","captured_at_epoch_ms":1787860997751} diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/meminfo.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/meminfo.txt new file mode 100644 index 0000000..d6aed3d --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/meminfo.txt @@ -0,0 +1,50 @@ +Applications Memory Usage (in Kilobytes): +Uptime: 16975922 Realtime: 16975922 + +** MEMINFO in pid 8650 [dev.edgegenbench] ** + Pss Private Private SwapPss Rss Heap Heap Heap + Total Dirty Clean Dirty Total Size Alloc Free + ------ ------ ------ ------ ------ ------ ------ ------ + Native Heap 17306 17264 0 78 18128 24384 17297 2071 + Dalvik Heap 4251 4128 32 333 5136 6687 3344 3343 + Dalvik Other 6750 2736 0 169 11008 + Stack 864 864 0 0 864 + Ashmem 65 0 0 0 608 + Other dev 81 0 32 0 688 + .so mmap 4339 528 384 21 34016 + .jar mmap 3486 0 400 0 40352 + .apk mmap 8869 64 8560 0 10224 + .ttf mmap 266 0 0 0 1024 + .dex mmap 22 0 0 0 912 + .oat mmap 69 0 0 0 1664 + .art mmap 10466 9312 512 113 25808 + Other mmap 2163 16 16 0 5168 + Unknown 1082 1024 32 14 1616 + TOTAL 60807 35936 9968 728 157216 31071 20641 5414 + + App Summary + Pss(KB) Rss(KB) + ------ ------ + Java Heap: 13952 30944 + Native Heap: 17264 18128 + Code: 9968 96240 + Stack: 864 864 + Graphics: 0 0 + Private Other: 3856 + System: 14903 + Unknown: 11040 + + TOTAL PSS: 60807 TOTAL RSS: 157216 TOTAL SWAP PSS: 728 + + Objects + Views: 13 ViewRootImpl: 1 + AppContexts: 7 Activities: 1 + Assets: 20 AssetManagers: 0 + Local Binders: 14 Proxy Binders: 55 + Parcel memory: 4 Parcel count: 16 + Death Recipients: 0 WebViews: 0 + + SQL + MEMORY_USED: 0 + PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0 + diff --git a/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/thermal.txt b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/thermal.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/runs/run-010/thermal.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/thermal-after.txt b/reports/device/android-16kb-api35-reference-10-runs/thermal-after.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/thermal-after.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/reports/device/android-16kb-api35-reference-10-runs/thermal-before.txt b/reports/device/android-16kb-api35-reference-10-runs/thermal-before.txt new file mode 100644 index 0000000..3c8a2fb --- /dev/null +++ b/reports/device/android-16kb-api35-reference-10-runs/thermal-before.txt @@ -0,0 +1,23 @@ +IsStatusOverride: false +ThermalEventListeners: + callbacks: 5 + killed: false + broadcasts count: -1 +ThermalStatusListeners: + callbacks: 3 + killed: false + broadcasts count: -1 +Thermal Status: 0 +Cached temperatures: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +HAL Ready: true +HAL connection: + ThermalHAL 2.0 connected: yes +Current temperatures from HAL: + Temperature{mValue=30.8, mType=3, mName=test temperature sensor, mStatus=0} +Current cooling devices from HAL: + CoolingDevice{mValue=100, mType=0, mName=test cooling device} +Temperature static thresholds from HAL: + TemperatureThreshold{mType=3, mName=test temperature sensor, mHotThrottlingThresholds=[NaN, NaN, NaN, 48.0, NaN, NaN, 60.0], mColdThrottlingThresholds=[NaN, NaN, NaN, NaN, NaN, NaN, NaN]} +Temperature headroom thresholds: +[NaN, NaN, NaN, NaN, NaN, NaN, 1.4] diff --git a/scripts/profile_android_reference.sh b/scripts/profile_android_reference.sh index 8e07848..6c03975 100755 --- a/scripts/profile_android_reference.sh +++ b/scripts/profile_android_reference.sh @@ -50,7 +50,7 @@ for ((run = 1; run <= repeats; run++)); do completed=false for _ in {1..80}; do log_snapshot="$(adb logcat -d -s EdgeGenBench)" - if grep -q 'power=not measured' <<< "$log_snapshot"; then + if grep -q 'benchmark_json=' <<< "$log_snapshot"; then completed=true break fi @@ -62,8 +62,13 @@ for ((run = 1; run <= repeats; run++)); do adb shell dumpsys meminfo "$package_name" > "$run_dir/meminfo.txt" adb shell dumpsys thermalservice > "$run_dir/thermal.txt" - grep -q 'backend=reference (NOT QNN)' "$run_dir/logcat.txt" + # Match the stable machine-readable backend line emitted by v0.1.7+. The + # older UI label included "(NOT QNN)", but the structured log deliberately + # reports only the backend identifier. + grep -Eq 'EdgeGenBench: backend=reference\r?$' "$run_dir/logcat.txt" + grep -q 'CPU fallback=false' "$run_dir/logcat.txt" grep -q 'power=not measured' "$run_dir/logcat.txt" + grep -q 'benchmark_json=' "$run_dir/logcat.txt" grep -q 'baseline_preprocess_mean_ms=' "$run_dir/logcat.txt" grep -q 'fused_preprocess_mean_ms=' "$run_dir/logcat.txt" cold_ms="$(awk -F'cold_ms=' 'NF > 1 {print $2; exit}' "$run_dir/logcat.txt" | tr -d '\r')" From bf4c4d28e8a07715a16d659ee0ad7e552f3e3f48 Mon Sep 17 00:00:00 2001 From: triasha72 Date: Thu, 27 Aug 2026 16:10:38 -0400 Subject: [PATCH 2/2] Validate tracked 16 KB Android runtime evidence --- README.md | 4 ++ docs/end_to_end_acceptance.md | 5 ++ reports/portfolio_acceptance.json | 8 +++- reports/portfolio_acceptance.md | 4 +- scripts/build_portfolio_acceptance.py | 69 ++++++++++++++++++++++++--- tests/test_portfolio_acceptance.py | 31 ++++++++++++ 6 files changed, 111 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2bbd65a..c808c87 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,10 @@ Repeated physical-device reference runs can be captured with post-run memory and thermal snapshots from sampled peaks and power measurements. The first retained 10-run capture is summarized in the [Samsung SM-A356E repeated-device report](reports/android_sm_a356e_reference_10_run_v0_1_4.md). +The APK/JNI reference path was also executed for 10 cold launches on an Android +15 ARM64 emulator whose runtime reported `PAGE_SIZE=16384`; the raw evidence and +claim boundaries are summarized in the +[Android 16 KB runtime report](reports/android_16kb_emulator_reference_v0_1_7.md). Every successful CI run also assembles a versioned end-to-end release-evidence bundle containing native baseline/fused benchmark JSON, the verified APK, the 16 KiB alignment report, a Git revision, and SHA-256 checksums. The acceptance diff --git a/docs/end_to_end_acceptance.md b/docs/end_to_end_acceptance.md index 8f15a6a..79e20c2 100644 --- a/docs/end_to_end_acceptance.md +++ b/docs/end_to_end_acceptance.md @@ -44,6 +44,11 @@ for reviewers. checks; - all retained files are bound to a Git revision with SHA-256 digests. +The tracked Android 16 KB evidence separately demonstrates that the v0.1.7 +reference APK/JNI path launches and completes repeated benchmarks on an API 35 +ARM64 emulator reporting `PAGE_SIZE=16384`. It is runtime-compatibility proof, +not physical-device performance, QNN placement, thermal, or power evidence. + ## What requires a physical device CI does not claim NPU placement, thermals, or power. Attach physical-device diff --git a/reports/portfolio_acceptance.json b/reports/portfolio_acceptance.json index 405878f..d3f3033 100644 --- a/reports/portfolio_acceptance.json +++ b/reports/portfolio_acceptance.json @@ -76,8 +76,12 @@ "claim": "Build/JNI/capture paths exist; requires a supported Snapdragon APK run." }, "android_16kb_runtime": { - "status": "packaging_validated_runtime_pending", - "claim": "ELF/APK alignment passes; runtime PAGE_SIZE=16384 evidence is pending." + "status": "validated_16kb_emulator_runtime", + "environment": "Android 15 API 35 ARM64 16 KB emulator", + "page_size_bytes": 16384, + "runs": 10, + "report": "reports/android_16kb_emulator_reference_v0_1_7.md", + "claim": "APK/JNI reference path executed on PAGE_SIZE=16384; not physical-device performance." }, "power": { "status": "not_measured", diff --git a/reports/portfolio_acceptance.md b/reports/portfolio_acceptance.md index 9b24ca5..48d110a 100644 --- a/reports/portfolio_acceptance.md +++ b/reports/portfolio_acceptance.md @@ -6,7 +6,7 @@ | `android_reference` | `validated_physical_device` | Reference JNI/application measurements; not QNN. | | `qualcomm_ai_hub_qnn` | `validated_ai_hub_physical_qnn` | Physical AI Hub model profiling; not Android APK end-to-end latency. | | `android_qnn_apk` | `implementation_complete_evidence_pending` | Build/JNI/capture paths exist; requires a supported Snapdragon APK run. | -| `android_16kb_runtime` | `packaging_validated_runtime_pending` | ELF/APK alignment passes; runtime PAGE_SIZE=16384 evidence is pending. | +| `android_16kb_runtime` | `validated_16kb_emulator_runtime` | APK/JNI reference path executed on PAGE_SIZE=16384; not physical-device performance. | | `power` | `not_measured` | No power-savings claim is made without a named calibrated tool. | ## Validated Qualcomm QNN results @@ -22,4 +22,4 @@ Tracked QNN context provenance match: **True** (`artifacts/qualcomm_ai_hub/curre | 256 | 0.047000 | 5446808.511 | 122896384 | NPU × 9 | 0.002865936 | AI Hub measurements are physical-device model profiles, not Android application end-to-end timings. Current-model acceptance requires source-model provenance to match the repository, as reported above. -Power remains unmeasured. The two pending proof items are a supported-device QNN APK run and a runtime page size of 16384 bytes. +Power remains unmeasured. The remaining hardware proof item is a supported-device QNN APK run; the 16 KB reference APK/JNI runtime is validated on an API 35 emulator. diff --git a/scripts/build_portfolio_acceptance.py b/scripts/build_portfolio_acceptance.py index 68a460b..ea1d134 100644 --- a/scripts/build_portfolio_acceptance.py +++ b/scripts/build_portfolio_acceptance.py @@ -4,6 +4,7 @@ from __future__ import annotations import argparse +import csv import hashlib import json import subprocess @@ -134,6 +135,60 @@ def validate_ai_hub_qnn(report_path: Path, repository_root: Path) -> dict[str, A } +def validate_android_16kb_runtime(evidence_dir: Path, report_path: Path) -> dict[str, Any]: + if not report_path.is_file(): + raise ValueError("tracked Android 16 KB report is missing") + device_report = evidence_dir / "device-report.txt" + measurement_status = evidence_dir / "measurement-status.txt" + csv_path = evidence_dir / "latency-memory.csv" + if not all(path.is_file() for path in (device_report, measurement_status, csv_path)): + raise ValueError("Android 16 KB evidence bundle is incomplete") + + device = dict( + line.split("=", 1) + for line in device_report.read_text(encoding="utf-8").splitlines() + if "=" in line + ) + if device.get("page_size") != "16384" or device.get("abi") != "arm64-v8a": + raise ValueError("Android runtime evidence must prove an ARM64 16 KB environment") + if device.get("model") != "sdk_gphone16k_arm64" or device.get("sdk") != "35": + raise ValueError("Android runtime evidence must identify the API 35 16 KB emulator") + + with csv_path.open(encoding="utf-8", newline="") as stream: + rows = list(csv.DictReader(stream)) + if len(rows) != 10: + raise ValueError("Android 16 KB evidence must contain exactly ten runs") + for row in rows: + if float(row["preprocess_max_abs_drift"]) > 1e-6: + raise ValueError("Android 16 KB preprocessing drift exceeds tolerance") + if float(row["output_max_abs_drift"]) > 1e-6: + raise ValueError("Android 16 KB output drift exceeds tolerance") + + status = measurement_status.read_text(encoding="utf-8") + if "backend=reference" not in status or "power=not-measured" not in status: + raise ValueError("Android 16 KB claim boundaries are missing") + logs = sorted((evidence_dir / "runs").glob("run-*/logcat.txt")) + if len(logs) != 10: + raise ValueError("Android 16 KB evidence must retain ten logcat files") + for log in logs: + content = log.read_text(encoding="utf-8") + if '"runtime_page_size_bytes":16384' not in content: + raise ValueError(f"{log.name} does not report a 16 KB runtime") + if "EdgeGenBench: backend=reference" not in content or "CPU fallback=false" not in content: + raise ValueError(f"{log.name} has invalid backend placement metadata") + + return { + "status": "validated_16kb_emulator_runtime", + "environment": "Android 15 API 35 ARM64 16 KB emulator", + "page_size_bytes": 16384, + "runs": len(rows), + "report": f"reports/{report_path.name}", + "claim": ( + "APK/JNI reference path executed on PAGE_SIZE=16384; not physical-device performance." + ), + } + + def build_portfolio_acceptance( *, repository_root: Path, qnn_report: Path, output_json: Path, output_markdown: Path ) -> dict[str, Any]: @@ -141,6 +196,11 @@ def build_portfolio_acceptance( android_report = repository_root / "reports/android_sm_a356e_reference_10_run_v0_1_4.md" if not android_report.is_file(): raise ValueError("tracked Samsung reference report is missing") + android_16kb_report = repository_root / "reports/android_16kb_emulator_reference_v0_1_7.md" + android_16kb = validate_android_16kb_runtime( + repository_root / "reports/device/android-16kb-api35-reference-10-runs", + android_16kb_report, + ) matrix = { "schema_version": 1, "project": "EdgeGenBench", @@ -160,10 +220,7 @@ def build_portfolio_acceptance( "status": "implementation_complete_evidence_pending", "claim": "Build/JNI/capture paths exist; requires a supported Snapdragon APK run.", }, - "android_16kb_runtime": { - "status": "packaging_validated_runtime_pending", - "claim": "ELF/APK alignment passes; runtime PAGE_SIZE=16384 evidence is pending.", - }, + "android_16kb_runtime": android_16kb, "power": { "status": "not_measured", "claim": "No power-savings claim is made without a named calibrated tool.", @@ -209,8 +266,8 @@ def build_portfolio_acceptance( "AI Hub measurements are physical-device model profiles, not Android " "application end-to-end timings. Current-model acceptance requires source-model " "provenance to match the repository, as reported above.", - "Power remains unmeasured. The two pending proof items are a supported-device " - "QNN APK run and a runtime page size of 16384 bytes.", + "Power remains unmeasured. The remaining hardware proof item is a supported-device " + "QNN APK run; the 16 KB reference APK/JNI runtime is validated on an API 35 emulator.", ] ) output_markdown.write_text("\n".join(lines) + "\n", encoding="utf-8") diff --git a/tests/test_portfolio_acceptance.py b/tests/test_portfolio_acceptance.py index f70cc66..f0099f1 100644 --- a/tests/test_portfolio_acceptance.py +++ b/tests/test_portfolio_acceptance.py @@ -1,5 +1,6 @@ import json import runpy +import shutil from collections.abc import Callable from pathlib import Path from typing import cast @@ -10,6 +11,8 @@ FUNCTIONS = runpy.run_path(SCRIPT) ValidateQnn = Callable[[Path, Path], dict[str, object]] validate_ai_hub_qnn = cast(ValidateQnn, FUNCTIONS["validate_ai_hub_qnn"]) +Validate16Kb = Callable[[Path, Path], dict[str, object]] +validate_android_16kb_runtime = cast(Validate16Kb, FUNCTIONS["validate_android_16kb_runtime"]) def test_validates_tracked_ai_hub_qnn_evidence() -> None: @@ -44,3 +47,31 @@ def test_rejects_mismatched_qnn_context_hash(tmp_path: Path) -> None: path.write_text(json.dumps(report)) with pytest.raises(ValueError, match="context binary"): validate_ai_hub_qnn(path, root) + + +def test_validates_tracked_android_16kb_runtime_evidence() -> None: + root = Path(__file__).parents[1] + result = validate_android_16kb_runtime( + root / "reports/device/android-16kb-api35-reference-10-runs", + root / "reports/android_16kb_emulator_reference_v0_1_7.md", + ) + assert result["status"] == "validated_16kb_emulator_runtime" + assert result["page_size_bytes"] == 16384 + assert result["runs"] == 10 + + +def test_rejects_non_16kb_android_runtime_evidence(tmp_path: Path) -> None: + root = Path(__file__).parents[1] + source = root / "reports/device/android-16kb-api35-reference-10-runs" + evidence = tmp_path / "evidence" + shutil.copytree(source, evidence) + device_report = evidence / "device-report.txt" + device_report.write_text( + device_report.read_text(encoding="utf-8").replace("page_size=16384", "page_size=4096"), + encoding="utf-8", + ) + with pytest.raises(ValueError, match="ARM64 16 KB"): + validate_android_16kb_runtime( + evidence, + root / "reports/android_16kb_emulator_reference_v0_1_7.md", + )