-
Notifications
You must be signed in to change notification settings - Fork 107
Verbose setting for RewritePass for better logging and debugging #2876
Copy link
Copy link
Open
Description
Problem: I want a setting to know if a pass is triggered.
Solution: Make a flag in RewritePass to be verbose or not.
Here is a proposal. Is there a batter way?
Change RewritePass:
class RewritePass(ir.passes.InPlacePass):
def __init__(
self,
rules: Sequence[pattern.RewriteRule] | pattern.RewriteRuleSet,
/,
verbose: int = 0, # ADD THIS
) -> None:
super().__init__()
if isinstance(rules, Sequence):
if not rules:
raise ValueError("rules must not be empty")
rules = pattern.RewriteRuleSet(rules)
assert isinstance(rules, pattern.RewriteRuleSet)
self.rules: pattern.RewriteRuleSet = rules
self.verbose = verbose # ADD THIS
def call(self, model: ir.Model) -> ir.passes.PassResult:
count = self.rules.apply_to_model(model, verbose=self.verbose if self.verbose else None) # CHANGE THIS LINE
if count:
print(f"Applied {count} of general pattern rewrite rules.")
return ir.passes.PassResult(model, bool(count))
File 2: tetracode/src/www/python/tetrai/compilers/onnx2onnx/optimizer.py
Add verbose parameter and pass it:
def optimize_onnx_using_onnx_ir(
onnx_model: rewriter._ModelProtoOrIr,
rewrite_rules: Sequence[rewriter.pattern.RewriteRule] | None = None,
logger: TetraLoggerAdapter = TetraLoggerAdapter(__name__),
verbose: int = 0, # ADD THIS
) -> rewriter._ModelProtoOrIr:
...
passes = [
...
rewriter.RewritePass(rewrite_rules, verbose=verbose), # ADD verbose HERE
...
]
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels