-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
Add distributed pass framework: including PassBase/PassTest/PassUtils #36643
Conversation
Thanks for your contribution! |
Sorry to inform you that ecf3f8e's CIs have passed for more than 7 days. To prevent PR conflicts, you need to re-run all CIs manually. |
|
||
|
||
# Like AutoParallel/HybridParallel, etc. | ||
class ParallelOptPass(PassBase): |
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.
From the current situation of the auto-parallel pass optimizations, we tend to directly inherit the PassBase and not use the ParallelOptPass
, CalcOptPass
and CommOptPass
.
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.
Would fix it in the next PR.
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.
LGTM for set_tests_properties(test_split_program PROPERTIES TIMEOUT 120)
PR types
New features
PR changes
Others
Describe
PassContext
: a helper class to record the applied pass history.PassBase
: the super class of all distributed passes. The developers should override the_check_self
,_check_conflict
,_apply_impl/_apply_single_impl
methods to implement their own passes.ParallelOptPass
,CalcOptPass
andCommOptPass
: three classes that are derived fromPassBase
. The developers should derive one of them instead ofPassBase
to implement their own passes.CPPPassWrapper
: a class that is derived fromPassBase
. It is used to wrap the existing C++ graph-based passes. Developers can call these passes using the same method as other Python passes.PassManager
: a helper class to do the automatic pass combination and solving conflicts.FuseAllReducePass
.FuseElementwiseAddActPass
.DistPassTestBase
.split_program
utils to show how to write the pass utility tools.