Repository navigation
Benchmarks
LexiEngine is measured against the newest llama.cpp release on the same card, with the same model file and the same settings, every time the engine changes. This page has the current results, the cases where llama.cpp is still ahead, the older results, and the method.
The Qwen tables: LexiEngine version afaf544, November 13 (the Qwen path is unchanged in 14d173b). The Gemma tables: version 14d173b, November 14. Both against llama.cpp 1.0.0 (build b12359, released November 13, 2026; Vulkan, flash attention on the RX 7900 XTX; CUDA on the RTX 2060). One Radeon RX 7900 XTX (24 GB) capped at 291 W and one RTX 2060 (6 GB) in an Intel i7-9700 desktop on Linux 7.3, nothing else running beside any run, one slot, greedy. Generation is tokens per second after the first token.
This is one fixed configuration, the one the model is served with every day (batch 2048/512, at most 2 drafted tokens). Every engine change is measured in this table before and after.
| Prompt tokens | Generation, LexiEngine | Generation, llama.cpp 1.0.0 | Prompt processing, LexiEngine | Prompt processing, llama.cpp 1.0.0 |
|---|---|---|---|---|
| 62 | 76.8 tok/s | 65.3 tok/s | 323 tok/s | 180 tok/s |
| 76 (256-token answer) | 74.8 tok/s | 63.4 tok/s | 432 tok/s | 190 tok/s |
| 3,631 | 71.4 tok/s | 57.0 tok/s | 916 tok/s | 725 tok/s |
| 33,002 | 70.0 tok/s | 55.8 tok/s | 832 tok/s | 605 tok/s |
| 133,561 | 50.4 tok/s | device lost | 604 tok/s | |
| 253,291 | 40.1 tok/s | no result | 455 tok/s | |
| 261,896 (the full window) | 39.7 tok/s | no result | 445 tok/s |
One request per row. llama.cpp 1.0.0 lost its Vulkan device (vk::Queue::submit: ErrorDeviceLost) while reading the 133,561-token prompt and returned nothing on the 261,896-token one. LexiEngine answered both. That is at this table's configuration; with a smaller batch (1024/256) llama.cpp 1.0.0 read the 133,561-token prompt at 319 tok/s and generated at 37.4 tok/s, and lost its device on the 253,291- and 261,896-token prompts as before. The version before this one (5db82d6) generated at the same speeds and read the 33,002-, 133,561- and 261,896-token prompts at 765, 489 and 335 tok/s.
32 turns on one conversation, about 2,400 new tokens a turn on a cached history that grows to about 71,500 tokens.
| LexiEngine | llama.cpp 1.0.0 | |
|---|---|---|
| Whole session | 197 s | 305 s |
| Time to first token, turn 1 | 2.5 s | 3.3 s |
| Time to first token, turn 32 | 4.0 s | 7.8 s |
| Generation at turn 32 | 57.2 tok/s | 42.0 tok/s |
4-bit K/V cache, batch 2048/512, on both engines.
| Prompt tokens | Generation, LexiEngine | Generation, llama.cpp 1.0.0 | Prompt processing, LexiEngine | Prompt processing, llama.cpp 1.0.0 |
|---|---|---|---|---|
| 50 | 126.1 tok/s | 106.5 tok/s | 500 tok/s | 485 tok/s |
| 3,619 | 122.9 tok/s | 103.3 tok/s | 2,758 tok/s | 2,719 tok/s |
| 32,990 | 112.5 tok/s | 93.0 tok/s | 2,519 tok/s | 2,186 tok/s |
| 133,549 | 89.5 tok/s | 67.5 tok/s | 1,815 tok/s | 1,053 tok/s |
| 253,279 | 73.3 tok/s | 50.9 tok/s | 1,352 tok/s | 622 tok/s |
One request per row, greedy. LexiEngine is ahead at every depth and the lead grows with depth: 18% in generation on a short prompt, 44% at 253,000 tokens, where it also reads the prompt more than twice as fast (first token after 3 min 7 s against 6 min 47 s).
New in this version: Gemma 4 runs with the 4-bit K/V cache at contexts up to the model's 262,144 tokens. On a 24 GB card the 31B's weights (18.7 GB) leave room for a window of about 205,000 tokens; the engine computes that limit from the card and refuses a larger one with the figure. Measured at a 210,176-token context, batch 2048/512, with llama.cpp 1.0.0 started the same way (all layers on the GPU, its faster placement at this context):
| Prompt tokens | Generation, LexiEngine | Generation, llama.cpp 1.0.0 | Prompt processing, LexiEngine | Prompt processing, llama.cpp 1.0.0 |
|---|---|---|---|---|
| 3,595 | 31 to 33 tok/s | 33.4 tok/s | 817 tok/s | 661 tok/s |
| 32,966 | 29.0 tok/s | 29.8 tok/s | 548 tok/s | 447 tok/s |
| 133,525 | no result in this version | 21.4 tok/s | 178 tok/s | |
| 201,371 | no result in this version | 18.2 tok/s | 127 tok/s |
The engine reads prompts 23% faster at both measured depths and generates 1% to 8% slower (its generation varied by about 7% between runs). Known fault in this version: on the 31B a prompt beyond about 130,000 tokens is read to the end and then stops with an out-of-memory refusal on its last short pass, so the two deep rows have no engine result; the cause is found (the last passes asked for new buffer sizes while the driver's free-memory figure lagged) and the correction is in test for the next version. llama.cpp 1.0.0 answered both, after 12 min 32 s and 26 min 30 s. At the full 262,144-token window neither engine fits the 31B in 24 GB: llama.cpp ran with part of its buffers in system memory, at 104 tok/s prompt and 15 tok/s generation.
Gemma 4 E4B at its full 131,072-token context with the same cache: generation 125.8 tok/s after 3,595 tokens and 108.4 after 32,966 (llama.cpp 1.0.0: 117.7 and 105.0); prompt processing 5,318 and 4,237 tok/s (llama.cpp 1.0.0: 5,715 and 4,283).
4,096-token context, each engine's defaults, no speculation; prompts of about 50, 580 and 3,600 tokens.
| Card, model | Measure | LexiEngine | llama.cpp 1.0.0 |
|---|---|---|---|
| RX 7900 XTX, Qwythos 9B Q4_K_M | Generation | 124 / 117 / 114 tok/s | 108 / 106 / 104 |
| Prompt processing, 580 / 3,619 tokens | 2,449 / 2,885 tok/s | 1,701 / 2,719 | |
| RX 7900 XTX, Gemma 4 E4B Q4_K_M | Generation | 139 / 134 / 131 tok/s | 138 / 132 / 130 |
| Prompt processing, 556 / 3,595 tokens | 3,782 / 5,688 tok/s | 3,370 / 5,923 | |
| Peak video memory | 5.4 GB | 3.2 GB | |
| RX 7900 XTX, Gemma 4 31B Q4_K_M | Generation | 35.4 / 34.7 / 33.7 tok/s | 37.2 / 36.2 / 34.8 |
| Prompt processing, 556 / 3,595 tokens | 561 / 684 tok/s | 469 / 594 | |
| Peak video memory | 21.1 GB | 19.7 GB | |
| RTX 2060, Qwythos 9B Q4_K_M | Generation | 47.4 / 46.7 / 42.1 tok/s | 49.5 / 49.6 / 48.6 |
| Prompt processing, 580 / 3,619 tokens | 373 / 345 tok/s | 1,019 / 1,213 | |
| RTX 2060, Gemma 4 E4B Q4_K_M | Generation | 67.9 / 64.1 / 63.0 tok/s | 69.3 / 69.7 / 67.0 |
| Prompt processing, 556 / 3,595 tokens | 1,161 / 1,241 tok/s | 2,493 / 2,853 |
Where llama.cpp 1.0.0 is ahead: generation on Gemma 4 31B (3% to 5% at default settings), a 3,595-token prompt on Gemma 4 E4B (4%), and the RTX 2060, where LexiEngine's prompt processing on a 9B model is about a third of llama.cpp's and this version changed nothing. On Gemma 4 E4B generation is now level and a 556-token prompt is read 12% faster; in the previous version llama.cpp read Gemma prompts about twice as fast.
With the 27B's draft head on and the same settings on both engines at a 4,096-token context, LexiEngine generates at 82.3 / 71.8 / 58.9 tok/s against llama.cpp 1.0.0's 67.7 / 60.9 / 60.5, and its text with the draft head on is identical to its text with it off.
- Record provenance first. Save model identity and content hash, GGUF quantization, engine build, backend and driver, kernel, CPU/GPU, power cap, free memory, KV-cache type, context, batch/slot count, sampling, MTP state and installed settings. If any differ, treat it as a different experiment.
- Keep the machine idle and let thermal conditions stabilize. Close other GPU or CPU loads; note power and thermal policy. Do not mix benchmarks during maintenance, updates or background model downloads.
- Use identical requests and generated-token limits. Test short, approximately 3.6k, 21k and — if memory supports it — 68k-context inputs. Use a new random prompt prefix for each request to prevent cache reuse; label approximate lengths with their actual token counts. Align draft-head speculation on both sides before comparison.
- Repeat at least three times per routine test and record each run. Use the median, not the best result. For a one-run long-context measurement, label the result single-run instead of implying statistical confidence.
- Separate metrics: (a) time to first token in seconds, (b) prompt processing in tok/s, (c) generation in tok/s excluding the first-token delay. Never compare incompatible denominators.
- Assess noise and stability. Track per-run values, warm/cold behavior, variance, memory/power state and failure count. Calculate noise bands/confidence intervals from replicates where possible; do not claim statistical significance with three or fewer observations by default. Reproduce any changed result before accepting an optimization.
- Check output quality with matched prompts, held-out evaluations, perplexity/KLD where supported, and deterministic sampling where possible. Speed gained by changing output or truncating work is not a like-for-like win.
- Export a complete evidence record and compare through Bench and Evaluate, including device/context depth curves and quality gates; never substitute self-reported peaks for representative median trials.
- Open Panel Benchmarks and Evals to inspect run results, context-depth curves, comparisons, histograms and evaluation history.
- Review Optimizer for noise-aware search, Fit Lab for quantization and KLD checks, and Power and Hardware for power cap/thermal conditions.
- The engine exposes
lexi-engine bench,topology,lexify-plan,quantizeandcapture-activationsoperations; check the installed build's help before selecting flags. A command existing in the engine does not imply a corresponding Panel form is available on every kernel.
| Control / measurement | What it does |
|---|---|
| Bench / Evaluate | Runs or reviews performance and held-out quality checks; compare only matching model and hardware conditions. |
| Optimizer | Searches parameters with measured noise margins; candidate improvements require repeatability. |
| Power cap | Limits device power; altering it invalidates direct comparison with results recorded under another cap. |
| MTP on/off | Enables/disables draft-head token proposals; changing it changes the workload and measurement. |
| KV-cache / context / slots | Changes memory use and compute depth; keep all three fixed when comparing engines. |
| TTFT / prefill / decode rates | Measure distinct phases; do not combine or conflate their units. |
See Hardware, Security and Release Notes.
LexiSuite · Local OS / Kernel / Engine / Panel · Development / testing; not production-qualified
Getting Started · Security · Troubleshooting · Release Notes · Licence
Verify release checksums, finish first-boot enrollment on a trusted network, and respect the current proprietary licence.
- Home
- Getting Started
- Install from USB
- Write a stick
- Install to an internal disk
- Install on a computer you already use: Linux, macOS, Windows
- Updating
- Ternary models (experimental)
- First Boot
- Secure Boot
- Kernels
- Hardware
- Overview / Home
- Navigation and Help
- Models
- Instances
- LexiChat
- Builds and Engines
- Optimizer
- Fit Lab
- Benchmarks and Evals
- Training
- Decisions
- TokenGate
- Inference Fabric
- Media Generation
- Agents and MCP
- Power and Hardware
- Network and Access
- Storage, Backup and Updates
- Files, Terminal and Passwords
- Diagnostics
- Fleet
- Virtual Machines
- LexiOS and Secure Boot
- macOS