文件最后提交记录最后更新时间
【PR】: es sample修改 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !854 merge es_bugfix2 into develop 【PR】: es sample修改 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 1. 多平台支持 2. 添加异步执行cpp用例; python用例待异步能力补齐后提供 3. 部分bugfix ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按照readme执行用例 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!8542 个月前
【PR】: es sample修改 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !854 merge es_bugfix2 into develop 【PR】: es sample修改 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 1. 多平台支持 2. 添加异步执行cpp用例; python用例待异步能力补齐后提供 3. 部分bugfix ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按照readme执行用例 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!8542 个月前
docs: 新增DecomposePass Python V1样例及README优化(part3-2) Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !2267 merge python_pass_f_0003 into develop docs: 新增DecomposePass Python V1样例及README优化(part3-2) Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 为 PatternFusionPass Python 化支持的第三部分,新增 DecomposePass Python V1 样例并优化已有 README 文档结构。 ### 主要变更 1. **新增 6_decompose_grouped_conv_to_splited_pass Python V1 样例** - 新增 python/src/test_python_decompose_pass.py:演示如何使用纯 Python 编写 DecomposePass,将 groups != 1Conv2D 拆分为 Split + Conv2D + Concat - 新增 python/README.md:包含功能描述、环境要求、使用方式、预期日志和 Conda 环境示例 - 新增 cpp/README.md:将原样例根目录 README 拆分为独立 C++ README,保持目录结构一致 2. **优化已有 Python README 文档** - 1_fuse_matmul_add_pass/python/README.md:重构为统一格式(功能描述→环境要求→使用方式→预期日志→Conda 示例) - 4_add_zero_pass/python/README.md:同步格式优化,补充 Conda 环境示例和注意事项 3. **更新主 README 索引** - 在 pattern_base_pass/README.md 中添加 Python V1 样例链接 - 将 6_decompose_grouped_conv_to_splited_pass 的链接更新为 cpp/python 双版本 4. **修复es README 中的失效索引** ## 变更类型 请选择本次引入的变更类型(勾选对应项): - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 阅读 README 确认文档描述准确 2. 参照 6_decompose_grouped_conv_to_splited_pass/python/README.md 中的步骤,生成 es_all 插件并通过 ATC 或在线推理验证 Python decompose pass 能正确加载执行 3. 验证 1_fuse_matmul_add_pass4_add_zero_pass 的 Python README 中步骤仍可正常执行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 本 PR 为 DecomposePass Python 化系列的第二部分,前序 [PR](https://gitcode.com/cann/ge/pull/2256) See merge request: cann/ge!22671 个月前
【PR】: es sample修改 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !854 merge es_bugfix2 into develop 【PR】: es sample修改 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 1. 多平台支持 2. 添加异步执行cpp用例; python用例待异步能力补齐后提供 3. 部分bugfix ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按照readme执行用例 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!8542 个月前
【PR】: es sample 格式调整 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !907 merge es_bugfix2 into develop 【PR】: es sample 格式调整 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 es sample 格式调整 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!9072 个月前
【PR】: es sample修改 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !854 merge es_bugfix2 into develop 【PR】: es sample修改 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 1. 多平台支持 2. 添加异步执行cpp用例; python用例待异步能力补齐后提供 3. 部分bugfix ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按照readme执行用例 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!8542 个月前
README.md

样例使用指导

1、功能描述

本样例使用操作符重载进行构图,旨在帮助构图开发者快速理解操作符重载的定义。 与 operator_overload 不同,本目录在执行阶段使用 Session::RunGraphWithStreamAsync 接口。 本样例仅保留 copy 模式:显式执行 aclrtMalloc + aclrtMemcpy。 关于异步执行更多信息,请参考 异步执行

2、目录结构

cpp/
├── src/
|   └── CMakeLists.txt                  // CMake构建文件
|   └── es_showcase.h                   // 头文件
|   └── make_add_graph.cpp              // sample文件
├── CMakeLists.txt                      // CMake构建文件
├── main.cpp                            // 程序主入口
|—— README.md                           // README文件
├── run_sample.sh                       // 执行脚本
|—— utils.h                             // 工具文件

3、使用方法

3.1、准备cann包

  • 通过安装指导 环境准备正确安装toolkitops
  • 设置环境变量 (假设包安装在/usr/local/Ascend/)
source /usr/local/Ascend/cann/set_env.sh 

3.2、编译和执行

只需运行下述命令即可完成清理、生成接口、构图和DUMP图:

bash run_sample.sh

当前 run_sample.sh 的行为是:先自动清理旧的 build,构建 sample并默认执行sample dump 。当看到如下信息,代表执行成功:

[Success] sample 执行成功,pbtxt dump 已生成在当前目录。该文件以 ge_onnx_ 开头,可以在 netron 中打开显示

输出文件说明

执行成功后会在当前目录生成以下文件:

  • ge_onnx_*.pbtxt - 图结构的protobuf文本格式,可用netron查看

构建图并执行

除了基本的图构建和dump功能外,esb_sample还支持构建图并实际执行计算。

bash run_sample.sh -t sample_and_run

该命令会:

  1. 自动生成ES接口
  2. 编译sample程序
  3. 生成dump图、运行图并输出计算结果

执行成功后会看到:

[Success] sample_and_run 执行成功,pbtxt和data输出dump 已生成在当前目录

可通过data文件查看计算结果

运行模式说明

异步样例固定为 copy 模式(显式拷贝)

3.3、日志打印

可执行程序执行过程中如果需要日志打印来辅助定位,可以在bash run_sample.sh之前设置如下环境变量来让日志打印到屏幕

export ASCEND_SLOG_PRINT_TO_STDOUT=1 #日志打印到屏幕
export ASCEND_GLOBAL_LOG_LEVEL=0 #日志级别为debug级别

3.4、图编译流程中DUMP图

可执行程序执行过程中,如果需要DUMP图来辅助定位图编译流程,可以在 bash run_sample.sh -t sample_and_run 之前设置如下环境变量来DUMP图到执行路径下

export DUMP_GE_GRAPH=2 

4、核心概念介绍

4.1、构图步骤如下:

  • 创建图构建器(用于提供构图所需的上下文、工作空间及构建相关方法)
  • 添加起始节点(起始节点指无输入依赖的节点,通常包括图的输入(如 Data 节点)和权重常量(如 Const 节点))
  • 添加中间节点(中间节点为具有输入依赖的计算节点,通常由用户构图逻辑生成,并通过已有节点作为输入连接)
  • 设置图输出(明确图的输出节点,作为计算结果的终点)

4.2、操作符重载

概念说明: 操作符重载是 ES API 提供的语法糖,使构图代码更加简洁和直观

构图 API 特点:

  • 操作符重载保持与函数调用相同的类型检查和约束