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
[autoparallel] fix C version rotor inconsistency #1691
[autoparallel] fix C version rotor inconsistency #1691
Conversation
Merge ColossalAI
Daily merge
setattr(gm, "__sequence__", sequence) | ||
|
||
# set __opttable__ attribute to GraphModule | ||
setattr(gm, "__opttable__", opt_table[0]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why opttable[0]
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
because I think don't need what
table to be attached to the graph module, the returned opt_table
by solver is a table containing opt_table[0] = opt, opt_table[1] = what
, and I think we only need opt
to check the value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see
What's New?
Previously in PR #1679 , @super-dainiu reported the inconsistency between C version and python version of rotor solver, I dived into the C source code and found that the problem is that the C version compute the value in different order, with older version of profiler, the computation order will not damage the result, but currently some of the output of profiler has memory size of 0 (depends on newer version of graph analysis, some of the operation will discard the input), thus, the different order will cause solver failure. In this PR, I fix this problem and now the C version is consistent with python version.