You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Build a reproducible benchmark suite that measures litertlm-kmp performance on real Android devices and produces public, citable numbers for the README and a results page on urjalabs.in. This closes the README roadmap "benchmark suite" item.
Why this matters
Credibility: hard, reproducible numbers are the strongest signal for adoption, hiring, and any commercial conversation.
Differentiation: most local-AI benchmarks target MacBooks / flagship Pixels. Our angle is real mid-range and low-end Android — that's the story nobody else tells.
Device matrix (initial)
Filling in on the laptop session — two devices to start (a phone + a tablet); expand later.
Device
Type
SoC
Total RAM
Effective RAM*
Android
Thermal notes
phone — TBD
phone
tablet — TBD
tablet
* Record both MemTotal and the OEM RAM-expansion-corrected value from HardwareProvider.effectiveRamMb() — the gap between them is part of the story.
Models to cover
For each: record model id, quantization, and on-disk size.
Gemma E2B (primary, text)
Gemma E4B (multimodal, where RAM tier allows)
EmbeddingGemma-300M (ONNX) — RAG embedder
Cross-encoder reranker (ONNX)
Whisper (STT) — optional
Vision path: Gemma E2B/E4B with an image attachment
Metrics to capture
Generation
TTFT — time to first token (prefill latency)
Prefill throughput (tokens/sec)
Decode throughput (tokens/sec, steady-state) ← headline number
End-to-end latency for a fixed output length (e.g. 256 tokens)
Memory
Peak PSS/RSS during load + inference
Model load time (cold vs warm)
Max context length before OOM / RAM ceiling per device tier
Energy / thermal
Battery drain per 1000 generated tokens (mAh or %)
Thermal throttling: decode tok/s over a sustained run (e.g. 5–10 min) to show sustained vs burst
Goal
Build a reproducible benchmark suite that measures
litertlm-kmpperformance on real Android devices and produces public, citable numbers for the README and a results page on urjalabs.in. This closes the README roadmap "benchmark suite" item.Why this matters
Device matrix (initial)
Filling in on the laptop session — two devices to start (a phone + a tablet); expand later.
* Record both
MemTotaland the OEM RAM-expansion-corrected value fromHardwareProvider.effectiveRamMb()— the gap between them is part of the story.Models to cover
For each: record model id, quantization, and on-disk size.
Metrics to capture
Generation
Memory
Energy / thermal
RAG / embeddings
Multimodal (optional)
Methodology (for reproducibility)
Harness / implementation sketch
sample-app(or a dedicated:benchmarkmodule) that runs the matrix programmatically:Debug.getPss()/ActivityManager.benchmarks/(JSON/CSV) + a generated markdown table.Reporting / deliverables
BENCHMARKS.md(ordocs/page) — methodology + results table, generatable from the JSON./benchmarks) rendering the same data — feeds the public positioning.Acceptance criteria
Out of scope (for now)
Note: harness should be runnable from the laptop session via Gradle + adb against the two connected devices.