文件最后提交记录最后更新时间
add ut test framework Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !68 merge master into master add ut test framework Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 为aot版本的superkernel添加UT框架 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!683 个月前
add ut test framework Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !68 merge master into master add ut test framework Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 为aot版本的superkernel添加UT框架 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!683 个月前
support devArgs Update and support event node Co-authored-by: yrz1027<yangruizhi5@huawei.com> # message auto-generated for no-merge-commit merge: !75 merge master into master support devArgs Update and support event node Created-by: yrz1027 Commit-by: yrz1027 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!753 个月前
add ut test framework Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !68 merge master into master add ut test framework Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 为aot版本的superkernel添加UT框架 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!683 个月前
feat(super_kernel): 添加符号可见性控制和 C 链接支持 Co-authored-by: XuebinYang<yangxuebin6@hisilicon.com> # message auto-generated for no-merge-commit merge: !90 merge master into master feat(super_kernel): 添加符号可见性控制和 C 链接支持 Created-by: XuebinYang Commit-by: XuebinYang Merged-by: cann-robot Description: # Pull Request ## 描述 feat(super_kernel): 添加符号可见性控制和 C 链接支持 在头文件中添加符号可见性控制宏 ACL_FUNC_VISIBILITY,支持 Linux (__attribute__) 和 Windows (_declspec) 双平台导出。 使用 -fvisibility=hidden 默认隐藏符号,仅导出公共 API 函数。 为 aclskOptimize 添加 Doxygen 风格文档注释,明确参数说明、 返回值类型和相关类型引用。 在源文件中添加 extern "C" 包装,确保 aclskOptimize 函数使用 C 链接约定,避免 C++ 符号修饰问题,支持跨语言调用。 优化日志输出格式,统一 SK_LOG 宏使用. - 新增 ACL_FUNC_VISIBILITY 宏定义 - 更新 aclskOptimize 文档注释格式 - 在 super_kernel.cpp 中添加 extern "C" 包装 - 优化编译选项(-Werror, -fno-common, -ftrapv) - 规范日志输出格式和内容 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.存量用例运行通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!903 个月前
feat(super_kernel): 添加符号可见性控制和 C 链接支持 Co-authored-by: XuebinYang<yangxuebin6@hisilicon.com> # message auto-generated for no-merge-commit merge: !90 merge master into master feat(super_kernel): 添加符号可见性控制和 C 链接支持 Created-by: XuebinYang Commit-by: XuebinYang Merged-by: cann-robot Description: # Pull Request ## 描述 feat(super_kernel): 添加符号可见性控制和 C 链接支持 在头文件中添加符号可见性控制宏 ACL_FUNC_VISIBILITY,支持 Linux (__attribute__) 和 Windows (_declspec) 双平台导出。 使用 -fvisibility=hidden 默认隐藏符号,仅导出公共 API 函数。 为 aclskOptimize 添加 Doxygen 风格文档注释,明确参数说明、 返回值类型和相关类型引用。 在源文件中添加 extern "C" 包装,确保 aclskOptimize 函数使用 C 链接约定,避免 C++ 符号修饰问题,支持跨语言调用。 优化日志输出格式,统一 SK_LOG 宏使用. - 新增 ACL_FUNC_VISIBILITY 宏定义 - 更新 aclskOptimize 文档注释格式 - 在 super_kernel.cpp 中添加 extern "C" 包装 - 优化编译选项(-Werror, -fno-common, -ftrapv) - 规范日志输出格式和内容 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.存量用例运行通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!903 个月前
feat(super_kernel): 添加符号可见性控制和 C 链接支持 Co-authored-by: XuebinYang<yangxuebin6@hisilicon.com> # message auto-generated for no-merge-commit merge: !90 merge master into master feat(super_kernel): 添加符号可见性控制和 C 链接支持 Created-by: XuebinYang Commit-by: XuebinYang Merged-by: cann-robot Description: # Pull Request ## 描述 feat(super_kernel): 添加符号可见性控制和 C 链接支持 在头文件中添加符号可见性控制宏 ACL_FUNC_VISIBILITY,支持 Linux (__attribute__) 和 Windows (_declspec) 双平台导出。 使用 -fvisibility=hidden 默认隐藏符号,仅导出公共 API 函数。 为 aclskOptimize 添加 Doxygen 风格文档注释,明确参数说明、 返回值类型和相关类型引用。 在源文件中添加 extern "C" 包装,确保 aclskOptimize 函数使用 C 链接约定,避免 C++ 符号修饰问题,支持跨语言调用。 优化日志输出格式,统一 SK_LOG 宏使用. - 新增 ACL_FUNC_VISIBILITY 宏定义 - 更新 aclskOptimize 文档注释格式 - 在 super_kernel.cpp 中添加 extern "C" 包装 - 优化编译选项(-Werror, -fno-common, -ftrapv) - 规范日志输出格式和内容 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.存量用例运行通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!903 个月前
remove runtime stub and add SuperKernelBind Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !85 merge master into master remove runtime stub and add SuperKernelBind Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 remove runtime stub and add SuperKernelBind ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!852 个月前
support devArgs Update and support event node Co-authored-by: yrz1027<yangruizhi5@huawei.com> # message auto-generated for no-merge-commit merge: !75 merge master into master support devArgs Update and support event node Created-by: yrz1027 Commit-by: yrz1027 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!753 个月前
remove runtime stub and add SuperKernelBind Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !85 merge master into master remove runtime stub and add SuperKernelBind Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 remove runtime stub and add SuperKernelBind ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!852 个月前
support devArgs Update and support event node Co-authored-by: yrz1027<yangruizhi5@huawei.com> # message auto-generated for no-merge-commit merge: !75 merge master into master support devArgs Update and support event node Created-by: yrz1027 Commit-by: yrz1027 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!753 个月前
add ut test framework Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !68 merge master into master add ut test framework Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 为aot版本的superkernel添加UT框架 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!683 个月前
add ut test framework Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !68 merge master into master add ut test framework Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: # Pull Request ## 描述 为aot版本的superkernel添加UT框架 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!683 个月前
README.md

