// Generated by eval/pr_eval_bot.py from data.json — do not edit by hand.
window.SPARKINFER = {
  "updated": "2026-07-03",
  "status": {
    "gpu": "RTX 5090 · sm_120 · CUDA 13",
    "model": "Qwen3-30B-A3B · Q4_K_M",
    "frontier_tps": 493.56,
    "ref_name": "llama.cpp",
    "ref_tps": 365.85,
    "vram_gb": 21.4,
    "token_match": 0.9612,
    "kl": 0.0175,
    "ref_note": "128-tok decode rerun on current main, same RTX 5090 · Q4_K_M GGUF",
    "longctx_16k_tps": 266.14,
    "longctx_2k_tps": 277.78,
    "longctx_token_match": 0.9898,
    "longctx_kl": 0.0197,
    "longctx_512_tps": 469.58,
    "longctx_4k_tps": 392.65
  },
  "context_baselines": [
    {
      "ctx": 128,
      "label": "128",
      "color": "#D14D72",
      "tokens": 128,
      "sparkinfer_tps": 493.56,
      "llamacpp_decode_tps": 365.85,
      "llamacpp_note": "128-token decode, no prefill context"
    },
    {
      "ctx": 512,
      "label": "512",
      "color": "#7B5DFF",
      "tokens": 128,
      "sparkinfer_tps": 469.58,
      "llamacpp_decode_tps": 342.59,
      "llamacpp_note": "llama-batched-bench npp=512 ntg=128 npl=1"
    },
    {
      "ctx": 4096,
      "label": "4k",
      "color": "#0E8A16",
      "tokens": 128,
      "sparkinfer_tps": 392.65,
      "llamacpp_decode_tps": 292.99,
      "llamacpp_note": "llama-batched-bench npp=4096 ntg=128 npl=1"
    },
    {
      "ctx": 16384,
      "label": "16k",
      "color": "#B8860B",
      "tokens": 128,
      "sparkinfer_tps": 266.14,
      "llamacpp_decode_tps": 245.53,
      "llamacpp_note": "llama-batched-bench npp=16384 ntg=128 npl=1"
    }
  ],
  "passes_gpu": "RTX 5090",
  "passes": [
    {
      "name": "baseline",
      "what": "dequantize all 128 experts",
      "tps": 0.6
    },
    {
      "name": "fused expert",
      "what": "dequant only the routed experts (Q4_K_M)",
      "tps": 32.7
    },
    {
      "name": "decode GEMV",
      "what": "coalesced [out,in], replaces M=1 GEMM",
      "tps": 84.4
    },
    {
      "name": "CUDA graph",
      "what": "capture once, replay per token",
      "tps": 118.7
    },
    {
      "name": "flash-decoding",
      "what": "KV-split + log-sum-exp combine",
      "tps": 133
    },
    {
      "name": "fused norm",
      "what": "residual + RMSNorm",
      "tps": 134
    }
  ],
  "labels": [
    {
      "l": "XL",
      "d": "> 18% over frontier",
      "c": "#0E8A16"
    },
    {
      "l": "L",
      "d": "10–18% over frontier",
      "c": "#1D76DB"
    },
    {
      "l": "M",
      "d": "6–10% over frontier",
      "c": "#8250DF"
    },
    {
      "l": "S",
      "d": "3.5–6% over frontier",
      "c": "#B8860B"
    },
    {
      "l": "XS",
      "d": "2–3.5% over frontier",
      "c": "#8A93A0"
    },
    {
      "l": "none",
      "d": "≤ 2% — within noise, no verified gain",
      "c": "#9AA6B2"
    },
    {
      "l": "REJECT",
      "d": "failed the correctness gate",
      "c": "#B60205"
    }
  ],
  "prs": [
    {
      "num": 137,
      "title": "perf(decode): occupancy-first n_splits schedule (+8.8% @ 4k over #136)",
      "areas": [
        "runtime"
      ],
      "label": "REJECT",
      "tps": 470.98,
      "delta_pct": 0.0,
      "top1": 0.9823,
      "kl": 0.0102,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/137",
      "eval_mode": "longctx",
      "score_context": 512,
      "best_context_label": "512-context",
      "context_gains_pct": {
        "128-context": -0.01,
        "512-context": 0.02,
        "4k-context": -2.64,
        "16k-context": -0.39
      },
      "regression_labels": [
        "regression-4k"
      ],
      "auto_close": true,
      "ctx_128_tps": 495.26,
      "ctx_512_tps": 470.98,
      "ctx_4096_tps": 383.36,
      "ctx_16384_tps": 263.56,
      "guard_128_baseline": 495.3,
      "guard_128_ratio": 0.9999,
      "guard_128_pass": true,
      "guard_512_baseline": 470.89,
      "guard_512_ratio": 1.0002,
      "guard_512_pass": true,
      "guard_4k_baseline": 393.75,
      "guard_4k_ratio": 0.9736,
      "guard_4k_pass": false,
      "guard_16k_baseline": 264.59,
      "guard_16k_ratio": 0.9961,
      "guard_16k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0137-bbe0cb0"
    },
    {
      "num": 138,
      "title": "perf(decode): use 128-split mid-context plateau",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "XL",
      "tps": 392.94,
      "delta_pct": 12.6,
      "top1": 0.9898,
      "kl": 0.0197,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/138",
      "eval_mode": "longctx",
      "score_context": 4096,
      "best_context_label": "4k-context",
      "context_gains_pct": {
        "128-context": 1.33,
        "512-context": 1.87,
        "4k-context": 12.61,
        "16k-context": 0.36
      },
      "regression_labels": [],
      "ctx_128_tps": 494.63,
      "ctx_512_tps": 470.43,
      "ctx_4096_tps": 392.94,
      "ctx_16384_tps": 264.05,
      "guard_128_baseline": 488.16,
      "guard_128_ratio": 1.0133,
      "guard_128_pass": true,
      "guard_512_baseline": 461.79,
      "guard_512_ratio": 1.0187,
      "guard_512_pass": true,
      "guard_4k_baseline": 348.94,
      "guard_4k_ratio": 1.1261,
      "guard_4k_pass": true,
      "guard_16k_baseline": 263.09,
      "guard_16k_ratio": 1.0036,
      "guard_16k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0138-5ca05b0"
    },
    {
      "num": 136,
      "title": "Enable GQA split path at 32 splits",
      "areas": [
        "kernels"
      ],
      "label": "XL",
      "tps": 348.86,
      "delta_pct": 78.5,
      "top1": 0.9595,
      "kl": 0.0162,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/136",
      "eval_mode": "longctx",
      "score_context": 4096,
      "best_context_label": "4k-context",
      "context_gains_pct": {
        "128-context": 1.22,
        "512-context": 13.74,
        "4k-context": 78.53,
        "16k-context": -0.0
      },
      "regression_labels": [],
      "ctx_128_tps": 487.45,
      "ctx_512_tps": 461.06,
      "ctx_4096_tps": 348.86,
      "ctx_16384_tps": 262.87,
      "guard_128_baseline": 481.59,
      "guard_128_ratio": 1.0122,
      "guard_128_pass": true,
      "guard_512_baseline": 405.36,
      "guard_512_ratio": 1.1374,
      "guard_512_pass": true,
      "guard_4k_baseline": 195.41,
      "guard_4k_ratio": 1.7853,
      "guard_4k_pass": true,
      "guard_16k_baseline": 262.88,
      "guard_16k_ratio": 1.0,
      "guard_16k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0136-b512763"
    },
    {
      "num": 131,
      "title": "perf(attn): 128-bit uint4 KV staging in 16k GQA flash-decode split (+6% decode)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 265.41,
      "delta_pct": 0.0,
      "top1": 0.9795,
      "kl": 0.0116,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/131",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_128_tps": 482.28,
      "ctx_16384_tps": 265.41,
      "guard_128_baseline": 481.48,
      "guard_128_ratio": 1.0017,
      "guard_128_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0131-ddc40ff"
    },
    {
      "num": 128,
      "title": "perf(gemv): specialize q4 mmvq common K",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 259.53,
      "delta_pct": -2.2,
      "top1": 0.9447,
      "kl": 0.0184,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/128",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_128_tps": 489.7,
      "ctx_16384_tps": 259.53,
      "guard_128_baseline": 481.48,
      "guard_128_ratio": 1.0171,
      "guard_128_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0128-3e9a0c6"
    },
    {
      "num": 130,
      "title": "perf(attn): uint4 ldg KV staging + GQA TILE=14",
      "areas": [
        "kernels"
      ],
      "label": "S",
      "tps": 265.41,
      "delta_pct": 5.3,
      "top1": 0.9735,
      "kl": 0.0075,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/130",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 277.78,
      "ctx_16384_tps": 265.41,
      "guard_2k_baseline": 277.78,
      "guard_2k_ratio": 1.0,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0130-abcd575"
    },
    {
      "num": 125,
      "title": "perf(attn): bf16 GQA smem tile + scale combine warps at 256 splits",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 245.25,
      "delta_pct": -1.3,
      "top1": 0.9702,
      "kl": 0.0181,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/125",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 279.42,
      "ctx_16384_tps": 245.25,
      "guard_2k_baseline": 279.56,
      "guard_2k_ratio": 0.9995,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0125-581a587"
    },
    {
      "num": 126,
      "title": "perf(attn): bf16 GQA tile12 + adaptive combine for 16k n_splits=256",
      "areas": [
        "kernels"
      ],
      "label": "S",
      "tps": 252.39,
      "delta_pct": 4.9,
      "top1": 0.9643,
      "kl": 0.0147,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/126",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 279.28,
      "ctx_16384_tps": 252.39,
      "guard_2k_baseline": 279.82,
      "guard_2k_ratio": 0.9981,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0126-948a288"
    },
    {
      "num": 124,
      "title": "Optimize 16k long-context GQA KV load: hoist block-table lookup + vectorize",
      "areas": [
        "kernels"
      ],
      "label": "M",
      "tps": 240.57,
      "delta_pct": 7.7,
      "top1": 0.9579,
      "kl": 0.0159,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/124",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 279.9,
      "ctx_16384_tps": 240.57,
      "guard_2k_baseline": 279.66,
      "guard_2k_ratio": 1.0009,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0124-e024855"
    },
    {
      "num": 116,
      "title": "perf(moe): PDL overlap on gate_up -> quant_h -> down MMVQ chain",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 168.6,
      "delta_pct": -24.0,
      "top1": 0.9776,
      "kl": 0.0142,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/116",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 275.69,
      "ctx_16384_tps": 168.6,
      "guard_2k_baseline": 276.3,
      "guard_2k_ratio": 0.9978,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0116-c02db45"
    },
    {
      "num": 123,
      "title": "Optimize 16k long-context GQA flash decode",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "XL",
      "tps": 221.02,
      "delta_pct": 31.6,
      "top1": 0.9427,
      "kl": 0.0136,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/123",
      "eval_mode": "longctx",
      "score_context": 16384,
      "ctx_2048_tps": 275.55,
      "ctx_16384_tps": 221.02,
      "ctx_32768_tps": 146.63,
      "guard_2k_baseline": 275.58,
      "guard_2k_ratio": 0.9999,
      "guard_2k_pass": true,
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0123-8a7f5d9"
    },
    {
      "num": 122,
      "title": "perf(attn): fuse QK-norm+RoPE+KV-append and emit Q8_1(attn) in flash combine",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "L",
      "tps": 479.83,
      "delta_pct": 3.4,
      "top1": 0.9753,
      "kl": 0.0126,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/122",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0122-bd1c3f6"
    },
    {
      "num": 121,
      "title": "perf: optimize qwen decode kernels",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 468.1,
      "delta_pct": 0.9,
      "top1": 0.9751,
      "kl": 0.015,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/121",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0121-ab00883"
    },
    {
      "num": 120,
      "title": "perf: batch-8 MMVQ launch reduction + quant_h→down PDL overlap",
      "areas": [
        "kernels"
      ],
      "label": "REJECT",
      "tps": 491.73,
      "delta_pct": null,
      "top1": 0.0,
      "kl": 18.1017,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/120",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0120-391d961"
    },
    {
      "num": 119,
      "title": "perf: batch-8 MMVQ rows per CTA — MoE gate/up + attn Q/K/V/O",
      "areas": [
        "kernels"
      ],
      "label": "REJECT",
      "tps": 492.8,
      "delta_pct": null,
      "top1": 0.0,
      "kl": 18.8005,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/119",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0119-be85922"
    },
    {
      "num": 117,
      "title": "perf(moe): batch 8 gate/up MMVQ rows per CTA — fewer decode graph nodes",
      "areas": [
        "kernels"
      ],
      "label": "REJECT",
      "tps": 475.07,
      "delta_pct": null,
      "top1": 0.0177,
      "kl": 13.9592,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/117",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0117-2c0848b"
    },
    {
      "num": 91,
      "title": "feat(moe): LRU expert cache + async layer-ahead prefetch",
      "areas": [
        "moe",
        "runtime"
      ],
      "label": "REJECT",
      "tps": 0,
      "delta_pct": null,
      "top1": 0,
      "kl": 99,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/91",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0091-cf9803d"
    },
    {
      "num": 114,
      "title": "perf(runtime): context-adaptive flash-decode split count",
      "areas": [
        "runtime"
      ],
      "label": "none",
      "tps": 462.02,
      "delta_pct": 0.1,
      "top1": 0.9851,
      "kl": 0.0093,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/114",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0114-a534177"
    },
    {
      "num": 109,
      "title": "perf(moe): router→gu2 PDL chain + fused gate/up MMVQ ",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 440.48,
      "delta_pct": 1.7,
      "top1": 0.9753,
      "kl": 0.0094,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/109",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0109-67203ed"
    },
    {
      "num": 105,
      "title": "perf(decode): emit Q8_1 from gate/up MMVQ tail, drop the MoE-down quantize node",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 413.07,
      "delta_pct": -4.7,
      "top1": 0.9524,
      "kl": 0.0181,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/105",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0105-fd67c2b"
    },
    {
      "num": 87,
      "title": "perf(attn): fuse Q/K/V Q4_K MMVQ into one launch (+3% decode)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 437.3,
      "delta_pct": 0.2,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/87",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0087-b7562da"
    },
    {
      "num": 86,
      "title": "perf(decode): single-pass MoE top-k + fused RoPE/KV-append (+3.2% decode)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "S",
      "tps": 454.41,
      "delta_pct": 4.2,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/86",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0086-4e45ed9"
    },
    {
      "num": 89,
      "title": "perf(decode): run Q/K/V projections on concurrent CUDA streams (+5.7% decode)",
      "areas": [
        "runtime"
      ],
      "label": "S",
      "tps": 443.38,
      "delta_pct": 5.7,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/89",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0089-4e13546"
    },
    {
      "num": 51,
      "title": "runtime: prompt-lookup speculative decoding for bs=1 MoE decode",
      "areas": [
        "runtime"
      ],
      "label": "none",
      "tps": 419.68,
      "delta_pct": 0.0,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/51",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0051-d7824bf"
    },
    {
      "num": 83,
      "title": "perf(decode): emit Q8_1 from the residual RMSNorm to drop the per-layer activation quantize (+2.7% decode)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "S",
      "tps": 410.85,
      "delta_pct": 4.3,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/83",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0083-9bf0803"
    },
    {
      "num": 72,
      "title": "perf(gemm): split-K the router projection GEMV for decode occupancy (+3% decode)",
      "areas": [
        "kernels"
      ],
      "label": "S",
      "tps": 394.45,
      "delta_pct": 3.5,
      "top1": 0.97,
      "kl": 0.1417,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/72",
      "proof_url": "https://gittensor-ai-lab.github.io/sparkinfer-log/?run=0072-d459d58"
    },
    {
      "num": 73,
      "title": "perf(moe): skip the unused per-expert token count in single-token decode (+6% decode)",
      "areas": [
        "runtime"
      ],
      "label": "S",
      "tps": 388.68,
      "delta_pct": 4.8,
      "top1": 0.98,
      "kl": 0.1453,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/73"
    },
    {
      "num": 76,
      "title": "perf(attn): fuse per-head Q/K-norm and Q/K rope into single kernels (+4.1% decode)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "S",
      "tps": 371.27,
      "delta_pct": 4.4,
      "top1": 0.98,
      "kl": 0.1453,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/76"
    },
    {
      "num": 67,
      "title": "perf(moe): mmvq down split-K occupancy for M-tier decode",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 348.06,
      "delta_pct": 0.0,
      "top1": 0.95,
      "kl": 0.1415,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/67"
    },
    {
      "num": 75,
      "title": "perf(moe): software-pipeline the int8 MoE down decode (+4% decode on RTX 5090)",
      "areas": [
        "kernels"
      ],
      "label": "S",
      "tps": 334.58,
      "delta_pct": 4.3,
      "top1": 0.98,
      "kl": 0.1502,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/75"
    },
    {
      "num": 74,
      "title": "perf(moe): split-K MMVQ down — +8% Qwen3-MoE decode on RTX 5090",
      "areas": [
        "kernels"
      ],
      "label": "S",
      "tps": 339.59,
      "delta_pct": 5.9,
      "top1": 0.95,
      "kl": 0.1415,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/74"
    },
    {
      "num": 71,
      "title": "perf(moe): int8 dp4a MMVQ for the Q4_K MoE down projection (+5% decode)",
      "areas": [
        "kernels"
      ],
      "label": "M",
      "tps": 333.75,
      "delta_pct": 9.1,
      "top1": 0.97,
      "kl": 0.1507,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/71"
    },
    {
      "num": 70,
      "title": "int8 mmvq for the last fp32-path GEMVs: attn-V + LM head (Q6_K) + gate/up (Q4_K) (+4.3%)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "S",
      "tps": 313.14,
      "delta_pct": 5.3,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/70"
    },
    {
      "num": 69,
      "title": "Split-K the int8 dp4a MoE down GEMV (+3.4% decode)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 293.62,
      "delta_pct": 0.7,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/69"
    },
    {
      "num": 65,
      "title": "perf(moe): int8 dp4a MMVQ for the Q6_K MoE down (+4% decode)",
      "areas": [
        "kernels"
      ],
      "label": "XS",
      "tps": 291.58,
      "delta_pct": 2.2,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/65"
    },
    {
      "num": 64,
      "title": "perf(moe): __ldg quantized weight reads in expert FFN decode (+1.3%)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 289.55,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/64"
    },
    {
      "num": 63,
      "title": "Parallelize flash-decode combine + n_splits=32 (+2.7% decode)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "M",
      "tps": 285.32,
      "delta_pct": 2.2,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/63"
    },
    {
      "num": 60,
      "title": "perf(runtime): keep lm_head native-quantized, decode on-read (cut the largest decode read)",
      "areas": [
        "runtime"
      ],
      "label": "none",
      "tps": 256.7,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/60"
    },
    {
      "num": 59,
      "title": "Adopt llama.cpp Q4_K mul_mat_vec_q for attention GEMVs (+9.3% decode, top-1 0.99)",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "L",
      "tps": 279.11,
      "delta_pct": 6.5,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/59"
    },
    {
      "num": 58,
      "title": "perf(attention): flash_decode_split ldg + n_splits=16 combine fast path",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 258.53,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/58"
    },
    {
      "num": 53,
      "title": "Enable split-K down projection by default (+6% decode)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 260.69,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/53"
    },
    {
      "num": 52,
      "title": "perf(kernels): two-pass multi-block decode argmax (1 SM -> all SMs)",
      "areas": [
        "kernels"
      ],
      "label": "L",
      "tps": 262.17,
      "delta_pct": 9.2,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/52"
    },
    {
      "num": 50,
      "title": "Decode dp4a (MMVQ) default + argmax widen: 180.4 → 235.4 tok/s (+30.5%) on RTX 5090",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "XL",
      "tps": 240.11,
      "delta_pct": 21.7,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/50"
    },
    {
      "num": 48,
      "title": "perf(kernels): multi-token register tiling in flash_decode_split (hd=128)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 185.28,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/48"
    },
    {
      "num": 45,
      "title": "perf(kernels): CUDA-graph-safe RoPE __constant__ inv_freq table",
      "areas": [
        "kernels",
        "runtime"
      ],
      "label": "none",
      "tps": 183.4,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/45"
    },
    {
      "num": 44,
      "title": "perf(kernels): vectorize fused RMSNorm with 128-bit bf16x8 loads",
      "areas": [
        "kernels"
      ],
      "label": "M",
      "tps": 197.22,
      "delta_pct": 5.1,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/44"
    },
    {
      "num": 43,
      "title": "perf(kernels): vectorized K/V loads in flash_decode_split (hd=128)",
      "areas": [
        "kernels"
      ],
      "label": "none",
      "tps": 187.96,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/43"
    },
    {
      "num": 9,
      "title": "fix(runtime/gguf): reject malformed metadata arrays instead of desyncing the parse cursor",
      "areas": [
        "runtime"
      ],
      "label": "none",
      "tps": 186.36,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/9"
    },
    {
      "num": 15,
      "title": "fix(runtime/qwen35): force n_shared=0 on GGUF loads without shared-expert tensors",
      "areas": [
        "runtime"
      ],
      "label": "none",
      "tps": 186.28,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/15"
    },
    {
      "num": 17,
      "title": "kernels/quant: reject unsupported GGUF types instead of silently decoding as F32",
      "areas": [
        "kernels"
      ],
      "label": "REJECT",
      "tps": 0,
      "delta_pct": null,
      "url": "https://github.com/gittensor-ai-lab/sparkinfer/pull/17"
    }
  ],
  "landed": [
    {
      "name": "PDL decode",
      "tps": 187.61,
      "pr": 8,
      "date": "2026-06-24"
    },
    {
      "name": "vectorize fused RMSNorm with",
      "tps": 197.22,
      "pr": 44,
      "date": "2026-06-25"
    },
    {
      "name": "Decode dp4a (MMVQ) default +",
      "tps": 240.11,
      "pr": 50,
      "date": "2026-06-25"
    },
    {
      "name": "two-pass multi-block decode ",
      "tps": 262.17,
      "pr": 52,
      "date": "2026-06-25"
    },
    {
      "name": "Adopt llama.cpp Q4_K mul_mat",
      "tps": 279.11,
      "pr": 59,
      "date": "2026-06-26"
    },
    {
      "name": "Parallelize flash-decode com",
      "tps": 285.32,
      "pr": 63,
      "date": "2026-06-26"
    },
    {
      "name": "int8 dp4a MMVQ for the Q6_K ",
      "tps": 291.58,
      "pr": 65,
      "date": "2026-06-26"
    },
    {
      "name": "int8 mmvq for the last fp32-",
      "tps": 313.14,
      "pr": 70,
      "date": "2026-06-26"
    },
    {
      "name": "int8 dp4a MMVQ for the Q4_K ",
      "tps": 333.75,
      "pr": 71,
      "date": "2026-06-27"
    },
    {
      "name": "split-K MMVQ down — +8% Qwen",
      "tps": 339.59,
      "pr": 74,
      "date": "2026-06-28"
    },
    {
      "name": "fuse per-head Q/K-norm and Q",
      "tps": 371.27,
      "pr": 76,
      "date": "2026-06-28"
    },
    {
      "name": "skip the unused per-expert t",
      "tps": 388.68,
      "pr": 73,
      "date": "2026-06-28"
    },
    {
      "name": "split-K the router projectio",
      "tps": 394.45,
      "pr": 72,
      "date": "2026-06-28"
    },
    {
      "name": "emit Q8_1 from the residual ",
      "tps": 410.85,
      "pr": 83,
      "date": "2026-06-29"
    },
    {
      "name": "run Q/K/V projections on con",
      "tps": 435.41,
      "pr": 89,
      "date": "2026-06-29"
    },
    {
      "name": "single-pass MoE top-k + fuse",
      "tps": 453.7,
      "pr": 86,
      "date": "2026-06-29"
    },
    {
      "name": "fuse QK-norm+RoPE+KV-append ",
      "tps": 484.79,
      "pr": 122,
      "date": "2026-07-02"
    }
  ],
  "landed_longctx": [
    {
      "name": "fixed split before v0.3.3",
      "tps": 70.8,
      "pr": 115,
      "ctx": 16384,
      "date": "2026-06-30",
      "release": "pre-v0.3.3",
      "author": "ai-hpc",
      "fixed_baseline": true
    },
    {
      "name": "v0.3.3 adaptive split POC",
      "tps": 166.2,
      "pr": 115,
      "ctx": 16384,
      "date": "2026-06-30",
      "release": "v0.3.3",
      "author": "ai-hpc",
      "baseline": true
    },
    {
      "name": "Optimize 16k long-context GQ",
      "tps": 221.02,
      "pr": 123,
      "ctx": 16384,
      "date": "2026-07-02"
    },
    {
      "name": "Optimize 16k long-context GQ",
      "tps": 238.04,
      "pr": 124,
      "ctx": 16384,
      "date": "2026-07-02"
    },
    {
      "name": "bf16 GQA tile12 + adaptive c",
      "tps": 249.7,
      "pr": 126,
      "ctx": 16384,
      "date": "2026-07-02"
    },
    {
      "name": "uint4 ldg KV staging + GQA T",
      "tps": 262.93,
      "pr": 130,
      "ctx": 16384,
      "date": "2026-07-02"
    },
    {
      "name": "Enable GQA split path at 32 ",
      "tps": 348.68,
      "pr": 136,
      "ctx": 4096,
      "date": "2026-07-03"
    },
    {
      "name": "use 128-split mid-context pl",
      "tps": 392.65,
      "pr": 138,
      "ctx": 4096,
      "date": "2026-07-03"
    }
  ],
  "longctx_release_baselines": {
    "name": "v0.3.3 long-context POC",
    "author": "ai-hpc",
    "release": "v0.3.3",
    "commit": "351cef8",
    "date": "2026-06-30",
    "note": "release-log sweep: fixed n_splits=32 before vs depth-adaptive after; RTX 5090, decode tok/s at KV depth",
    "color_before": "#8A8AA0",
    "color_after": "#D14D72",
    "rows": [
      {
        "ctx": 128,
        "label": "128",
        "before_tps": 442.8,
        "after_tps": 442.7,
        "speedup": 1.0,
        "gap_to_llama": "unchanged"
      },
      {
        "ctx": 4096,
        "label": "4k",
        "before_tps": 194.0,
        "after_tps": 193.8,
        "speedup": 1.0,
        "gap_to_llama": "unchanged"
      },
      {
        "ctx": 16384,
        "label": "16k",
        "before_tps": 70.8,
        "after_tps": 166.2,
        "speedup": 2.35,
        "gap_to_llama": "3.4x -> 1.44x"
      },
      {
        "ctx": 32768,
        "label": "32k",
        "before_tps": 38.5,
        "after_tps": 110.7,
        "speedup": 2.88,
        "gap_to_llama": "5.0x -> 1.74x"
      }
    ]
  }
};
