用途:诊断 OpenVINO 中基于 MatcherPass 的变换在给定模型上未触发的根因,最终产出诊断报告与复现测试。
主要能力:
- 前置确认变换类名、运行命令与构建目录(build/Release 为默认)。
- 检查构建是否开启 ENABLE_DEBUG_CAPS:grep -i "ENABLE_DEBUG_CAPS" build/*/CMakeCache.txt;未开启则 cmake -B <build_dir> -DENABLE_DEBUG_CAPS=ON 并重新构建。
- 收集 matcher 日志:OV_MATCHER_LOGGING=true OV_MATCHERS_TO_LOG=TransformationName <run_command> 2>&1 | tee matcher.log;可用 OV_VERBOSE_LOGGING=true 获取节点细节。
- 用 Python 统计每个 pass 的 CALLBACK SUCCEDED / MATCHED / DIDN'T MATCH 次数,区分已触发、根因未触发与下游连带未触发。
- 在日志中定位最内层失败,对照日志短语判断根因,如节点类型不匹配、谓词失败、参数数量不符、OR 分支均不匹配、属性不匹配、已应用过该变换、opset 版本不符等。
- 在现有测试文件中新增 TEST_F 复现用例,使用 TransformationTestsF,并交叉验证日志一致后视为有效复现。
- 若所有 pass 均已触发,则跳过后续步骤,仅输出轻量总结。
限制:仅改动测试文件,不创建额外输出文件;诊断报告只发聊天不存盘;构建目录默认 build/Release;未提供修复实现细节、具体价格或平台信息。