Files
vllm-omni/baselines/README.md
T
tzhouamandClaude Opus 5 9264ff81ab Include the baselines, comparisons and study documents, not just the fork
The packaging commit shipped the code and a summary of the numbers. It left out
everything the numbers are measured *against*, which is most of what makes them
checkable.

Added:

  baselines/                 llama.cpp runs (thread sweeps, NUMA sweeps, the
                             interleaved A/B passes behind the headline decode
                             figure) and the quality references: each build
                             against its own bf16 over 12 greedy prompts.
  benchmarks/.../results/    102 artifacts backing the published figures, each
                             with a provenance block naming the model,
                             quantization, thread set and build SHAs.
  docs/engines/              the engine analyses -- llama.cpp, ExecuTorch, MNN,
                             ncnn, vLLM, vLLM-Omni -- and the cross-engine and
                             device-simulation comparisons.
  docs/analysis/             the full study documents the summaries distil.
  docs/edge/comparisons.md   where this fork sits against llama.cpp and why:
                             decode is llama.cpp's, prefill is ours by ~2x, and
                             since neither engine exceeds 39% of the measured
                             222 GB/s ceiling the decode gap is the execution
                             model rather than the kernels.
  docs/edge/environment.md   pins and machine, and the correction below.

On "the modified vllm": there isn't one, and the doc says so plainly because it
is the obvious assumption. The vLLM checkout is clean upstream (0 commits
ahead, 0 uncommitted) and the installed wheel is stock 0.28.0+cpu. This fork
changes vLLM's CPU *behaviour* through vLLM's own extension points at import
time -- three CPU patches in vllm_omni/patch.py, the quantization-config
registry, the IR op registry, platform hooks -- specifically so the changes
survive a wheel upgrade rather than being lost on it. One of those patches is
why "KV sizing is not a memory lever" looked true for months: CpuPlatform
overwrote kv_cache_memory_bytes unconditionally, so the setting had no effect.
There is no patch series to apply; pin the version and let patch.py do the rest.

.gitignore gains explicit exceptions: upstream's blanket `*.json` and `results/`
rules were silently eating the measurement artifacts, which in this fork are the
substance rather than build output. Binary captures stay ignored.

No vLLM or llama.cpp source is redistributed -- only output produced with them.
NOTICE records both.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L1ax5wYLA6XbqEL1i8L9gZ
2026-09-14 14:01:12 +08:00

33 lines
1.4 KiB
Markdown

# Baselines
Measurements of other engines and of unquantized references, kept so the
comparisons in [docs/edge/comparisons.md](../docs/edge/comparisons.md) can be
checked rather than taken on trust.
## `llama_cpp/`
llama.cpp is the reference for CPU inference of a quantized model. Pinned
commit and build flags are in
[docs/edge/environment.md](../docs/edge/environment.md); no llama.cpp source is
redistributed here, only output produced with it.
| file | what |
|---|---|
| `llamacpp_q4km_t{4,8,16,32}.json` | Q4_K_M across thread counts |
| `llamacpp_grid_t*.json`, `llamacpp_node1_t*.json` | thread and NUMA-node sweeps |
| `ab_llamacpp_*.json` | interleaved A/B against vLLM on the same cores |
| `il_llamacpp_p{1,2,3}.json` | the interleaved passes behind the headline decode figure |
| `cmp_llamacpp.py` | the comparison driver |
Both engines are pinned with `taskset` to the same physical cores and run
strictly one at a time; vLLM's prefix caching is disabled, because `llama-bench`
has no such cache and leaving it on would not be a comparison.
## Quality references
`quality_*.json` and `quality_cmp_*.json` hold the greedy-divergence comparison:
each build against its **own** bf16 output over 12 prompts, plus the
cross-engine roll-up. Read the caveats in
[docs/edge/comparisons.md](../docs/edge/comparisons.md) before quoting these —
the bit budgets are not matched, and the metric saturates.