| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 优化 Cast 性能计算 Co-authored-by: gcw_V3YyYBt1<gaoxin32@huawei.com> # message auto-generated for no-merge-commit merge: !1266 merge develop into develop feat: 优化 Cast 性能计算 Created-by: gcw_V3YyYBt1 Commit-by: gcw_V3YyYBt1 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 主要解决问题 - CastPerf 需要覆盖更多 CastExtend 实际执行路径,但原性能模型对 Cast 参数、循环次数、stride 分支和特殊类型转换路径的表达不完整,难以准确建模 int4、int64/uint8、同 bit 整数转换等场景。 - 旧的性能表查询主要按单 dtype 获取 latency/throughput,无法表达 kCast、kStore 这类同时依赖输入 dtype 和输出 dtype 的性能差异,例如 uint8 -> int64 store 成本和 float16/bfloat16/float32 Cast 成本。 - CastV2 codegen 与 ATT 参数链路需要把 CastExtend(dst, src, output_dims, output_stride, input_stride) 的原始参数传递到性能模型,避免 ATT 侧凭 shape 反推 codegen 已确定的参数。 ### 修改方案 - 为 CastV2 增加参数透传链路:定义并构建 Cast 节点参数,在 CastV2ApiCall::Generate 中填充 output_dims、output_strides、input_strides,并通过 specific_params 写入 NodeInfo,供 CastPerf 直接使用。 - 重构 CastPerf 公式实现:拆分 repeat 计算、data copy 成本、B4/B8/B64 特殊转换成本、同 bit integer 转换成本和特殊 Cast compute 成本,降低单函数复杂度并让每个分支更贴近实际 MicroAPI 路径。 - 新增通用 VfInstructDtypeMappingPerf 结构和 VfPerfUtils::Get/AddVfInstructDtypeMappingPerf,支持按 micro_api + input_dtype + output_dtype 查表,并按 input/default、default/output、default/default 逐级回退,仍未命中时按 0 计算。 - 在 V2 性能表中为 kCast、kStore 配置输入输出 dtype 映射,并将 CastPerf 中对应 kCast、kStore 成本切换到新的 dtype mapping 查询接口。 - 扩展 Cast 相关常量、性能注册和性能建模说明,补充 Cast 类型支持和公式建模约束。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue - #189: https://gitcode.com/cann/graph-autofusion/issues/189 ## 如何测试 1. 测试cast不同场景分支的性能计算 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已确认本次变更不涉及文档更新 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/graph-autofusion!1266 | 1 个月前 | |
docs: 补充项目规范指导(#95) Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !732 merge feature/project-spec into develop docs: 补充项目规范指导(#95) Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: # Pull Request ## 描述 补充 Graph-autofusion 项目级 agent 指导和规范文档,并增强 af-code-reviewer skill 的代码检视流程。 主要变更: - 新增 AGENTS.md,说明项目结构、构建测试入口、设计文档要求、GitCode 流程和 agent 工作规范。 - 新增 docs/guidelines/cross_feature_check.md,提供 SuperKernel、Autofuse、构建交付、测试和性能场景的交叉影响检查表。 - 新增 docs/guidelines/design_document_template.md,提供 Graph-autofusion 设计文档模板。 - 新增 docs/guidelines/编码红线.md,补充安全、资源、ABI/API、图改写、runtime 生命周期和构建交付红线。 - 优化 .claude/skills/af-code-reviewer,要求代码检视前读取规范并输出固定格式检查结果。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue Closes #95 Issue 地址:https://gitcode.com/cann/graph-autofusion/issues/95 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 执行规范文件存在性和关键内容检查: test -f AGENTS.md && test -f docs/guidelines/design_document_template.md && test -f docs/guidelines/cross_feature_check.md && test -f docs/guidelines/编码红线.md && grep -q "af-code-reviewer" AGENTS.md && grep -q "af-build-runner" AGENTS.md && grep -q "af-test-developer" AGENTS.md && grep -q "编码红线" .claude/skills/af-code-reviewer/SKILL.md && grep -q "跨特性交叉影响" .claude/skills/af-code-reviewer/SKILL.md && grep -q "代码检视检查结果" .claude/skills/af-code-reviewer/SKILL.md && grep -q "SuperKernel" docs/guidelines/cross_feature_check.md && grep -q "Autofuse" docs/guidelines/cross_feature_check.md 2. 检查 PR diff 范围: git diff --stat upstream/develop...HEAD ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅补充项目规范、agent 指导和 skill 文档,不涉及源码、构建脚本或测试代码变更。 See merge request: cann/graph-autofusion!732 | 2 个月前 | |
docs:add skill for reg ascir Co-authored-by: w00800187<wangmingming39@huawei.com> # message auto-generated for no-merge-commit merge: !1281 merge wmm_add_skill into develop docs:add skill for reg ascir Created-by: gcw_WTfSfUy7 Commit-by: w00800187 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 af-reg-ascir Skill,为 graph-autofusion 项目提供 ASCIR 算子注册、修改、dtype 扩展、tmp buffer 注册及配套 UT/ST/E2E 测试的辅助指引,并覆盖 regbase 构建注册、ATT、Codegen、Python 暴露、性能模型、打包和上板故障诊断的完整修改面。 Skill 覆盖的核心能力: - 指导新增或修改 ASCIR 算子注册流程(REG_ASC_IR、ATT/Codegen 实现类、注册表)。 - 辅助维护 V35/V2 ASCIR 注册、ATT、Codegen 和性能模型。 - 指导 dtype 扩展、类型转换(GetConversionDtype)和 tmp buffer 注册(CalcTmpBufSize/CalcXxxTmpSizeV2)。 - 每个新增 ASCIR 默认考虑并补充 backend E2E;更新 ASCIR 时强制审计现有 E2E 是否需同步修改。 - 参考 BesselJ0 V2 给出 share graph、backend generator、ICPU 运行与精度验证、CMake 和统一测试入口的完整结构。 - 按完整矩阵检查 regbase 构建/注册、ATT、Codegen、Python ops/IR Attr、perf、UT、share graph、backend E2E、脚本与打包。 - 识别 regbase 内部 include、官方 AscendC API 头缺失、Device 编译选项、旧包加载等上板故障。 - 根据输入输出、模板属性、多输出和 dtype 变化给出最小修改方案。 变更文件: - 新增 .claude/skills/af-reg-ascir/README.md:Skill 说明、功能、触发场景和验证方法。 - 新增 .claude/skills/af-reg-ascir/SKILL.md:Skill 主体,包含触发场景、执行原则、信息收集、关键路径、注册机制、新增/修改/dtype 扩展/UT/ST 生成流程、完整修改面检查矩阵、regbase 与官方 API 头规则、Python 暴露规则、上板错误分阶段诊断表、提交历史回归检查和验证要求。 - 修改 .claude/settings.json:在 allowed_skills 中注册 Skill(af-reg-ascir)。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 关联 issue:#183 Issue 链接:https://gitcode.com/cann/graph-autofusion/issues/183 ## 如何测试 1. 在 opencode 中加载本 Skill,输入“帮我新增一个 ASCIR 算子注册”,确认 Skill 正确触发并按流程给出方案。 2. 输入“给 ASCIR 算子增加一个 dtype 支持”“这个 ASCIR 算子需要注册 tmp buffer 吗?”“修改 ASCIR API 名称需要同步改哪些地方?”验证触发场景。 3. 静态检索 README/SKILL.md 中关键路径(ascir_builtin_ops_v2.cpp、v2_ascir_codegen_impl.h、share_graph、run_autofuse_test.sh)与仓库实际结构一致。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 Skill 沉淀了 ASCIR adapter 适配过程中(issue #180 / PR #1257)积累的注册、regbase、Codegen、Python 暴露和上板故障经验,用于规范后续 ASCIR 新增/修改流程,减少遗漏。 See merge request: cann/graph-autofusion!1281 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 |