| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 支持ATT analysis tool Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1855 merge att-analysis-pr-vendor into develop feat: 支持ATT analysis tool Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 1. 主要解决的问题 ATT 模板和 tiling 的问题定位通常需要对比默认 Autofuse、开启 PGO、强制模板等场景,再结合 [PROF]/[DFX] 日志、profiling、kernel meta 和 dump 图判断差异原因。原有分析工具位于外部目录,使用时依赖固定文件名和目录结构,难以直接分析用户执行 PyTorch/Inductor 或 TensorFlow 脚本后产生的实际产物。 ## 2. 修改方案 - 在 autofuse/tools/att_analyze/src/att.py 提供统一 CLI 入口。 - 兼容日志文件、日志目录和递归产物目录,不假设用户一定使用仓内 sample 脚本。 - summary、compare、split-slog、perf-formula、verify-tiling、evidence 六个工具分别负责汇总、对比、拆分、公式分析、ABI 验证和证据导出。 - verify-tiling 支持 TensorFlow/Inductor ABI;preset_B.json 的 aiv_num 默认改为 56,并支持 --aiv-num 覆盖。执行前打印实际核数、来源、UB 大小和动态维度,方便用户核对硬件配置。 - output_code.py 只提取字面量 artifact,不执行用户 Python 文件;Inductor PGO 的分段 host 源码可被拆分后参与验证。 - 日志缺失时保留 parse_status,不把缺失值当作有效 0;evidence JSONL 包含来源路径和行号,便于后续 skill 或人工复核。 - 删除重复的 NOTICE、readme.md 和 docs/CSV_COMPARISON.md,工具目录的职责统一由 autofuse/tools/README.md 和 ATT README 说明;新增/整理的工具文件使用 2026 License。 ## 3. 代码目录结构 text autofuse/tools/att_analyze/ ├── src/att.py # 统一命令行入口 ├── src/commands/ │ ├── summary.py # ATT 日志汇总 │ ├── compare.py # 两次结果对比 │ ├── evidence.py # 机器可读证据导出 │ ├── split_slog.py # DFX/PROF 日志拆分 │ ├── perf_formula.py # pipe 公式和 SVG 分析 │ └── verify_tiling.py # TF/Inductor tiling ABI 验证 ├── src/core/ │ ├── log_parser.py # 日志解析和状态标记 │ ├── evidence_schema.py # evidence 记录结构 │ ├── file_utils.py # 输入发现和输出目录处理 │ └── tiling_func_reader.py # tiling 源码读取 ├── examples/examples.py # Python API 和 CLI 命令示例 ├── tests/{unit,functional,integration}/# 回归测试 ├── tests/data/ # 脱敏固定日志 fixture ├── README.md / README_en.md # 使用说明 └── .gitignore # 工具临时输出忽略规则 ## 4. 工具职责、使用方法和效果 | 工具 | 职责与输入 | 示例命令 | 实际效果 | | --- | --- | --- | --- | | summary | 从 ATT [PROF] 日志或目录提取算子、模板、graph/result/group/case、tiling 和性能字段 | python3 autofuse/tools/att_analyze/src/att.py summary run.log -f csv -o summary.csv | 输出 console/CSV/Excel 汇总;不完整记录带 parse_status | | compare | 对比默认、PGO、强制模板或其他候选的两个 summary CSV | python3 autofuse/tools/att_analyze/src/att.py compare default.csv candidate.csv -f text -o compare.txt | 按 Operator/Graph/Result/Group/Case 匹配,显示模板、case、tiling 和性能差异 | | evidence | 将日志转换为机器可读证据 | python3 autofuse/tools/att_analyze/src/att.py evidence run.log -o evidence/ | 生成 att-evidence.jsonl 和 manifest,记录来源路径、行号和解析状态 | | split-slog | 按算子及 graph/result/group/case 拆分 DFX 编译日志和 PROF 运行日志 | python3 autofuse/tools/att_analyze/src/att.py split-slog slog/ --op FlashAttentionScore -o split/ | 生成 compiler/、runtime/ 下的 case 日志,便于逐 case 定位 | | perf-formula | 解析 tiling 源码和 [PERF] pipe 公式 | python3 autofuse/tools/att_analyze/src/att.py perf-formula generated/ run.log --case r=0,g=0,c=1 -o perf/ | 生成 perf_formula.svg,标出最大 pipe 和跨 case 敏感参数;缺少 [PERF] 时明确提示证据不足 | | verify-tiling | 编译并执行用户提供的 TF/Inductor tiling 函数 | python3 autofuse/tools/att_analyze/src/att.py verify-tiling generated/ --scene tf --preset B --aiv-num 56 -o verify/ | 控制台打印有效配置和编译/执行结果,verify/result.json 保存 block_dim、workspace 或失败原因 | examples/examples.py 的第一个示例只打印以上 CLI 命令,不会自动编译、profiling 或执行 tiling 验证;其余示例展示 Python API 调用。 ## 5. 代码修改流程图 mermaid flowchart LR A[用户执行默认/PGO/强制模板场景] --> B[日志、profiling、kernel_meta、dump] B --> C{att CLI} C --> D[summary 汇总] D --> E[compare 对比选择和性能] B --> F[split-slog 拆分 DFX/PROF] B --> G[evidence 导出来源证据] B --> H[perf-formula 生成 pipe SVG] B --> I[verify-tiling 编译并执行 ABI] E --> J[报告模板/tiling 差异] F --> J G --> J H --> J I --> J 采集 [PROF]/[DFX] 时,用户通常需要在自己的执行命令中设置 ASCEND_SLOG_PRINT_TO_STDOUT=1 和 ASCEND_GLOBAL_LOG_LEVEL=1。本工具默认只读已有产物,不猜测 case,也不代替用户重新运行模型。 ## 6. 测试用例说明 | 检查项 | 结果 | | --- | --- | | ATT unit/integration/functional tests | 94 passed | | git diff --check | 通过 | | ruff、ruff-format、codespell | 通过 | | pre-commit(含 OAT、冲突标记、禁止 docs/superpowers) | 通过 | | CLI 合约测试 | 覆盖六个子命令和 CLI 示例顺序 | 固定 tests/data/ 仅用于回归;真实 CANN、TensorFlow 或 Inductor 日志格式变化时,应脱敏新增 fixture 并同步期望结果,不覆盖旧样例。上述测试验证工具解析和产物生成能力,不代表任何模型的性能或精度结论。 ## 7. 核对清单 - [x] 工具源码、测试和文档均在当前仓维护 - [x] 六个工具均有职责、输入、命令和效果说明 - [x] verify-tiling 打印有效 aiv_num 并支持命令行覆盖 - [x] 日志证据缺失时显式标记,不静默填充 0 - [x] 已删除重复文档和 NOTICE - [x] 顶层 docs/ 未修改 - [x] 顶层 autofuse/README*.md 未纳入最终 PR 差异 - [ ] 未执行设备侧 tiling 验证 ## 8. 其他信息 工具验证使用本仓 Python 环境和已有 ATT fixture;远端场景由用户提供运行环境和命令后再执行,标准远端通道为 ssh,不默认使用 devssh。PR 1856/1857 保留各自 skill 内容,并已同步本 PR 的工具版本。 See merge request: cann/graph-autofusion!1855 | 7 天前 | |
feat: 支持ATT analysis tool Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1855 merge att-analysis-pr-vendor into develop feat: 支持ATT analysis tool Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 1. 主要解决的问题 ATT 模板和 tiling 的问题定位通常需要对比默认 Autofuse、开启 PGO、强制模板等场景,再结合 [PROF]/[DFX] 日志、profiling、kernel meta 和 dump 图判断差异原因。原有分析工具位于外部目录,使用时依赖固定文件名和目录结构,难以直接分析用户执行 PyTorch/Inductor 或 TensorFlow 脚本后产生的实际产物。 ## 2. 修改方案 - 在 autofuse/tools/att_analyze/src/att.py 提供统一 CLI 入口。 - 兼容日志文件、日志目录和递归产物目录,不假设用户一定使用仓内 sample 脚本。 - summary、compare、split-slog、perf-formula、verify-tiling、evidence 六个工具分别负责汇总、对比、拆分、公式分析、ABI 验证和证据导出。 - verify-tiling 支持 TensorFlow/Inductor ABI;preset_B.json 的 aiv_num 默认改为 56,并支持 --aiv-num 覆盖。执行前打印实际核数、来源、UB 大小和动态维度,方便用户核对硬件配置。 - output_code.py 只提取字面量 artifact,不执行用户 Python 文件;Inductor PGO 的分段 host 源码可被拆分后参与验证。 - 日志缺失时保留 parse_status,不把缺失值当作有效 0;evidence JSONL 包含来源路径和行号,便于后续 skill 或人工复核。 - 删除重复的 NOTICE、readme.md 和 docs/CSV_COMPARISON.md,工具目录的职责统一由 autofuse/tools/README.md 和 ATT README 说明;新增/整理的工具文件使用 2026 License。 ## 3. 代码目录结构 text autofuse/tools/att_analyze/ ├── src/att.py # 统一命令行入口 ├── src/commands/ │ ├── summary.py # ATT 日志汇总 │ ├── compare.py # 两次结果对比 │ ├── evidence.py # 机器可读证据导出 │ ├── split_slog.py # DFX/PROF 日志拆分 │ ├── perf_formula.py # pipe 公式和 SVG 分析 │ └── verify_tiling.py # TF/Inductor tiling ABI 验证 ├── src/core/ │ ├── log_parser.py # 日志解析和状态标记 │ ├── evidence_schema.py # evidence 记录结构 │ ├── file_utils.py # 输入发现和输出目录处理 │ └── tiling_func_reader.py # tiling 源码读取 ├── examples/examples.py # Python API 和 CLI 命令示例 ├── tests/{unit,functional,integration}/# 回归测试 ├── tests/data/ # 脱敏固定日志 fixture ├── README.md / README_en.md # 使用说明 └── .gitignore # 工具临时输出忽略规则 ## 4. 工具职责、使用方法和效果 | 工具 | 职责与输入 | 示例命令 | 实际效果 | | --- | --- | --- | --- | | summary | 从 ATT [PROF] 日志或目录提取算子、模板、graph/result/group/case、tiling 和性能字段 | python3 autofuse/tools/att_analyze/src/att.py summary run.log -f csv -o summary.csv | 输出 console/CSV/Excel 汇总;不完整记录带 parse_status | | compare | 对比默认、PGO、强制模板或其他候选的两个 summary CSV | python3 autofuse/tools/att_analyze/src/att.py compare default.csv candidate.csv -f text -o compare.txt | 按 Operator/Graph/Result/Group/Case 匹配,显示模板、case、tiling 和性能差异 | | evidence | 将日志转换为机器可读证据 | python3 autofuse/tools/att_analyze/src/att.py evidence run.log -o evidence/ | 生成 att-evidence.jsonl 和 manifest,记录来源路径、行号和解析状态 | | split-slog | 按算子及 graph/result/group/case 拆分 DFX 编译日志和 PROF 运行日志 | python3 autofuse/tools/att_analyze/src/att.py split-slog slog/ --op FlashAttentionScore -o split/ | 生成 compiler/、runtime/ 下的 case 日志,便于逐 case 定位 | | perf-formula | 解析 tiling 源码和 [PERF] pipe 公式 | python3 autofuse/tools/att_analyze/src/att.py perf-formula generated/ run.log --case r=0,g=0,c=1 -o perf/ | 生成 perf_formula.svg,标出最大 pipe 和跨 case 敏感参数;缺少 [PERF] 时明确提示证据不足 | | verify-tiling | 编译并执行用户提供的 TF/Inductor tiling 函数 | python3 autofuse/tools/att_analyze/src/att.py verify-tiling generated/ --scene tf --preset B --aiv-num 56 -o verify/ | 控制台打印有效配置和编译/执行结果,verify/result.json 保存 block_dim、workspace 或失败原因 | examples/examples.py 的第一个示例只打印以上 CLI 命令,不会自动编译、profiling 或执行 tiling 验证;其余示例展示 Python API 调用。 ## 5. 代码修改流程图 mermaid flowchart LR A[用户执行默认/PGO/强制模板场景] --> B[日志、profiling、kernel_meta、dump] B --> C{att CLI} C --> D[summary 汇总] D --> E[compare 对比选择和性能] B --> F[split-slog 拆分 DFX/PROF] B --> G[evidence 导出来源证据] B --> H[perf-formula 生成 pipe SVG] B --> I[verify-tiling 编译并执行 ABI] E --> J[报告模板/tiling 差异] F --> J G --> J H --> J I --> J 采集 [PROF]/[DFX] 时,用户通常需要在自己的执行命令中设置 ASCEND_SLOG_PRINT_TO_STDOUT=1 和 ASCEND_GLOBAL_LOG_LEVEL=1。本工具默认只读已有产物,不猜测 case,也不代替用户重新运行模型。 ## 6. 测试用例说明 | 检查项 | 结果 | | --- | --- | | ATT unit/integration/functional tests | 94 passed | | git diff --check | 通过 | | ruff、ruff-format、codespell | 通过 | | pre-commit(含 OAT、冲突标记、禁止 docs/superpowers) | 通过 | | CLI 合约测试 | 覆盖六个子命令和 CLI 示例顺序 | 固定 tests/data/ 仅用于回归;真实 CANN、TensorFlow 或 Inductor 日志格式变化时,应脱敏新增 fixture 并同步期望结果,不覆盖旧样例。上述测试验证工具解析和产物生成能力,不代表任何模型的性能或精度结论。 ## 7. 核对清单 - [x] 工具源码、测试和文档均在当前仓维护 - [x] 六个工具均有职责、输入、命令和效果说明 - [x] verify-tiling 打印有效 aiv_num 并支持命令行覆盖 - [x] 日志证据缺失时显式标记,不静默填充 0 - [x] 已删除重复文档和 NOTICE - [x] 顶层 docs/ 未修改 - [x] 顶层 autofuse/README*.md 未纳入最终 PR 差异 - [ ] 未执行设备侧 tiling 验证 ## 8. 其他信息 工具验证使用本仓 Python 环境和已有 ATT fixture;远端场景由用户提供运行环境和命令后再执行,标准远端通道为 ssh,不默认使用 devssh。PR 1856/1857 保留各自 skill 内容,并已同步本 PR 的工具版本。 See merge request: cann/graph-autofusion!1855 | 7 天前 | |
feat: 支持ATT analysis tool Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1855 merge att-analysis-pr-vendor into develop feat: 支持ATT analysis tool Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 1. 主要解决的问题 ATT 模板和 tiling 的问题定位通常需要对比默认 Autofuse、开启 PGO、强制模板等场景,再结合 [PROF]/[DFX] 日志、profiling、kernel meta 和 dump 图判断差异原因。原有分析工具位于外部目录,使用时依赖固定文件名和目录结构,难以直接分析用户执行 PyTorch/Inductor 或 TensorFlow 脚本后产生的实际产物。 ## 2. 修改方案 - 在 autofuse/tools/att_analyze/src/att.py 提供统一 CLI 入口。 - 兼容日志文件、日志目录和递归产物目录,不假设用户一定使用仓内 sample 脚本。 - summary、compare、split-slog、perf-formula、verify-tiling、evidence 六个工具分别负责汇总、对比、拆分、公式分析、ABI 验证和证据导出。 - verify-tiling 支持 TensorFlow/Inductor ABI;preset_B.json 的 aiv_num 默认改为 56,并支持 --aiv-num 覆盖。执行前打印实际核数、来源、UB 大小和动态维度,方便用户核对硬件配置。 - output_code.py 只提取字面量 artifact,不执行用户 Python 文件;Inductor PGO 的分段 host 源码可被拆分后参与验证。 - 日志缺失时保留 parse_status,不把缺失值当作有效 0;evidence JSONL 包含来源路径和行号,便于后续 skill 或人工复核。 - 删除重复的 NOTICE、readme.md 和 docs/CSV_COMPARISON.md,工具目录的职责统一由 autofuse/tools/README.md 和 ATT README 说明;新增/整理的工具文件使用 2026 License。 ## 3. 代码目录结构 text autofuse/tools/att_analyze/ ├── src/att.py # 统一命令行入口 ├── src/commands/ │ ├── summary.py # ATT 日志汇总 │ ├── compare.py # 两次结果对比 │ ├── evidence.py # 机器可读证据导出 │ ├── split_slog.py # DFX/PROF 日志拆分 │ ├── perf_formula.py # pipe 公式和 SVG 分析 │ └── verify_tiling.py # TF/Inductor tiling ABI 验证 ├── src/core/ │ ├── log_parser.py # 日志解析和状态标记 │ ├── evidence_schema.py # evidence 记录结构 │ ├── file_utils.py # 输入发现和输出目录处理 │ └── tiling_func_reader.py # tiling 源码读取 ├── examples/examples.py # Python API 和 CLI 命令示例 ├── tests/{unit,functional,integration}/# 回归测试 ├── tests/data/ # 脱敏固定日志 fixture ├── README.md / README_en.md # 使用说明 └── .gitignore # 工具临时输出忽略规则 ## 4. 工具职责、使用方法和效果 | 工具 | 职责与输入 | 示例命令 | 实际效果 | | --- | --- | --- | --- | | summary | 从 ATT [PROF] 日志或目录提取算子、模板、graph/result/group/case、tiling 和性能字段 | python3 autofuse/tools/att_analyze/src/att.py summary run.log -f csv -o summary.csv | 输出 console/CSV/Excel 汇总;不完整记录带 parse_status | | compare | 对比默认、PGO、强制模板或其他候选的两个 summary CSV | python3 autofuse/tools/att_analyze/src/att.py compare default.csv candidate.csv -f text -o compare.txt | 按 Operator/Graph/Result/Group/Case 匹配,显示模板、case、tiling 和性能差异 | | evidence | 将日志转换为机器可读证据 | python3 autofuse/tools/att_analyze/src/att.py evidence run.log -o evidence/ | 生成 att-evidence.jsonl 和 manifest,记录来源路径、行号和解析状态 | | split-slog | 按算子及 graph/result/group/case 拆分 DFX 编译日志和 PROF 运行日志 | python3 autofuse/tools/att_analyze/src/att.py split-slog slog/ --op FlashAttentionScore -o split/ | 生成 compiler/、runtime/ 下的 case 日志,便于逐 case 定位 | | perf-formula | 解析 tiling 源码和 [PERF] pipe 公式 | python3 autofuse/tools/att_analyze/src/att.py perf-formula generated/ run.log --case r=0,g=0,c=1 -o perf/ | 生成 perf_formula.svg,标出最大 pipe 和跨 case 敏感参数;缺少 [PERF] 时明确提示证据不足 | | verify-tiling | 编译并执行用户提供的 TF/Inductor tiling 函数 | python3 autofuse/tools/att_analyze/src/att.py verify-tiling generated/ --scene tf --preset B --aiv-num 56 -o verify/ | 控制台打印有效配置和编译/执行结果,verify/result.json 保存 block_dim、workspace 或失败原因 | examples/examples.py 的第一个示例只打印以上 CLI 命令,不会自动编译、profiling 或执行 tiling 验证;其余示例展示 Python API 调用。 ## 5. 代码修改流程图 mermaid flowchart LR A[用户执行默认/PGO/强制模板场景] --> B[日志、profiling、kernel_meta、dump] B --> C{att CLI} C --> D[summary 汇总] D --> E[compare 对比选择和性能] B --> F[split-slog 拆分 DFX/PROF] B --> G[evidence 导出来源证据] B --> H[perf-formula 生成 pipe SVG] B --> I[verify-tiling 编译并执行 ABI] E --> J[报告模板/tiling 差异] F --> J G --> J H --> J I --> J 采集 [PROF]/[DFX] 时,用户通常需要在自己的执行命令中设置 ASCEND_SLOG_PRINT_TO_STDOUT=1 和 ASCEND_GLOBAL_LOG_LEVEL=1。本工具默认只读已有产物,不猜测 case,也不代替用户重新运行模型。 ## 6. 测试用例说明 | 检查项 | 结果 | | --- | --- | | ATT unit/integration/functional tests | 94 passed | | git diff --check | 通过 | | ruff、ruff-format、codespell | 通过 | | pre-commit(含 OAT、冲突标记、禁止 docs/superpowers) | 通过 | | CLI 合约测试 | 覆盖六个子命令和 CLI 示例顺序 | 固定 tests/data/ 仅用于回归;真实 CANN、TensorFlow 或 Inductor 日志格式变化时,应脱敏新增 fixture 并同步期望结果,不覆盖旧样例。上述测试验证工具解析和产物生成能力,不代表任何模型的性能或精度结论。 ## 7. 核对清单 - [x] 工具源码、测试和文档均在当前仓维护 - [x] 六个工具均有职责、输入、命令和效果说明 - [x] verify-tiling 打印有效 aiv_num 并支持命令行覆盖 - [x] 日志证据缺失时显式标记,不静默填充 0 - [x] 已删除重复文档和 NOTICE - [x] 顶层 docs/ 未修改 - [x] 顶层 autofuse/README*.md 未纳入最终 PR 差异 - [ ] 未执行设备侧 tiling 验证 ## 8. 其他信息 工具验证使用本仓 Python 环境和已有 ATT fixture;远端场景由用户提供运行环境和命令后再执行,标准远端通道为 ssh,不默认使用 devssh。PR 1856/1857 保留各自 skill 内容,并已同步本 PR 的工具版本。 See merge request: cann/graph-autofusion!1855 | 7 天前 | |
feat: 支持ATT analysis tool Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1855 merge att-analysis-pr-vendor into develop feat: 支持ATT analysis tool Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 1. 主要解决的问题 ATT 模板和 tiling 的问题定位通常需要对比默认 Autofuse、开启 PGO、强制模板等场景,再结合 [PROF]/[DFX] 日志、profiling、kernel meta 和 dump 图判断差异原因。原有分析工具位于外部目录,使用时依赖固定文件名和目录结构,难以直接分析用户执行 PyTorch/Inductor 或 TensorFlow 脚本后产生的实际产物。 ## 2. 修改方案 - 在 autofuse/tools/att_analyze/src/att.py 提供统一 CLI 入口。 - 兼容日志文件、日志目录和递归产物目录,不假设用户一定使用仓内 sample 脚本。 - summary、compare、split-slog、perf-formula、verify-tiling、evidence 六个工具分别负责汇总、对比、拆分、公式分析、ABI 验证和证据导出。 - verify-tiling 支持 TensorFlow/Inductor ABI;preset_B.json 的 aiv_num 默认改为 56,并支持 --aiv-num 覆盖。执行前打印实际核数、来源、UB 大小和动态维度,方便用户核对硬件配置。 - output_code.py 只提取字面量 artifact,不执行用户 Python 文件;Inductor PGO 的分段 host 源码可被拆分后参与验证。 - 日志缺失时保留 parse_status,不把缺失值当作有效 0;evidence JSONL 包含来源路径和行号,便于后续 skill 或人工复核。 - 删除重复的 NOTICE、readme.md 和 docs/CSV_COMPARISON.md,工具目录的职责统一由 autofuse/tools/README.md 和 ATT README 说明;新增/整理的工具文件使用 2026 License。 ## 3. 代码目录结构 text autofuse/tools/att_analyze/ ├── src/att.py # 统一命令行入口 ├── src/commands/ │ ├── summary.py # ATT 日志汇总 │ ├── compare.py # 两次结果对比 │ ├── evidence.py # 机器可读证据导出 │ ├── split_slog.py # DFX/PROF 日志拆分 │ ├── perf_formula.py # pipe 公式和 SVG 分析 │ └── verify_tiling.py # TF/Inductor tiling ABI 验证 ├── src/core/ │ ├── log_parser.py # 日志解析和状态标记 │ ├── evidence_schema.py # evidence 记录结构 │ ├── file_utils.py # 输入发现和输出目录处理 │ └── tiling_func_reader.py # tiling 源码读取 ├── examples/examples.py # Python API 和 CLI 命令示例 ├── tests/{unit,functional,integration}/# 回归测试 ├── tests/data/ # 脱敏固定日志 fixture ├── README.md / README_en.md # 使用说明 └── .gitignore # 工具临时输出忽略规则 ## 4. 工具职责、使用方法和效果 | 工具 | 职责与输入 | 示例命令 | 实际效果 | | --- | --- | --- | --- | | summary | 从 ATT [PROF] 日志或目录提取算子、模板、graph/result/group/case、tiling 和性能字段 | python3 autofuse/tools/att_analyze/src/att.py summary run.log -f csv -o summary.csv | 输出 console/CSV/Excel 汇总;不完整记录带 parse_status | | compare | 对比默认、PGO、强制模板或其他候选的两个 summary CSV | python3 autofuse/tools/att_analyze/src/att.py compare default.csv candidate.csv -f text -o compare.txt | 按 Operator/Graph/Result/Group/Case 匹配,显示模板、case、tiling 和性能差异 | | evidence | 将日志转换为机器可读证据 | python3 autofuse/tools/att_analyze/src/att.py evidence run.log -o evidence/ | 生成 att-evidence.jsonl 和 manifest,记录来源路径、行号和解析状态 | | split-slog | 按算子及 graph/result/group/case 拆分 DFX 编译日志和 PROF 运行日志 | python3 autofuse/tools/att_analyze/src/att.py split-slog slog/ --op FlashAttentionScore -o split/ | 生成 compiler/、runtime/ 下的 case 日志,便于逐 case 定位 | | perf-formula | 解析 tiling 源码和 [PERF] pipe 公式 | python3 autofuse/tools/att_analyze/src/att.py perf-formula generated/ run.log --case r=0,g=0,c=1 -o perf/ | 生成 perf_formula.svg,标出最大 pipe 和跨 case 敏感参数;缺少 [PERF] 时明确提示证据不足 | | verify-tiling | 编译并执行用户提供的 TF/Inductor tiling 函数 | python3 autofuse/tools/att_analyze/src/att.py verify-tiling generated/ --scene tf --preset B --aiv-num 56 -o verify/ | 控制台打印有效配置和编译/执行结果,verify/result.json 保存 block_dim、workspace 或失败原因 | examples/examples.py 的第一个示例只打印以上 CLI 命令,不会自动编译、profiling 或执行 tiling 验证;其余示例展示 Python API 调用。 ## 5. 代码修改流程图 mermaid flowchart LR A[用户执行默认/PGO/强制模板场景] --> B[日志、profiling、kernel_meta、dump] B --> C{att CLI} C --> D[summary 汇总] D --> E[compare 对比选择和性能] B --> F[split-slog 拆分 DFX/PROF] B --> G[evidence 导出来源证据] B --> H[perf-formula 生成 pipe SVG] B --> I[verify-tiling 编译并执行 ABI] E --> J[报告模板/tiling 差异] F --> J G --> J H --> J I --> J 采集 [PROF]/[DFX] 时,用户通常需要在自己的执行命令中设置 ASCEND_SLOG_PRINT_TO_STDOUT=1 和 ASCEND_GLOBAL_LOG_LEVEL=1。本工具默认只读已有产物,不猜测 case,也不代替用户重新运行模型。 ## 6. 测试用例说明 | 检查项 | 结果 | | --- | --- | | ATT unit/integration/functional tests | 94 passed | | git diff --check | 通过 | | ruff、ruff-format、codespell | 通过 | | pre-commit(含 OAT、冲突标记、禁止 docs/superpowers) | 通过 | | CLI 合约测试 | 覆盖六个子命令和 CLI 示例顺序 | 固定 tests/data/ 仅用于回归;真实 CANN、TensorFlow 或 Inductor 日志格式变化时,应脱敏新增 fixture 并同步期望结果,不覆盖旧样例。上述测试验证工具解析和产物生成能力,不代表任何模型的性能或精度结论。 ## 7. 核对清单 - [x] 工具源码、测试和文档均在当前仓维护 - [x] 六个工具均有职责、输入、命令和效果说明 - [x] verify-tiling 打印有效 aiv_num 并支持命令行覆盖 - [x] 日志证据缺失时显式标记,不静默填充 0 - [x] 已删除重复文档和 NOTICE - [x] 顶层 docs/ 未修改 - [x] 顶层 autofuse/README*.md 未纳入最终 PR 差异 - [ ] 未执行设备侧 tiling 验证 ## 8. 其他信息 工具验证使用本仓 Python 环境和已有 ATT fixture;远端场景由用户提供运行环境和命令后再执行,标准远端通道为 ssh,不默认使用 devssh。PR 1856/1857 保留各自 skill 内容,并已同步本 PR 的工具版本。 See merge request: cann/graph-autofusion!1855 | 7 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 7 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 7 天前 |