Repository navigation
Conversation
Signed-off-by: Tokha233 <61346912+Tokha233@users.noreply.github.com>
|
The GPU workflows stopped at Local verification on RTX 5090 D v2: 14 policy tests; 30 exact matrix pairs with stock Kitchen 0.2.36; a second run of the checked-in benchmark; and full Larry8 sampler ABBA with all video/audio latent hashes identical. Pre-commit passes. The PR explicitly reports the sampler timing variance and does not claim stable serving throughput improvement. |
Signed-off-by: Tokha233 <61346912+Tokha233@users.noreply.github.com>
|
Updated to upstream The SM120 policy and explicit environment overrides are unchanged. The benchmark now explicitly constructs the Validation:
python -m pytest -q python/sglang/multimodal_gen/test/unit/test_kitchen_int8_row_split.py python/sglang/multimodal_gen/test/unit/test_convrot_int8_backends.py
python -m sglang.multimodal_gen.benchmarks.bench_kitchen_int8_row_split --rows 32700 --input-features 5376 --output-features 16128 --repeats 20This rerun verifies the migrated Kitchen matrix path, not whole-model or serving throughput. The historical sampler improvement remains 0.50%, within run-to-run variation. GPU CI still requires maintainer |
Motivation
The Kitchen INT8 row-split default was tuned to avoid expensive Stream-K execution on RTX 4090. On RTX 5090 D v2, splitting H3 QKV matrices into 8192-row calls adds launches and a full output copy and is slower than a single call.
Modifications
Keep a single call by default for SM120, BF16 activations, K <= 8192 and 8192 <= N <= 24832. Keep the existing policy for wider outputs, larger reductions, other dtypes/devices, and whenever either row-split environment variable is explicitly set. Cache the capability by activation device. No weight or arithmetic changes.
The bounds are deliberate: a blanket no-split policy regressed M14850/K7168/N28672 by 11.7%, while K28672 cases were essentially tied. Both remain on the previous path.
Accuracy Test
RTX 5090 D v2 (24GB, SM120), driver 580.126.20, PyTorch 2.13.0+cu130, Triton 3.7.1, stock comfy-kitchen 0.2.36. All 30 tested matrix pairs (15 H3 shapes and 15 boundary/reduction probes) were bit-exact; max_abs=0. BF16 activations and bias, INT8 weights, FP32 row scales, ConvRot256.
14 policy tests passed; all applicable pre-commit hooks passed.
Benchmark & Profiling
Base
b906cd3f45bf9d47e92f2d9d7e3d93ad69b06177; candidated41531d. Matrix sweep uses ABBA, three warmups and ten event-timed repetitions in each arm. Example medians of arm medians:No new kernel is introduced; it avoids four GEMMs plus result copies where a single GEMM is more efficient. This is not a universal policy for every Blackwell shape.
Complete SGLang Comfy-integrated Larry v4 INT8 eight-step sampler: 768×512, 124 frames, seed42, Euler/beta, CFG1, sigma shift12/4, torch SDPA, no resident layers. ABBA process order, one warmup and two timed samplers per process. Both arms include the loader correction from #42121 because current main cannot load that serialized checkpoint; this PR does not include the loader change. Both use stock Kitchen 0.2.36.
Implementation and verification used Codex assistance. No independent human review is claimed.
Checklist
Raw timings, profiler counts, tests and audit: https://github.com/Tokha233/ComfyUI-H3-SpeedKit/tree/8650e87/evidence/omni-migration-1002
CI States
Latest PR Test (Base): ❌ Run #37030652382
Latest PR Test (Extra): ❌ Run #37030651933
Latest PR Test (AMD ROCm 10): ❌ Run #37030652385