Skip to content
All research

18 of 25

model and chip pairs reached the first token sooner on ExecuTorch

OpenWeights, 3 and 4 September 2026

Five chips, two runtimes.

How fast five small models answer on five phone chips, in llama.cpp and in ExecuTorch.

What we found

  • 18 of 25 pairs reached the first token sooner on ExecuTorch

    Time to first token is what a user waits before the reply starts. Across both runtimes it ran from 0.30 s to 15.90 s.

  • 19 of 25 streamed faster on ExecuTorch

    Time per output token is how fast the reply then streams. Tensor G5 and Exynos 2400 decode at about half speed on llama.cpp against ExecuTorch, cause unknown.

  • SmolLM3 is the exception on prefill

    On ExecuTorch it prefills at a third of llama.cpp's rate on every chip, which is the compiled model rather than the phones.

The results

Every model on every chip

Latency map

Each line joins one chip's two runtimes. Lower and left is faster. Both axes are logarithmic.

llama.cpp, GGUFExecuTorch

0.30.51251020203050100200300Time to first token, seconds (lower and left is faster)Time per output token, msD9500s8 Gen 38 EliteTensor G5Exynos 2400

All models, all chips

The same numbers as a grid, both columns on logarithmic scales. The model picked above is banded.

llama.cpp, GGUFExecuTorch

TTFT, s0.31310TPOT, ms2050100200Gemma 3 1BD9500s8 Gen 38 EliteTensor G5Exynos 2400LFM2.5 1.2BD9500s8 Gen 38 EliteTensor G5Exynos 2400Qwen3 1.7BD9500s8 Gen 38 EliteTensor G5Exynos 2400Llama 3.2 3BD9500s8 Gen 38 EliteTensor G5Exynos 2400SmolLM3 3BD9500s8 Gen 38 EliteTensor G5Exynos 2400

Every number

Medians per cell, llama.cpp beside ExecuTorch. Bold blue marks the faster runtime on that chip. Prefill is the median rate behind the time to first token.

ChipTime to first token, sPrefill, tok/sTime per token, ms
llama.cppExecuTorchllama.cppExecuTorchllama.cppExecuTorch
Gemma 3 1B
Dimensitys1.270.43, faster61164, faster42, faster48
Snapdragon 8 Gen 31.020.37, faster69192, faster5127, faster
Snapdragon 8 Elite0.800.40, faster79167, faster28, faster44
Tensor G51.350.48, faster56156, faster11350, faster
Exynos 24001.680.45, faster45151, faster7556, faster
LFM2.5 1.2B
Dimensitys0.810.30, faster138321, faster3125, faster
Snapdragon 8 Gen 30.730.44, faster130217, faster4327, faster
Snapdragon 8 Elite0.590.30, faster153288, faster2718, faster
Tensor G50.830.32, faster112248, faster10646, faster
Exynos 24000.970.42, faster92208, faster5938, faster
Qwen3 1.7B
Dimensitys1.050.76, faster113122, faster57, faster64
Snapdragon 8 Gen 30.49, faster0.77195, faster1207441, faster
Snapdragon 8 Elite0.37, faster0.75266, faster13040, faster41
Tensor G51.170.89, faster93102, faster18494, faster
Exynos 24000.890.81, faster100112, faster9767, faster
Llama 3.2 3B
Dimensitys2.391.36, faster3987, faster8282
Snapdragon 8 Gen 32.111.82, faster4366, faster10791, faster
Snapdragon 8 Elite1.701.47, faster4880, faster8363, faster
Tensor G52.431.55, faster3771, faster180125, faster
Exynos 24003.461.73, faster2564, faster151119, faster
SmolLM3 3B
Dimensitys1.18, faster12.6942, faster1379, faster91
Snapdragon 8 Gen 31.43, faster10.3339, faster1410185, faster
Snapdragon 8 Elite1.03, faster7.1847, faster217967, faster
Tensor G51.86, faster15.9035, faster11239108, faster
Exynos 24001.79, faster12.2629, faster11132121, faster

How we ran it

Prompts
The same 90 prompts: 30 GSM8K, 30 IFEval and 30 BFCL, except that Gemma 3 skips BFCL, having no tool syntax. So 60 to 90 per cell, 19 to 772 tokens long and 92 at the median, run greedy with thinking off.
Files
llama.cpp ran Q4_K_M GGUFs, Qwen3 at Q8_0. ExecuTorch ran the published XNNPACK INT8/INT4 exports, LFM2.5 as 8da4w and Llama 3.2 as SpinQuant.
Runs
One pass per cell with no repeats, on 3 and 4 September 2026.
Phone time
29 hours in all, plus loading and Test Lab queueing. Generation time per cell ran from 6 minutes (LFM2.5-1.2B on ExecuTorch, 8 Elite) to about 100 minutes (SmolLM3 on llama.cpp, Tensor G5).

Limits

What it is for
Picking a model, and one of the two runtimes the app ships, for a given phone.
Timing only
This page has no quality numbers. The pass rates on the same prompts are in the repository's benchmark matrix.
Not matched conditions
The Dimensitys ran in hand under a desk fan. The Snapdragon 8 Gen 3 ran on Qualcomm Device Cloud and the 8 Elite, Tensor G5 and Exynos 2400 on Firebase Test Lab, racked, where phones throttle within about 40 seconds.

Sources

Keep reading

All research
  • 63 to 71 ms

    per token on Inferentia2 from 1 to 32 streams, while throughput grows 26×

    ASICs, July and August 2026

    Llama 3.1 8B on AWS Trainium and Inferentia

    A fine-tune on Trainium, served on Inferentia2, measured beside an MI300X and an H200.

  • 1.84×

    the H200's KV cache on an MI300X with 70 GB of weights loaded, from 1.36× the memory

    Hardware, July 2026

    MI300X against H200

    One AMD Instinct MI300X against one NVIDIA H200, inference and training, on the same vLLM and PyTorch versions.

  • 2.9×

    the X2 Elite's GPU prefill on the M5, Gemma 3 1B Q4_0. On the CPU, the X2 Elite leads by 1.9×

    Hardware, 27 July 2026

    Apple M5 against Snapdragon X2 Elite

    A MacBook Air against a Qualcomm reference board on AI work: CPU, GPU and NPU, inference and training, with the same llama.cpp release and byte-identical weights.