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
7 lines
3.1 KiB
JSON
7 lines
3.1 KiB
JSON
{"tag": "vllm-bf16-t4", "model": "XHToken/Spark-X2.5-1.7B", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 58.71, "threads_bind": "0-3", "omp_num_threads": "4", "pp_tokens": 512, "pp_s": 0.4598, "pp_tps": 1113.44, "tg_tokens": 128, "tg_s": 11.4339, "tg_tps": 11.11, "raw": {"pp": [0.4686984680593014, 0.4646501708775759, 0.4598343148827553], "tg": [11.532050816342235, 11.648163571022451, 11.762528502848], "tg1": [0.10028818994760513, 0.09829043503850698, 0.09812222281470895]}}
|
|
{"tag": "vllm-bf16-t8", "model": "XHToken/Spark-X2.5-1.7B", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 60.4, "threads_bind": "0-7", "omp_num_threads": "8", "pp_tokens": 512, "pp_s": 0.2422, "pp_tps": 2113.72, "tg_tokens": 128, "tg_s": 6.3884, "tg_tps": 19.88, "raw": {"pp": [0.24585375608876348, 0.24222652427852154, 0.24510639300569892], "tg": [6.66656888788566, 6.739134748000652, 6.437250141985714], "tg1": [0.048853468615561724, 0.049976578913629055, 0.050105633679777384]}}
|
|
{"tag": "vllm-bf16-t16", "model": "XHToken/Spark-X2.5-1.7B", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 58.5, "threads_bind": "0-15", "omp_num_threads": "16", "pp_tokens": 512, "pp_s": 0.1407, "pp_tps": 3639.39, "tg_tokens": 128, "tg_s": 4.211, "tg_tps": 30.16, "raw": {"pp": [0.2433060402981937, 0.14068301068618894, 0.153479119297117], "tg": [4.422979693859816, 4.2430975288152695, 4.593760296236724], "tg1": [0.03211195208132267, 0.032789395190775394, 0.032833294942975044]}}
|
|
{"tag": "vllm-bf16-t32", "model": "XHToken/Spark-X2.5-1.7B", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 82.82, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.1149, "pp_tps": 4454.92, "tg_tokens": 128, "tg_s": 3.4939, "tg_tps": 36.35, "raw": {"pp": [0.1943472889252007, 0.17450002301484346, 0.11492921691387892], "tg": [3.647964600007981, 3.681034818291664, 3.5203079166822135], "tg1": [0.026433659251779318, 0.031900678761303425, 0.026734518352895975]}}
|
|
{"tag": "vllm-int8-t16", "model": "/data/zhoutaichang/embedding_infer/models/Spark-X2.5-1.7B-int8", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 72.92, "threads_bind": "0-15", "omp_num_threads": "16", "pp_tokens": 512, "pp_s": 0.0997, "pp_tps": 5135.24, "tg_tokens": 128, "tg_s": 2.6293, "tg_tps": 48.3, "raw": {"pp": [0.18161257961764932, 0.10272291582077742, 0.09970314893871546], "tg": [2.6517742942087352, 2.6720670321956277, 2.650030676741153], "tg1": [0.02092872094362974, 0.020713889971375465, 0.02339001838117838]}}
|
|
{"tag": "vllm-int8-t32", "model": "/data/zhoutaichang/embedding_infer/models/Spark-X2.5-1.7B-int8", "dtype": "bfloat16", "quantization": null, "enforce_eager": false, "init_s": 72.16, "threads_bind": "0-31", "omp_num_threads": "32", "pp_tokens": 512, "pp_s": 0.0734, "pp_tps": 6978.07, "tg_tokens": 128, "tg_s": 2.173, "tg_tps": 58.44, "raw": {"pp": [0.09362926566973329, 0.07337276358157396, 0.07486572163179517], "tg": [2.2358193420805037, 2.203285865020007, 2.190118156839162], "tg1": [0.017937721218913794, 0.017370613757520914, 0.01709391176700592]}}
|