ByteDance-Seed / ByteDance-Seed/Triton-distributed
Why some tile task does NOT set InputDependencyDesc property?
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 172
- PR merge metrics
- No merged PRs in 30d
Description
I've noticed that some tile tasks (such as linear-related MFC and QKVproject tasks) set `InputDependencyDesc` and `OutputTilingDesc` when `_build_tasks_impl()` is called, while others, such as `QKNormRopeUpdateKVCacheTask` and `AttnSplitTask`, do not. Why is this?
The disadvantage is obvious without setting these two properties: these tile tasks must wait until all tile tasks in the preceding Node() are completed before starting, because `has_data_dependency()` determines that these tile tasks are dependent on all tile tasks in the preceding Node. This is very coarse-grained, thus diminishing the benefits of `magekernel` breaking kernel boundaries.
I'm guessing it's because of changes in the input data shape? However, I see that the function `has_slice_intersection()` also determines dependencies for tile tasks with different input and output shapes.
I would be very grateful if you could provide an explanation. :)
Contributor guide
Assessment
This issue has not been assessed yet.