SIGN IN SIGN UP

FlashInfer: Kernel Library for LLM Serving

0 0 188 Python

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