尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CANN/ge算子原型接口文档
原型定义衍生接口【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge算子原型定义的相关接口会自动生成对应的衍生接口可用于IR模型构建以下接口的详细使用方法可参见《图模式开发指南》。产品支持情况产品是否支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√头文件#include graph/operator_reg.hREG_OP注册算子类型后会自动生成算子类型的两个构造函数。例如注册算子的类型名称Conv2D可调用REG_OP(Conv2D)接口调用该接口后定义了算子的类型名称Conv2D同时产生Conv2D的两个构造函数其中**Conv2D(const AscendString name)**需指定算子名称Conv2D()使用默认算子名称。class Conv2D : public Operator { typedef Conv2D _THIS_TYPE; public: explicit Conv2D(const char *name); explicit Conv2D(); }INPUT注册算子输入信息成功后自动生成算子输入的相关接口用于获取算子输入的名称、设置算子输入的对应描述等。例如注册算子输入x算子输入支持的数据类型为TensorType{DT_FLOAT}可调用**INPUT(x, TensorType{DT_FLOAT})**接口注册算子输入成功后自动生成以下相关接口static const string name_in_x(); // 返回输入的名称即“x” _THIS_TYPE set_input_x(Operator v, const string srcName); // 指定输入x与算子对象v的输出srcName存在连接关系返回算子对象本身 _THIS_TYPE set_input_x_by_name(Operator v, const char *srcName); // 指定输入x与算子对象v的输出srcName存在连接关系返回算子对象本身 _THIS_TYPE set_input_x(Operator v, uint32_t index); // 指定输入x与算子对象v的索引为index的输出存在连接关系返回算子对象本身 _THIS_TYPE set_input_x(Operator v); // 指定输入x与算子对象v的索引0的输出存在连接关系返回算子对象本身 TensorDesc get_input_desc_x(); // 返回输入x对应的描述 graphStatus update_input_desc_x(const TensorDesc tensorDesc);// 设置输入x对应的描述包括Shape、DataType、Format等信息graphStatus即uint32_t类型返回非0表示出错OPTIONAL_INPUT注册可选算子输入信息成功后自动生成算子输入的相关接口用于获取算子输入的名称、设置算子输入的对应描述等。例如注册算子输入b算子输入支持的数据类型为TensorType{DT_FLOAT}可调用**OPTIONAL_INPUT(b, TensorType{DT_FLOAT})**接口注册算子输入成功后自动生成以下相关接口static const string name_in_b(); // 返回输入的名称即“b” _THIS_TYPE set_input_b(Operator v, const string srcName);// 指定输入b与算子对象v的输出srcName存在连接关系返回算子对象本身 _THIS_TYPE set_input_b_by_name(Operator v, const char *srcName);// 指定输入b与算子对象v的输出srcName存在连接关系返回算子对象本身 _THIS_TYPE set_input_b(Operator v); // 指定输入b与算子对象v的索引0的输出存在连接关系返回算子对象本身 TensorDesc get_input_desc_b(); // 返回输入b对应的描述 graphStatus update_input_desc_b(const TensorDesc tensorDesc);// 设置输入b对应的描述包括Shape、DataType、Format等信息DYNAMIC_INPUT注册动态算子输入信息成功后自动生成算子输入的相关接口用于创建动态输入、设置算子输入的对应描述等。例如注册算子的动态输入d算子输入支持的数据类型为TensorType{DT_FLOAT}可调用**DYNAMIC_INPUT(d, TensorType{DT_FLOAT})**接口注册算子的动态输入成功后自动生成以下相关接口_THIS_TYPE create_dynamic_input_d(unsigned int num); // 创建动态输入d包括num个输入并且把这个输入作为算子最后的输入 _THIS_TYPE create_dynamic_input_byindex_d(unsigned int num, size_t index) //创建动态输入d包括num个输入插入到索引为index的位置和create_dynamic_input_d不能同时使用 TensorDesc get_dynamic_input_desc_d(unsigned int index);// 返回动态输入d第index个描述包括Shape、DataType、Format等信息 graphStatus update_dynamic_input_desc_d(unsigned int index, const TensorDesc tensorDesc);// 更新动态输入d的第index个描述 _THIS_TYPE set_dynamic_input_d(unsigned int dstIndex, Operator v); // 设置输入d的第dstIndex个输入与算子对象v的索引0的输出存在连接关系返回算子对象本身 _THIS_TYPE set_dynamic_input_d(unsigned int dstIndex, Operator v, const string srcName); //指定动态输入d的第dstIndex个输入与算子对象v的输出srcName存在连接关系返回算子对象本身 _THIS_TYPE set_dynamic_input_d(unsigned int dstIndex, Operator v, const char *srcName); //指定动态输入d的第dstIndex个输入与算子对象v的输出srcName存在连接关系返回算子对象本身OUTPUT注册算子输出信息成功后自动生成算子输出的相关接口用户获取算子输出的名称、获取算子输出的描述、设置算子输出的描述。例如注册算子输出y算子输出支持的数据类型为TensorType{DT_FLOAT}可调用**OUTPUT(y, TensorType{DT_FLOAT})**接口注册算子输出成功后自动生成以下相关接口static const string name_out_y();// 返回输出的名称即“y” TensorDesc get_output_desc_y();// 返回输出y对应的描述 graphStatus update_output_desc_y(const TensorDesc tensorDesc); // 设置输出y对应的描述包括Shape、DataType、Format等信息DYNAMIC_OUTPUT注册动态算子输出信息成功后自动生成动态算子输出的相关接口包括用于创建动态输出、设置算子输出的对应描述等。例如注册动态算子输出d算子输出支持的数据类型为TensorType{DT_FLOAT}可调用**DYNAMIC_OUTPUT(d, TensorType{DT_FLOAT})**接口注册动态算子输出成功后自动生成以下相关接口_THIS_TYPE create_dynamic_output_d(unsigned int num); // 创建动态输出d包括num个输出 TensorDesc get_dynamic_output_desc_d(unsigned int index);// 返回动态输出d第index个描述包括Shape、DataType、Format等信息 graphStatus update_dynamic_output_desc_d(unsigned int index, const TensorDesc tensorDesc);// 更新动态输出d的第index个描述REQUIRED_ATTR注册算子属性成功后自动生成算子属性的3个对外接口用于获取属性的名称、获取属性的值、设置属性的值。例如注册类型为int64_t的属性mode可调用**REQUIRED_ATTR(mode, Int)**接口注册算子属性成功后会自动生成如下接口static const string name_attr_mode(); // 返回属性的名称即“mode” static const void name_attr_mode(AscendString attr_name);// 出参获取属性的名称即“mode” OpInt get_attr_mode() const; // 返回mode属性的值OpInt即int64_t _THIS_TYPE set_attr_mode(const OpInt v); // 设置mode属性的值返回算子对象本身ATTR注册算子属性成功后自动生成算子属性的3个对外接口用于获取属性的名称、获取属性的值、设置属性的值。下面以注册类型为int64_t的属性、类型为int64_t列表两种场景为例说明所生成的算子属性接口调用ATTR(mode, Int, 1)接口注册属性mode属性类型为int64_t默认值为1。注册属性成功后自动生成以下接口static const string name_attr_mode(); // 返回属性的名称即“mode” static const void name_attr_mode(AscendString attr_name);// 出参获取属性的名称即“mode” OpInt get_attr_mode() const; // 返回mode属性的值OpInt即int64_t _THIS_TYPE set_attr_mode(const OpInt v); // 设置mode属性的值返回算子对象本身调用ATTR(pad, ListInt, {0, 0, 0, 0})接口注册属性pad属性类型为int64_t列表默认值为{0,0,0,0}。注册属性成功后自动生成以下接口static const string name_attr_pad(); // 返回属性的名称即“pad” static const void name_attr_pad(AscendString attr_name);// 出参获取属性的名称即“pad” OpListInt get_attr_pad() const; ; // 返回属性pad的值OpListInt即vectorint64_t _THIS_TYPE set_attr_pad(const OpListInt v); // 设置属性pad的值返回算子对象本身下面以注册类型为string属性场景为例说明所生成的算子属性接口调用ATTR(data_format, String, NHWC)接口注册属性data_format属性类型为string。static const string name_attr_data_format(); // 返回属性的名称即“data_format” static const void name_attr_data_format(AscendString attr_name);// 出参获取属性的名称即“data_format” OpString get_attr_data_format() const; // 返回data_format属性的值OpString即string graphStatus get_attr_data_format(AscendString val);//出参返回data_format属性的值 _THIS_TYPE set_attr_data_format(const string v); // 设置data_format属性的值返回算子对象本身 _THIS_TYPE set_attr_data_format(const char* v); // 设置data_format属性的值返回算子对象本身GRAPH注册算子子图信息成功后自动生成算子子图的相关接口用户获取算子子图的名称、获取算子子图的描述、设置算子子图的描述。例如注册算子子图y可调用**GRAPH(y)**接口注册算子子图成功后自动生成以下相关接口static const string name_graph_y();// 返回算子子图的名称即“y” SubgraphBuilder get_subgraph_builder_y() const;// 返回子图y对应的构建函数对象 _THIS_TYPE set_subgraph_builder_y(const SubgraphBuilder v);// 设置子图y对应的构建函数对象 Graph get_subgraph_y() const;// 获取子图y对应的graph对象DYNAMIC_GRAPH注册动态算子子图信息成功后自动生成动态算子子图的相关接口包括用于创建动态子图、设置算子子图的对应描述等。例如注册动态算子子图branches可调用**DYNAMIC_GRAPH(branches)**接口注册动态算子子图成功后自动生成以下相关接口_THIS_TYPE create_dynamic_subgraph_branches(unsigned int num); // 创建动态子图branches包括num个子图 SubgraphBuilder get_dynamic_subgraph_builder_branches(unsigned int index) ;// 返回动态子图第index个子图构建函数对象 Graph get_dynamic_subgraph_branches(unsigned int index) ;// 返回动态子图第index个子图对象 _THIS_TYPE set_dynamic_subgraph_builder_branches(unsigned int index,const SubgraphBuilder v);// 设置动态子图branches的第index个子图构建函数对象【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Telegram SMS高级功能:碳副本(Carbon Copy)配置与多平台推送集成

