New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ETFeeder] Resolve deps based on not only data_deps, but also ctrl_deps #11
base: main
Are you sure you want to change the base?
[ETFeeder] Resolve deps based on not only data_deps, but also ctrl_deps #11
Conversation
MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅ |
e1fba19
to
4f5c109
Compare
@changhai0109, |
@changhai0109, I appreciate your contribution to Chakra. I believe we should solely rely on data dependencies, rather than control dependencies. Control dependencies refer to dependencies used in the host Chakra execution traces (PyTorch execution traces). Although the final Chakra host + device execution traces include control dependencies, these are encoded for compatibility purposes rather than for simulation. Thus, it would be preferable to avoid depending on control dependencies for simulation purposes. |
@changhai0109 kindly answer @TaekyungHeo and @JoongunPark questions. We can review this PR and see if this is required. As things stand, we do not need to encode this additional deps for simulation use cases. |
I understand for now we do not need to rely on ctrl deps for now. However, support ctrl deps might be beneficial for ppl who study scheduling problems. So instead of supporting only data deps, how about adding a flag in ETFeeder, so that users can choose whether enable ctrl deps, then for current usages just disable ctrl deps. |
Your suggestion to add a flag in ETFeeder for enabling control dependencies raises an interesting point. Have you seen any examples or scenarios where the scheduling process is significantly impacted by the choice of dependency option? |
Summary
In ETFeederNode, add fields of all_deps, which is a complete set of data_deps and ctrl_deps.
Add unreleased_deps to track the parents of a node which is not issued yet.
Update deps resolving reference to all_deps instead of data_deps.
Test Plan
Add following function to et_generator
register this function in main as follows
Run et_generator and get
two_comp_nodes_ctrl_dependent.{npu_id}.et
, then run with astrasim.