{ "_provenance": "HF Job 6a1ab8533a4b8cae6044e855, H200, vLLM 0.22.0, greedy, N=14 mixed-difficulty set, gamma=9. Supplementary stacking measurement; the headline decode A/B (2.76x) stands from the dedicated run.", "gamma": 9, "tokens_per_s": { "baseline_fp16": 19.947627607668235, "baseline_fp8": 20.06249667780971, "dflash_fp16": 45.21422627588392, "dflash_fp8": 48.256406879960196 }, "dflash_speedup_fp16": 2.267, "dflash_speedup_fp8": 2.405, "lossless_within_fp16": {"compared": 14, "mismatches": 0, "lossless": true}, "lossless_within_fp8": {"compared": 14, "mismatches": 6, "lossless": false}, "fp8_kv_vs_fp16_baseline_divergence": {"compared": 14, "mismatches": 8, "lossless": false}, "kv_cache_bytes_per_elem": {"fp16": 2, "fp8": 1, "memory_factor": "~2x less KV with fp8"}, "reading": "DFlash's throughput win COMPOSES with fp8 KV cache (2.27x at fp16 -> 2.40x at fp8) while fp8 ~halves KV memory: the lossless throughput lever and the memory lever stack. Byte-losslessness is specifically an fp16-KV property (0/14); fp8 KV is a lossy memory lever (8/14 divergence vs fp16 baseline) and adds run-to-run nondeterminism (6/14), which DFlash still accelerates. We report what holds at each dtype.", "elapsed_s": 664.3 }