历史原型库协议History Registry Protocol【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge1. 定位与职责边界历史原型库是一套长期维护的协议与数据产物用于跨版本归档算子 IR 原型信息并以稳定的方式对外提供查询能力。本协议关注数据是什么字段语义与约束数据放在哪目录与分包数据怎么生成与发布当前由gen_esb生成并随 Ops run 包发布消费者如何读取文件系统接口协议如何演进向后兼容规则本协议不关注兼容性判定/业务决策逻辑2. 术语IR 原型算子在 IR 层的输入/输出/属性/子图等定义信息。历史原型数据结构化数据将 IR 原型提取并序列化后的数据文件集合。生产者Producer生成结构化数据的工具。短期内固定为gen_esb --extract-history。消费者Consumer读取结构化数据的任意工具/流程。当前主要消费者是gen_esb用于 ES API 生成未来可扩展到其他工具链。Ops run 包Ops 安装后的运行包形态历史原型库数据随其发布。兼容窗口消费者基于版本元信息例如发布日期选择需要纳入对比/生成的版本范围例如“一年窗口”。3. 目录结构与分包历史原型库随 Ops run 包发布按算子分包如math/nn/cv/...组织。目录结构示例安装后/${CANN_INSTALL_PATH}/cann/opp/history_registry/pkg/ ├── index.json └── registry/ ├── release_version_1/ │ ├── operators.json │ └── metadata.json ├── release_version_2/ │ ├── operators.json │ └── metadata.json └── ...说明pkg分包名例如math、nn、cv。release_version_x版本目录名建议与metadata.json.release_version一致例如8.0.RC1。4. 文件与数据格式本协议包含三个文件类型index.json版本索引该分包有哪些版本可用registry/ver/metadata.json版本元信息用于选择版本范围、追溯registry/ver/operators.json该版本的算子原型数据4.1 index.json版本索引最小字段version索引文件 schema 版本字符串releases[]版本数组release_version版本号字符串release_date发布日期字符串建议YYYY-MM-DD示例见附录 A。4.2 metadata.json版本元信息建议字段最小可用 可扩展release_version版本号branch_name分支名可选但建议提供示例见附录 A。4.3 operators.json算子原型数据最小字段operators[]op_typeinputs[]每项至少包含name/type/dtypeoutputs[]每项至少包含name/type/dtypeattrs[]每项至少包含name/type/required可包含default_valuesubgraphs[]每项至少包含name/type约束建议default_value使用字符串承载“JSON 字面量文本”解析时需结合type用于跨语言一致性并避免数值精度/大整数表示等问题。示例见附录 A。5. 生成与发布当前固定由 gen_esb 负责短期内为了降低系统复杂度生产者仍复用gen_esb通过--extract-history从“当前版本原型 .so”提取 IR 原型并输出结构化数据。5.1 构建 Ops 包的数据流生成与打包发布前置要求构建环境需要安装 Ops 包历史原型数据来源于已安装的 Ops run 包若无 Ops 包则无法获取历史原型数据。构建 Ops 包数据流图说明各个版本的历史原型信息存在于 Ops run 包中按不同的分包如math/nn/cv分类存放。简化后的数据流图生成模式示例gen_esb --extract-history --output-dir out --release-version ver发布原则在正式版本发布前生成并归档本版本数据。结构化数据随 Ops run 包打包发布。6. 消费方式文件系统接口消费者按以下方式读取读取pkg/index.json获取可用版本列表与发布日期选择目标版本集合例如“一年窗口”读取registry/ver/operators.json与metadata.json获取原型与元信息注意协议层不绑定任何特定消费策略消费策略例如生成哪些重载、如何消歧由消费者实现。7. 协议演进与向后兼容原则优先新增字段避免删除/重命名已发布字段。新增字段需提供默认语义确保旧消费者可忽略。需要破坏性变更时应通过index.json.version或引入显式schema_version区分并给出迁移策略。附录 AJSON 最小示例A.1 index.json{ version: 1.0.0, releases: [ { release_version: 8.0.RC1, release_date: 2024-09-30 }, { release_version: 8.0.0, release_date: 2024-12-30 } ] }A.2 registry/ /metadata.json{ release_version: 8.0.RC1, branch_name: master }A.3 registry/ /operators.json{ operators: [ { op_type: Foo, inputs: [ { name: x, type: INPUT, dtype: TensorType({DT_FLOAT}) }, { name: xo1, type: OPTIONAL_INPUT, dtype: TensorType({DT_FLOAT}) } ], outputs: [ { name: y, type: OUTPUT, dtype: TensorType({DT_FLOAT}) } ], attrs: [ { name: a, type: Int, required: false, default_value: 0 }, { name: flag, type: Bool, required: true } ], subgraphs: [] } ] }【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考