arm64-v8a · Android 13+ · Apache-2.0

Two apps, one runtime

ENTITY is the assistant. ENTITY Bench is the same three-arm ablation as a standalone tool, so any arm64 phone can reproduce or challenge the findings - and contribute a row to the public dataset.

ENTITY icon ENTITY icon

ENTITY v3.7.1

on-device LLM chat

Download APK · 10.0 MB
file
ENTITY-v26-review-fixes-20260814-release.apk
sha-256
e97ec05fa29f1184db0f5c5fb3430e8db091fa4a80b6d7a62c2f3dc41d1243d8
requires
arm64-v8a, Android 13+

Upgrading from v3.6.2 or earlier? every build from v3.7.0 on is signed with a new certificate, so an in-place update fails with INSTALL_FAILED_UPDATE_INCOMPATIBLE and you have to uninstall first - which deletes saved conversations. Export anything you want with SHARE CHAT before you do. A fresh install is unaffected, and so is an update from v3.7.0 - that build carries the same certificate as this one. A certificate mismatch normally means a tampered build, so this is stated here rather than left to surprise you; the reason is entry 11 on the journey page.

ENTITY Bench icon ENTITY Bench icon

ENTITY Bench v2.2.1

on-device LLM benchmark

Download APK · 9.9 MB
file
ENTITY-Bench-v2.2.1-release.apk
sha-256
5eaf3db5ae6908626ea3e9bef6d08f587ac181d1109edc796516bc8e1deb9a9d
requires
arm64-v8a, Android 13+

Same certificate change as the assistant. Upgrading over v2.1.1 fails and needs an uninstall first, which deletes saved benchmark history - export each result you want to keep to CSV beforehand. A fresh install is unaffected, and so is an update from v2.2.0.

Ninety seconds from clone to chatting

git clone https://github.com/kkjjkamal123/ENTITY---Arm-Create-AI-Optimization-Challenge.git
cd ENTITY---Arm-Create-AI-Optimization-Challenge
adb install -r apk/ENTITY-v26-review-fixes-20260814-release.apk

Then on the phone: pick a model from the in-app catalog or import a GGUF you already have. Prefer Q4_0 or Q8_0 - the only two types that reach Arm's KleidiAI kernels (why); the recommended starting point is Llama-3.2-1B-Instruct-Q4_0.gguf. Leave Auto on, then open BENCHMARK and run the ablation unplugged to see power and tokens per watt.

ENTITY - the assistant

Before you download

The catalog spans seven vendors and 0.36B to 7B. Each entry is judged against memory the phone reports free right now - not installed RAM, which counts capacity already spent on everything else open - and, once the probe has run, carries an estimated generation rate and time to first token. The reasoning is on the optimizations page.

What the file actually contains

A GGUF named Q4_0 is not uniformly Q4_0. ENTITY parses the tensor table and reports the fraction of weights that reach Arm's kernels, naming the largest tensor that does not - on the reference Llama-3.2-1B-Q4_0 that is 76%, and the missing quarter includes the output projection.

What that answer cost

Prompt and generated tokens are reported apart, never as one rate. They are produced by different regimes - the prompt goes through in batches and is compute-bound, each generated token re-reads every weight and is bandwidth-bound. Averaging them is why speed claims about local models are so often incomparable. Timings cover model execution only, so a slow redraw cannot pass as a slow model.

ENTITY Bench - the experiment, standalone

No chat. Import a model, run the ablation, get an attributed result: naive, threads-only, auto - plus the optional efficiency-core arm, SUSTAINED mode (who throttles first once the SoC is hot) and SWEEP mode (every thread width, pinned and scheduler-placed).

Sources and build instructions: the repository · contribute a row: the leaderboard.