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
6 lines
2.9 KiB
JSON
6 lines
2.9 KiB
JSON
{"tag": "vllm-int4-g64-t4", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "quantization": null, "enforce_eager": false, "init_s": 81.24, "threads_bind": "0-3", "omp_num_threads": "4", "pp_tokens": 512, "pp_s": 0.5824, "pp_tps": 879.12, "tg_tokens": 128, "tg_s": 4.7788, "tg_tps": 26.58, "raw": {"pp": [0.588689471129328, 0.5823977291584015, 0.5908681848086417], "tg": [4.8179576066322625, 5.019054782111198, 6.836774786002934], "tg1": [0.039164267014712095, 0.04048056015744805, 0.03950501000508666]}}
|
|
{"tag": "vllm-int4-g64-t8", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "quantization": null, "enforce_eager": false, "init_s": 79.16, "threads_bind": "0-7", "omp_num_threads": "8", "pp_tokens": 512, "pp_s": 0.321, "pp_tps": 1595.07, "tg_tokens": 128, "tg_s": 2.8446, "tg_tps": 44.65, "raw": {"pp": [0.3280641417950392, 0.32098965905606747, 0.33939772471785545], "tg": [2.875607998110354, 2.867094303946942, 2.866884418297559], "tg1": [0.02253475086763501, 0.022273391019552946, 0.022320172749459743]}}
|
|
{"tag": "vllm-int4-g64-t16", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "quantization": null, "enforce_eager": false, "init_s": 46.81, "threads_bind": "0-15", "omp_num_threads": "16", "pp_tokens": 512, "pp_s": 0.189, "pp_tps": 2708.83, "tg_tokens": 128, "tg_s": 1.9166, "tg_tps": 66.26, "raw": {"pp": [0.1913696713745594, 0.2119541959837079, 0.18901151278987527], "tg": [1.9710817309096456, 1.9320780518464744, 1.9449053118005395], "tg1": [0.015898379031568766, 0.015468112193048, 0.015775869134813547]}}
|
|
{"tag": "vllm-int4-g64-t32", "model": "/data/zhoutaichang/embedding_infer/models/spark2_5-int4-g64", "dtype": "bfloat16", "compilation_config": null, "quantization": null, "enforce_eager": false, "init_s": 47.57, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1502, "pp_tps": 3408.73, "tg_tokens": 128, "tg_s": 1.6334, "tg_tps": 77.75, "raw": {"pp": [0.18242419138550758, 0.15723237209022045, 0.1502025001682341], "tg": [1.6569905988872051, 1.646598860155791, 1.6571382582187653], "tg1": [0.013176599983125925, 0.013634935952723026, 0.013306272216141224]}}
|
|
{"tag": "vllm-bf16-t32-control", "model": "XHToken/Spark-X2.5-1.7B", "dtype": "bfloat16", "compilation_config": null, "quantization": null, "enforce_eager": false, "init_s": 78.93, "rss_mb": 10394.9, "rss_peak_mb": 10430.2, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1068, "pp_tps": 4795.53, "tg_tokens": 128, "tg_s": 3.0986, "tg_tps": 40.99, "raw": {"pp": [0.11023258324712515, 0.10676615126430988, 0.1215914050117135], "tg": [3.1550607047975063, 3.1232189969159663, 3.155732364859432], "tg1": [0.02565043093636632, 0.02529451809823513, 0.024592541623860598]}}
|