Files
vllm-omni/baselines/llama_cpp/llamacpp_grid_t32.json
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

273 lines
8.0 KiB
JSON

[
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B.gguf",
"model_type": "spark2_5 1.7B BF16",
"model_size": 3415547904,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 512,
"n_gen": 0,
"n_depth": 0,
"test_time": "2026-09-11T06:35:02Z",
"avg_ns": 1017103540,
"stddev_ns": 116210707,
"avg_ts": 509.454206,
"stddev_ts": 66.492143,
"samples_ns": [ 1045283058, 1099078888, 1103686903, 1017870763, 819598088 ],
"samples_ts": [ 489.819, 465.845, 463.9, 503.011, 624.696 ]
},
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B.gguf",
"model_type": "spark2_5 1.7B BF16",
"model_size": 3415547904,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 0,
"n_gen": 128,
"n_depth": 0,
"test_time": "2026-09-11T06:35:08Z",
"avg_ns": 4481043455,
"stddev_ns": 53485519,
"avg_ts": 28.568042,
"stddev_ts": 0.342133,
"samples_ns": [ 4526208574, 4537101214, 4480636429, 4454908368, 4406362692 ],
"samples_ts": [ 28.2797, 28.2118, 28.5674, 28.7324, 29.0489 ]
},
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B-Q8_0.gguf",
"model_type": "spark2_5 1.7B Q8_0",
"model_size": 1814728704,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 512,
"n_gen": 0,
"n_depth": 0,
"test_time": "2026-09-11T06:35:31Z",
"avg_ns": 343075990,
"stddev_ns": 8202776,
"avg_ts": 1493.062250,
"stddev_ts": 35.634573,
"samples_ns": [ 333407890, 348737139, 337165270, 342580383, 353489272 ],
"samples_ts": [ 1535.66, 1468.15, 1518.54, 1494.54, 1448.42 ]
},
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B-Q8_0.gguf",
"model_type": "spark2_5 1.7B Q8_0",
"model_size": 1814728704,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 0,
"n_gen": 128,
"n_depth": 0,
"test_time": "2026-09-11T06:35:33Z",
"avg_ns": 1673245422,
"stddev_ns": 44193699,
"avg_ts": 76.540484,
"stddev_ts": 2.008808,
"samples_ns": [ 1727982320, 1650954337, 1650417455, 1711748955, 1625124045 ],
"samples_ts": [ 74.0748, 77.5309, 77.5561, 74.7773, 78.7632 ]
},
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B-Q4_K_M.gguf",
"model_type": "spark2_5 1.7B Q4_K - Medium",
"model_size": 1102073856,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 512,
"n_gen": 0,
"n_depth": 0,
"test_time": "2026-09-11T06:35:42Z",
"avg_ns": 433558704,
"stddev_ns": 61442386,
"avg_ts": 1198.988860,
"stddev_ts": 159.663627,
"samples_ns": [ 384355143, 403569845, 520552799, 475384982, 383930753 ],
"samples_ts": [ 1332.1, 1268.68, 983.57, 1077.02, 1333.57 ]
},
{
"build_commit": "e71b80510",
"build_number": 10849,
"cpu_info": "Intel(R) Xeon(R) Platinum 8480C",
"gpu_info": "",
"backends": "CPU",
"model_filename": "/data/zhoutaichang/.cache/huggingface/hub/models--XHToken--Spark-X2.5-1.7B-GGUF/snapshots/23e1fcac55e7dd71e4c12a23723cc228ba0e5e85/Spark-X2.5-1.7B-Q4_K_M.gguf",
"model_type": "spark2_5 1.7B Q4_K - Medium",
"model_size": 1102073856,
"model_n_params": 1707657216,
"n_batch": 2048,
"n_ubatch": 512,
"n_threads": 32,
"cpu_mask": "0x0",
"cpu_strict": false,
"poll": 50,
"type_k": "f16",
"type_v": "f16",
"n_gpu_layers": -1,
"n_cpu_moe": 0,
"split_mode": "layer",
"main_gpu": 0,
"no_kv_offload": false,
"flash_attn": -1,
"devices": "auto",
"tensor_split": "0.00",
"tensor_buft_overrides": "none",
"load_mode": "auto",
"lazy_mode": "auto",
"embeddings": false,
"no_op_offload": 0,
"no_host": false,
"fit_target": 0,
"fit_min_ctx": 0,
"n_prompt": 0,
"n_gen": 128,
"n_depth": 0,
"test_time": "2026-09-11T06:35:44Z",
"avg_ns": 1574917625,
"stddev_ns": 239068571,
"avg_ts": 82.814413,
"stddev_ts": 12.730560,
"samples_ns": [ 1383407468, 1295986814, 1572559050, 1776956669, 1845678125 ],
"samples_ts": [ 92.5252, 98.7664, 81.396, 72.0333, 69.3512 ]
}
]