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
33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# Result artifacts
|
|
|
|
Raw output backing the published figures. Every file written by the current
|
|
harness carries a `provenance` block — model path, quantization, thread
|
|
affinity, build SHAs, host, environment — so a number can be traced to the run
|
|
that produced it and invalidated later if the run turns out to be wrong.
|
|
|
|
```bash
|
|
python -c "import json,sys; print(json.load(open(sys.argv[1]))['provenance'])" <file>.json
|
|
```
|
|
|
|
## Naming
|
|
|
|
| prefix | contents |
|
|
|---|---|
|
|
| `profile_*` | per-op decode profiles (`profile_cpu_step.py`) |
|
|
| `parity_*`, `export_parity_*` | numerical parity checks against a reference |
|
|
| `quality_*`, `cmp_*` | greedy-divergence fidelity |
|
|
| `aihub_*` | Qualcomm AI Hub on-device runs (Snapdragon) |
|
|
| `*_grid.jsonl` | interleaved A/B grids |
|
|
| `s25_*` | Galaxy S25 device estimates |
|
|
|
|
## Retracted files are kept, not deleted
|
|
|
|
Anything with `"retracted": true` names the reason and its replacement.
|
|
`profile_w4a8_g128_p{1,2}.json` are the clearest case: both show
|
|
`_C::onednn_mm` at ~2.97 ms/step — the signature of a checkpoint whose output
|
|
head was left in bf16 — and every W4A8 number derived from them is void. The
|
|
valid replacement is `profile_w4a8_g128_head_p1.json`.
|
|
|
|
They are kept because a deleted mistake teaches nothing, and because the older
|
|
reports still cite them.
|