ByteDance-Seed / ByteDance-Seed/Triton-distributed

Why some tile task does NOT set InputDependencyDesc property?

Open
#141 1 comment 0 reactions 1 assignee Claimed by @XG-zheng View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.