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

180 lines
2.6 KiB
JSON

{
"prompt": "<\uff5cstart\u2581of\u2581sentence\uff5c><|System|>\nyou are a helpful assistant.## Tools\nYou have access to the following functions:\n<tools>\n{\"name\": \"get_weather\", \"description\": \"Get the current weather for a city.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"city\": {\"type\": \"string\", \"description\": \"City name\"}, \"unit\": {\"type\": \"string\", \"enum\": [\"celsius\", \"fahrenheit\"]}}, \"required\": [\"city\"]}}\n</tools>\n\nYou are a helpful assistant with tools.<\uff5cend\u2581of\u2581sentence\uff5c><\uff5cstart\u2581of\u2581sentence\uff5c><|User|>What is the weather in Shenzhen right now, in celsius?<\uff5cend\u2581of\u2581sentence\uff5c><\uff5cstart\u2581of\u2581sentence\uff5c><|Bot|><think>",
"prompt_ids": [
0,
130972,
198,
18178,
599,
259,
18639,
31627,
27,
2257,
55260,
198,
3683,
760,
4561,
312,
275,
4305,
9928,
39,
198,
41,
37788,
43,
198,
23421,
2215,
4068,
518,
913,
76,
64301,
1078,
518,
21311,
4068,
518,
3582,
275,
3345,
14510,
396,
259,
6594,
34028,
518,
76248,
4068,
24254,
3097,
4068,
518,
9571,
1078,
518,
65263,
4068,
24254,
58593,
4068,
24254,
3097,
4068,
518,
2943,
1078,
518,
21311,
4068,
518,
42088,
2795,
33889,
518,
11220,
4068,
24254,
3097,
4068,
518,
2943,
1078,
518,
40327,
4068,
21518,
8281,
1078,
518,
83,
91538,
47265,
7872,
35951,
518,
40976,
4068,
21518,
58593,
7872,
6678,
198,
2717,
37788,
43,
198,
198,
3683,
599,
259,
18639,
31627,
478,
10397,
27,
1,
0,
130973,
4766,
390,
275,
14510,
304,
75040,
103,
872,
2430,
2343,
25,
304,
281,
108364,
44,
1,
0,
130976,
3
],
"new_ids": [
1046,
3754,
13025,
312,
1843,
275,
14510,
304,
75040,
103,
872,
2430,
2343,
304,
423,
108364,
27,
373,
760,
259,
2122,
4234,
4848,
2561,
913,
76,
64301,
77,
455,
764,
41002,
14510
],
"text": "The user wants to know the weather in Shenzhen right now in Celsius. I have a function available called `get_weather` that can retrieve weather",
"dtype": "float32",
"top1": 1046,
"scenario": "tools"
}