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
122 lines
2.3 KiB
JSON
122 lines
2.3 KiB
JSON
[
|
|
{
|
|
"name": "qkv",
|
|
"N": 3072,
|
|
"K": 2048,
|
|
"group": 128,
|
|
"m1": {
|
|
"tinygemm_ms": 0.0229,
|
|
"w4a8_ms": 0.015,
|
|
"speedup": 1.53,
|
|
"rel_diff_vs_tinygemm": 0.0958
|
|
},
|
|
"m8": {
|
|
"tinygemm_ms": 0.0553,
|
|
"w4a8_ms": 0.0305,
|
|
"speedup": 1.81,
|
|
"rel_diff_vs_tinygemm": 0.1096
|
|
},
|
|
"m512": {
|
|
"tinygemm_ms": 3.239,
|
|
"w4a8_ms": 0.39,
|
|
"speedup": 8.3,
|
|
"rel_diff_vs_tinygemm": 0.1005
|
|
}
|
|
},
|
|
{
|
|
"name": "o",
|
|
"N": 2048,
|
|
"K": 2048,
|
|
"group": 128,
|
|
"m1": {
|
|
"tinygemm_ms": 0.0158,
|
|
"w4a8_ms": 0.0142,
|
|
"speedup": 1.11,
|
|
"rel_diff_vs_tinygemm": 0.1087
|
|
},
|
|
"m8": {
|
|
"tinygemm_ms": 0.039,
|
|
"w4a8_ms": 0.0251,
|
|
"speedup": 1.56,
|
|
"rel_diff_vs_tinygemm": 0.1127
|
|
},
|
|
"m512": {
|
|
"tinygemm_ms": 2.1629,
|
|
"w4a8_ms": 0.2706,
|
|
"speedup": 7.99,
|
|
"rel_diff_vs_tinygemm": 0.1011
|
|
}
|
|
},
|
|
{
|
|
"name": "gate_up",
|
|
"N": 13312,
|
|
"K": 2048,
|
|
"group": 128,
|
|
"m1": {
|
|
"tinygemm_ms": 0.0648,
|
|
"w4a8_ms": 0.0271,
|
|
"speedup": 2.4,
|
|
"rel_diff_vs_tinygemm": 0.0846
|
|
},
|
|
"m8": {
|
|
"tinygemm_ms": 0.2229,
|
|
"w4a8_ms": 0.0932,
|
|
"speedup": 2.39,
|
|
"rel_diff_vs_tinygemm": 0.0905
|
|
},
|
|
"m512": {
|
|
"tinygemm_ms": 13.9922,
|
|
"w4a8_ms": 1.5752,
|
|
"speedup": 8.88,
|
|
"rel_diff_vs_tinygemm": 0.1004
|
|
}
|
|
},
|
|
{
|
|
"name": "down",
|
|
"N": 2048,
|
|
"K": 6656,
|
|
"group": 128,
|
|
"m1": {
|
|
"tinygemm_ms": 0.0347,
|
|
"w4a8_ms": 0.0228,
|
|
"speedup": 1.52,
|
|
"rel_diff_vs_tinygemm": 0.0925
|
|
},
|
|
"m8": {
|
|
"tinygemm_ms": 0.1134,
|
|
"w4a8_ms": 0.056,
|
|
"speedup": 2.02,
|
|
"rel_diff_vs_tinygemm": 0.0968
|
|
},
|
|
"m512": {
|
|
"tinygemm_ms": 7.0191,
|
|
"w4a8_ms": 0.8952,
|
|
"speedup": 7.84,
|
|
"rel_diff_vs_tinygemm": 0.0999
|
|
}
|
|
},
|
|
{
|
|
"name": "lm_head",
|
|
"N": 131072,
|
|
"K": 2048,
|
|
"group": 128,
|
|
"m1": {
|
|
"tinygemm_ms": 0.5832,
|
|
"w4a8_ms": 0.4462,
|
|
"speedup": 1.31,
|
|
"rel_diff_vs_tinygemm": 0.1167
|
|
},
|
|
"m8": {
|
|
"tinygemm_ms": 2.1946,
|
|
"w4a8_ms": 1.023,
|
|
"speedup": 2.15,
|
|
"rel_diff_vs_tinygemm": 0.0926
|
|
},
|
|
"m512": {
|
|
"tinygemm_ms": 138.7226,
|
|
"w4a8_ms": 16.4399,
|
|
"speedup": 8.44,
|
|
"rel_diff_vs_tinygemm": 0.1004
|
|
}
|
|
}
|
|
] |