Verbose setting for RewritePass for better logging and debugging
维护者通常 4 天内回复
还没有人认领这个 Issue。
评估
调研方向
检查相关 ONNX IR pass 实现中的 RewritePass,以及 tetracode/src/www/python/tetrai/compilers/onnx2onnx/optimizer.py 中的 optimize_onnx_using_onnx_ir。跟踪 pass 的构造方式和规则的应用方式,然后验证可选的 verbose 设置能够传递到规则应用,同时默认行为保持不变。当两个要求的入口点都支持该设置,并且可以观察到触发的 pass 日志时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
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
...
]
- 主要语言
- Python
- 星标
- 457
- 派生
- 149
- 平均合并
- 3 天 16 小时
- 30 天内合并 PR
- 24
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/onnxscript 的其他 Issue
-
`fuse_skip_rms_normalization` fuses a float16 residual into a norm whose scale is float32, which ONNX Runtime rejects可能已有人在做 @justinchuby 于 3 天前认领。 未关闭module: optimizer
难度 2/5 1-3 小时 新手友好度 76/100
microsoft/onnxscript#3155 · 3 条评论 · 1 个 reaction · 已指派 2 人 ·
维护者通常 4 天内回复
-
Constant folding uses onnx's plain reference ops, never onnx.reference.ops_optimized可能已有人在做 @todkarsant 于 3 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
microsoft/onnxscript#3003 · 3 条评论 ·
维护者通常 4 天内回复
-
CI : Pin github actions to full commit SHA可能已有人在做 @Aniketsy 于 188 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
microsoft/onnxscript#2903 · 6 条评论 ·
维护者通常 4 天内回复
-
Batch-transpose fusion into `FusedMatMul` sets `transBatchA` on inputs of different ranks, which ONNX Runtime can't compute可能已有人在做 @Syedmudassir1604 于 3 天前认领。 未关闭module: optimizer
难度 3/5 1-2 天 新手友好度 72/100
microsoft/onnxscript#3156 ·
维护者通常 4 天内回复
-
`SlicesSplit` rule makes `optimizer.optimize` quadratic in the number of `Slice` nodes可能已有人在做 @mayuriphad 于 2 天前认领。 未关闭module: optimizer
难度 4/5 3-5 天 新手友好度 68/100
microsoft/onnxscript#3154 ·
维护者通常 4 天内回复
查看 microsoft/onnxscript 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
igormcsouza/tether#278 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 91/100
aws-samples/sample-per-model-bedrock#803 ·
维护者通常 1 天内回复
-
documentation p1
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
huggingface/accelerate#4511 ·
维护者通常 1 天内回复
-
follow-up
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复