文件最后提交记录最后更新时间
6 个月前
6 个月前
7 个月前
7 个月前
7 个月前
README

ES (Eager Style)文档

概述

ES (Eager Style)是 GraphEngine 中用于构建计算图的函数式接口模块,提供了便捷的图构建功能。ES 模块支持多种编程语言(C、C++、Python),为用户提供了灵活且易用的图构建方式。

ES 系列 API 核心特点:

  • 自动生成:API 并非手写,而是基于算子原型定义自动生成,减少算子开发者负担,特别是自定义算子也需要使用ES的API的构图场景。
  • 多语言支持:原生支持 C、C++,并可扩展支持 Python,满足不同开发习惯。
  • 全维度兼容:通过良好的API设计和代码生成机制,结合IR语义兼容处理,从源头实现了前后向API,ABI的兼容性保障。

ES 三大关键组件:

  1. ES 基础数据结构(GE仓/GE包):提供 EsGraphBuilder(图构建器)、EsTensorHolder(张量持有者)等核心基础设施,是构图的基石。
  2. ES Code Generator(GE仓/GE包):核心工具 gen_esb,负责读取算子原型定义,自动化生成每个算子对应的构图 API 代码。
  3. Generated ES API(OPP包):由生成器构建的最终产物,包含在算子包中,是用户直接调用的函数接口。

快速导航

API 参考文档

  • Python API - Eager Style Graph Builder Python 接口文档
    • GraphBuilder、TensorHolder 等基础类的主要接口
  • C++/C API - Eager Style Graph Builder C++/C 接口文档
    • EsGraphBuilder、EsTensorHolder 等基础类的主要接口

设计文档

工具文档

RFC 文档

  • RFC 目录 - 设计提案文档
    • 新功能提案
    • 架构改进方案
    • API 变更建议

文档结构

docs/es/
├── README.md                    # 本文件,文档导航入口
├── api/                         # API 参考文档
├── design/                      # 设计和技术分析文档
├── tools/                       # 工具使用文档
└── rfc/                         # RFC 提案文档

sample

开发路线图

已完成 ✅

  • 核心架构:主体功能已设计完成并落地,支持全量原型的代码生成和多语言构图
  • API 集成:math 分包已完成集成
  • 示例代码:已提供多语言的 sample,涵盖常见使用场景

进行中 🚧

  • API 集成:nn、cv、transformer、hcom 分包预计 2026 年 Q1 完成集成
  • 示例完善:更多 sample 持续添加中

计划中 📋

  • 历史原型库:C++ API的后向兼容依赖于此,目前处于设计阶段,预计 2026 年 Q1 完成落地
  • 自定义算子工程:ascendc 自定义算子工程集成 ES 的代码生成能力,暂无规划

使用说明

在全量原型打包到算子分包之前,如需使用 ES API,可以参考工具文档中的 generate_es_package.cmake 进行代码生成和集成。