Files
vllm-omni/benchmarks/edge_harness/results/vllm_cpu_int4_decode.jsonl
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

5 lines
2.5 KiB
JSON

{"tag": "g64", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "detokenize": true, "quantization": null, "enforce_eager": false, "init_s": 48.72, "rss_mb": 8698.2, "rss_peak_mb": 8740.1, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1388, "pp_tps": 3688.83, "tg_tokens": 128, "tg_s": 1.5661, "tg_tps": 81.1, "raw": {"pp": [0.18187299091368914, 0.13879754999652505, 0.14083293126896024], "tg": [1.5783826517872512, 1.605138630606234, 1.6051195533946157], "tg1": [0.012359960936009884, 0.01597361685708165, 0.012323817238211632]}}
{"tag": "g64-nodetok", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "detokenize": false, "quantization": null, "enforce_eager": false, "init_s": 48.8, "rss_mb": 8696.5, "rss_peak_mb": 8740.1, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1358, "pp_tps": 3769.01, "tg_tokens": 128, "tg_s": 1.5464, "tg_tps": 82.13, "raw": {"pp": [0.1431337110698223, 0.1448423806577921, 0.13584455801174045], "tg": [1.5589092588052154, 1.5590085829608142, 1.5854099839925766], "tg1": [0.014919216744601727, 0.012509028892964125, 0.012527205981314182]}}
{"tag": "g128", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g128", "dtype": "bfloat16", "compilation_config": null, "detokenize": true, "quantization": null, "enforce_eager": false, "init_s": 79.77, "rss_mb": 8076.3, "rss_peak_mb": 8125.4, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1427, "pp_tps": 3588.51, "tg_tokens": 128, "tg_s": 1.4857, "tg_tps": 85.48, "raw": {"pp": [0.14267769688740373, 0.16987481201067567, 0.14496924076229334], "tg": [1.5096165058203042, 1.497948023956269, 1.5295235989615321], "tg1": [0.012536610942333937, 0.012263210024684668, 0.01491469331085682]}}
{"tag": "g128-nodetok", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g128", "dtype": "bfloat16", "compilation_config": null, "detokenize": false, "quantization": null, "enforce_eager": false, "init_s": 49.17, "rss_mb": 8080.9, "rss_peak_mb": 8126.0, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1356, "pp_tps": 3775.85, "tg_tokens": 128, "tg_s": 1.4776, "tg_tps": 85.95, "raw": {"pp": [0.13559845183044672, 0.1453161840327084, 0.13751713698729873], "tg": [1.4896750310435891, 1.524823788087815, 1.522187131922692], "tg1": [0.012088158167898655, 0.012088059913367033, 0.012109969276934862]}}