fix(w4a16): admit ultra-wide FC2 tile in forced re-pin validation#39
fix(w4a16): admit ultra-wide FC2 tile in forced re-pin validation#39sjug wants to merge 1 commit into
Conversation
|
Warning Review limit reached
Next review available in: 4 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe forced tile configuration validation now recognizes a TC-decode FC2 ultra-wide shape when its geometry, divisibility constraints, and shared-memory footprint match; other configurations continue through the existing candidate-fit validation. ChangesFC2 tile validation
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
9aa1f07 to
adcc6aa
Compare
Summary
W4A16 TC-decode can auto-select the ultra-wide FC2 tile
(tile_k=32, tile_n=512)on 48-SM GB10 geometry. Before this fix,re-pinning that selected configuration across the custom-op boundary rejected
it because the generic tile validator enforces
tile_k >= 64.The result was a deterministic graph-capture boot failure for
DeepSeek-v4-Flash TP2 on DGX Spark even though sparkinfer itself had selected
the tile.
Root cause
The ultra-wide FC2 override intentionally validates
(32, 512)outside_candidate_tile_fits, because it is the one supported TC-decode tile belowthe generic
tile_k >= 64floor. Theforce_tile_configpath did not sharethat exception and therefore rejected the selector's output.
Fix
_tc_decode_ultra_fc2_tile_fitspredicate and use it in bothautomatic selection and forced re-pin validation.
checks.
Regression coverage
test_w4a16_tc_decode_ultra_fc2_tile_round_trips_forced_repin:(fc1_k=64, fc1_n=256, fc2_k=32, fc2_n=512);force_tile_configandasserts it is preserved;
512-aligned.
Validation
(64, 256, 32, 512)and raisedValueErrorduring forced re-pin.pytest -q tests/moe/test_w4a16_e2e.py::test_w4a16_tc_decode_ultra_fc2_tile_round_trips_forced_repin— 1 passed.
pytest -q tests/moe/test_w4a16_e2e.py -k tc_decode— 14 passed, 79 deselected.
ruff check sparkinfer/moe/_shared/kernels/w4a16/kernel.py tests/moe/test_w4a16_e2e.py— passed.
git diff --check— passed.The original deployment evidence remains: on 2× GB10, DeepSeek-v4-Flash TP2
failed graph capture on every boot before the fix and booted and served
successfully with the ultra tile admitted.