文件最后提交记录最后更新时间
【PR】: superkernel最小依赖sample Co-authored-by: zhanjun<zhanjun6@hisilicon.com> # message auto-generated for no-merge-commit merge: !9 merge b_sk_sample into master 【PR】: superkernel最小依赖sample Created-by: zhanj Commit-by: zhanjun Merged-by: turing_project1 Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 提供一个sample,能够支持superkernel仅仅依赖runtime&Ascendc就能工作 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!96 个月前
docs: 文档国际化改造,支持中英文双语 12 天前
refactor(aot): align cpp utest coverage flow and execution behavior Co-authored-by: yrz1027<yangruizhi5@huawei.com> # message auto-generated for no-merge-commit merge: !271 merge refactor/aot-cpp-utest-coverage-flow into master refactor(aot): align cpp utest coverage flow and execution behavior Created-by: yrz1027 Commit-by: yrz1027 Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 统一整理 build.sh 的测试选择和 coverage 执行链路,让 super_kernel 的 Python/C++ 测试、模块选择、样例运行、打包与覆盖率入口更清晰、可扩展。 主要变更: - 将测试入口统一为 -u/-s + --impl=<py|cpp|all> + --module=<name>,默认模块为 all。 - 通过模块 action handler 分发 py_ut/cpp_ut/py_st/run_example,未实现组合静默跳过,避免因为当前暂未支持 cpp_st 导致默认全量失败。 - AOT C++ UT 改为显式 run/coverage target,避免依赖 POST_BUILD 导致二进制未重编时测试不执行。 - C++ coverage 输出固定到 super_kernel/coverage/cpp_ut,并集中清理 Python/C++ coverage 残留。 - run_llt_binary.sh 保留 gtest filter 预检查,空 --gtest_filter= 不再误触发;临时文件清理由统一 cleanup() 处理。 - --run_example 不再接受可选模块参数,模块选择统一使用 --module,避免 optional-arg 解析跳过后续选项。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 暂无关联 Issue。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 历史全量回归已在真实环境串行执行,每个 case 前清理 coverage/prof_result/super_kernel/coverage/.pytest_cache、AOT output、build/**/*.gcda 和临时 package 目录;结果 28/28 通过,日志目录:/tmp/gaf_rebase_full_regression。 2. 历史全量覆盖范围包括:--help-u 全组合、-s 全组合、--run_example 全组合、-c 全组合、--pkg--pkg --cann_3rd_lib_path--build-type Debug、非法 --impl/--module。 3. 本轮 fresh 轻量校验通过:bash -n build.shbash -n super_kernel/tests/aot/cmake/tools/run_llt_binary.sh./build.sh --help。 4. 本轮 fresh 参数解析校验通过:--run_example -u 可正确解析为独立选项;--run_example=superkernel 会明确拒绝,模块需改用 --run_example --module=superkernel。 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 历史全量回归中,cov_impl_cpp 日志确认执行到 Built target collect_coverage_dataBuild run cpp utest success!pkg_with_third_party 日志确认生成 cann-graph-autofusion_9.0.0_linux-aarch64.run。 See merge request: cann/graph-autofusion!2711 个月前
【PR】: superkernel最小依赖sample Co-authored-by: zhanjun<zhanjun6@hisilicon.com> # message auto-generated for no-merge-commit merge: !9 merge b_sk_sample into master 【PR】: superkernel最小依赖sample Created-by: zhanj Commit-by: zhanjun Merged-by: turing_project1 Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 提供一个sample,能够支持superkernel仅仅依赖runtime&Ascendc就能工作 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!96 个月前
修改log中的敏感词fail、去除多余空格、去除换行符、中文改英文 Co-authored-by: hehongan<1661007585@qq.com> # message auto-generated for no-merge-commit merge: !304 merge master into master 修改log中的敏感词fail、去除多余空格、去除换行符、中文改英文 Created-by: hehongan Commit-by: hehongan Merged-by: cann-robot Description: # Pull Request ## 描述 修改log中的敏感词fail 去除多余空格 去除换行符 中文改英文 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!3041 个月前
README.md

super_kernel极简sample

用例功能:

该sample展示了如何使用super_kernel完成算子融合,包括算子融合的定义、编译、执行等。 核心特点:

  • 依赖简单,仅依赖AscendC与runtime环境。
  • 使用python封装底层c接口,简化开发流程。

目录结构

├── super_kernel_runtime_ascendc_only             # 目录
   └── superkernel_runtime_ascendc_basic.py       # 主入口,流程上包含子kernel编译、superkernel编译、内存分配、加载执行等
   └── compile_sk.py                              # 编译sub_kernel、super_kernel算子
   └── utils.py                                   # 工具函数

用例介绍

graph TB
    %% 整体视图:两个输入 -> superkernel -> 输出
    input1[input1] --> sk[superkernel]
    input2[input2] --> sk
    sk --> output[output]
    
    %% 放大的内部视图:用子图展示superkernel内部结构
    subgraph superkernel内部结构
        inner1_in(inner_input1) --> pow(pow)
        inner2_in(inner_input2)  --> pow
        pow --> isinf(isinf)
        isinf --> inner_out(inner_output)
    end

该用例通过编译时依赖ascendc,执行时依赖runtime,展示了super_kernel的基本功能。主要分为几步:

    1. 初始化
    1. 编译sub_kernel,编译super_kernel,设置super kernel中子kernel的topo关系,便于内存分配
    1. 内存分配,输入数据构造
    1. kernel加载
    1. launch执行,包含args排布等
    1. 打印输出, 输出结果校验
    1. 资源清理释放,包括内存、kernel、stream等

解释说明:

  1. 子kernel的拓扑关系,通过字符串表示,比如pow的输出是isinf的输入,则pow的output与isinf的input使用相同字符串表示
  2. 分配内存时通过字符串来表达内存相同的内存地址
  3. launch args时,按照[pow_in1, pow_in2, pow_ws, isinf_in1, isinf_out1, isinf_ws]排布

执行命令

python3 superkernel_runtime_ascendc_basic.py

预期执行结果

执行后打印显示success

execute sample success