Telegram SMS高级功能:碳副本(Carbon Copy)配置与多平台推送集成

Telegram SMS高级功能:碳副本(Carbon Copy)配置与多平台推送集成 Telegram SMS是一款运行在Android设备上的短信转发机器人,能够帮助用户实现短信、未接来电等信息的实时推送。其中碳副本(Carbon Copy)功能是其核心高级特性,允许用户将手机信…

📅 2026/9/10 12:20:19
three.js Wireframe 深度指南:基于粗线条(Wide Line)实现的网格线框类

three.js Wireframe 深度指南:基于粗线条(Wide Line)实现的网格线框类

three.js Wireframe 深度指南:基于粗线条(Wide Line)实现的网格线框类 【免费下载链接】three.js JavaScript 3D Library. 项目地址: https://gitcode.com/GitHub_Trending/th/three.js 本指南围绕 three.js 官方扩展中的 Wireframe 类…

📅 2026/9/10 12:20:19
V2G技术与Matlab实现:电动汽车实时调度策略解析

V2G技术与Matlab实现:电动汽车实时调度策略解析

1. 项目概述:V2G技术与电动汽车调度的黄金组合V2G(Vehicle-to-Grid)技术正在重塑能源行业的游戏规则。简单来说,它让电动汽车不再只是电网的"用电大户",而是变成了可移动的分布式储能单元。我的团队最近用Ma…

