profiler: group perfetto traces by SM, one row per block (#3038)
## Summary - Group blocks by SM ID in perfetto trace hierarchy instead of one top-level group per block. Blocks on the same SM appear as adjacent rows under a single `SM_XXX` tab. - Collapse all events for a (block, group) pair onto one track instead of one track per event type, reducing visual clutter from O(blocks × groups × events) to O(blocks × groups). **Before:** `block_0 > group_0 > [separate track per event]` — blocks scattered, no SM locality visible. **After:** `SM_042 > blk0_g0` (all events inline) — co-located blocks are visually adjacent, SM utilization visible at a glance. <img width="2564" height="282" alt="image" src="https://github.com/user-attachments/assets/80c6d50d-77d0-4612-ba83-a01ec0350881" /> ## Test plan - [ ] Open a profiler trace in Perfetto UI and verify blocks are grouped by SM - [ ] Verify all events for a block appear on a single track line - [ ] Compare with old layout to confirm no data loss 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Perfetto traces now group events by SM, consolidating related events and reducing duplicated tracks by sharing a single track per block/group for clearer profiling timelines. * More consistent and accurate profiling output for improved analysis. * **Chores** * MOE finalize flow now sends explicit null placeholders for certain optional outputs to the backend, ensuring consistent runtime behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Zihao Ye <expye@outlook.com>
W
Wenxuan Tan committed
c802a05d9806a3d8ec72014f9cec4d67da0d5e8e
Parent: 0b755de
Committed by GitHub <noreply@github.com>
on 5/26/2026, 11:41:09 PM