Build
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
头文件/库文件
- 头文件:#include <graph/named_io_node_builder.h>
- 库文件:libgraph.so、libgraph_static.a
功能说明
构建图节点并添加到Graph。Build会基于已设置的输入、输出和属性信息创建GNode,并校验输入/输出实例名称及顺序是否与已注册的算子IR定义兼容。成功时返回的GNode已被添加到Graph中。
Build执行以下对外可见校验和操作:
- 校验Type已设置,且节点类型对应的算子IR已通过REG_OP完成注册。
- 校验输入/输出实例名称及顺序是否与已注册的算子IR定义兼容。
- 创建GNode并添加到Graph。
- 返回unique_ptr ,成功时清空error_message。
函数原型
std::unique_ptr<GNode> Build(AscendString &error_message)参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| error_message | 输出 | 构建失败时的错误信息。成功时error_message被清空。 |
返回值说明
| 类型 | 描述 |
|---|---|
| std::unique_ptr | 成功时返回GNode的unique_ptr,已被添加到Graph中。失败时返回nullptr。 |
约束说明
- Builder对象Build成功后不应再次使用,Build成功后再次调用返回nullptr并输出错误信息"Build() has already been called on this builder"。
- 节点类型对应的算子IR需已通过REG_OP完成注册,否则Build返回nullptr。
- 输入/输出实例需按IR定义顺序添加,否则Build返回nullptr。
- Data和NetOutput节点不进行输入/输出实例兼容性校验。
调用示例
ge::Graph graph("test_graph"); ge::AscendString error_msg; // 构建一个Add算子节点 auto node = ge::NamedIoNodeBuilder(graph) .Type("Add") .Name("add_node") .AddInput("x1") .AddInput("x2") .AddOutput("y") .Build(error_msg); if (node != nullptr) { // 构建成功,节点已被添加到graph中 } else { // 构建失败,查看error_msg获取错误信息 }【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考