📅 2026/9/10 12:20:19
MORE NEWS

更多资讯

📰

Baklib知识管理平台在IT团队中的实践与价值

1. Baklib在软件与信息技术行业的应用价值Baklib作为新一代知识管理平台,正在深刻改变软件与信息技术行业的知识协作方式。这个基于AI的知识库解决方案,完美契合了技术团队在文档管理、知识沉淀和协作效率方面的核心需求。我亲历过多个技术团队从传统Wik…

📰

YOLOv5行人越界报警系统:基于空间围栏的实时检测与Qt可视化

简介:本资源是一个基于YOLOv5与Qt5开发的行人范围超界报警系统实战项目,面向计算机视觉初学者、智能监控系统开发者及高校课程设计实践者,解决公共场所(如校园出入口、商场通道)中行人越界行为的实时检测与可视化预警问…

📰

Comprehensive Rust 并发实战:用 Mutex + Arc + mpsc 实现无死锁的哲学家就餐问题

Comprehensive Rust 并发实战:用 Mutex Arc mpsc 实现无死锁的哲学家就餐问题 【免费下载链接】comprehensive-rust This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust. 项目地址: https://git…

📰

CANN/ge ACL设置数据集张量描述

aclmdlSetDatasetTensorDesc 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch…

📰

用 Agno Environments 搭建你的第一个评测环境:以 K 次滚动网格衡量 Agent 可靠性

用 Agno Environments 搭建你的第一个评测环境:以 K 次滚动网格衡量 Agent 可靠性 【免费下载链接】agno Build, run, and manage agent platforms. 项目地址: https://gitcode.com/GitHub_Trending/ag/agno 导读 Agno 的 Environments 子模块(c…

📰

Windows 上 goose 的 Node.js 扩展报 “Node.js installer script not found” 怎么排查?

Windows 上 goose 的 Node.js 扩展报 “Node.js installer script not found” 怎么排查? 【免费下载链接】goose an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM 项目地址: https://g…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