算子迁移指南

函数部分

函数主体:

  1. cube/vector和函数部分分别使用 __DAV_CUBE____DAV_VEC__宏进行隔离

函数名部分:

  1. 原有 __global__标识替换为 __spk__标识
  2. 函数名更新为其他具备判别性的函数名

函数参数部分:

  1. 统一修正为使用 __gm__ uint64_t *param指针进行传递
  2. 通过 (GM_ADDR)param[index]方式获取原有参数
  3. 结构体参数需要通过 GET_STRUCT_PTR宏进行获取,注意获取到的内容为结构体指针

功能主体部分:

  1. 原有逻辑保持不变
  2. 注意对应的结构体部分转换为了tiling指针,无需再次取地址
  3. 函数结尾不需要再添加 pipe_barrier(PIPE_ALL);,由框架统一处理

额外注意:

  1. 【Planing】目前纯V算子为保证直调使用,暂时使用内部方案FunLevelKType进行标识,后续会有更完善的方案【后续一定会删除】
  2. mix1:1和mix1:2算子需要区分mix_aic和mix_aiv两种类型,分别对应AIC和AIV的场景
  3. 【Planing】目前SK算子暂时没有使用模板写法,主要目前暂不能自动获取对应SK入口的函数名,后续会完善该部分
  4. 【Doing】目前8.3版本的cann包条件下不支持在sk框架中使用AscendC::printf, 后续的版本已定位并解决了这个问题

编译部分

  1. 使用ASC编译方式进行编译
  2. 需要增加ops的 common路径,内置了迁移所需的辅助宏

SK框架部分

  1. 【Planing】目前在迁移完成后,需要在 sk_task.cppg_sk_fun_map中手动增加函数名映射,以便框架能够正确获取函数地址
  2. SkBuildTask构建算子任务时,当前框架自动偏移了ffts,但后续的cann版本底层接口已完成偏移,无需框架完成,暂时为了兼容仍保留的该部分代码,后续会删除该部分逻辑

算子实例

算子实现&编译

同时写2个入口函数,一个global应用于单算子,一个aicore用于sk调用

// 默认打开了SuperKernel选项,但算子模式退出前自己加一个PIPE_ALL
template<typename DTYPE_X, typename DTYPE_GAMMA>
__global__ __aicore__ void rms_norm(GM_ADDR x, GM_ADDR gamma, GM_ADDR y, GM_ADDR rstd, RMSNormTilingData tiling)
{
  {
    KernelRmsNormMergeN<DTYPE_X, DTYPE_GAMMA, RMSNormTilingData> op; 
    op.Init(x, gamma, y, rstd, &tiling);
    op.Process();
  }
  pipe_barrier(PIPE_ALL);
}

// aicore函数需要通过宏隔离一下,否则编译有问题(当前有bug,会导致编译1个aic,1个aiv)
#ifdef __DAV_VEC__
extern "C" __aicore__ void rms_norm_half_half_sk(__gm__ uint64_t *param)
{
  GM_ADDR x = (GM_ADDR)param[0];      // 参数需要额外处理一下,从单一的buffer中获取
  GM_ADDR gamma = (GM_ADDR)param[1];
  GM_ADDR y = (GM_ADDR)param[2];
  GM_ADDR rstd= (GM_ADDR)param[3];
  KernelRmsNormMergeN<half, half, __gm__ RMSNormTilingData> op; // tiling结构体需要带__gm__描述,不属于参数表了
  __gm__ RMSNormTilingData *tilingdata = (__gm__ RMSNormTilingData *)(__gm__ uint8_t *)(param + 4); 
  op.Init(x, gamma, y, rstd, tilingdata);
  op.Process();
}
#endif