Tensor/Node/Graph
Ascend IR(Ascend Intermediate Representation,昇腾中间表示)是昇腾AI处理器专用的抽象数据结构,用于表达计算流程。基于GE图引擎能力,PyTorch、TensorFlow、MindSpore、PaddlePaddle等主流AI框架的算法模型可以统一转换为使用Ascend IR表示的计算图,同时也支持用户自定义构建计算图,后续的编译加速优化均基于该计算图完成。

Ascend IR主要包括张量(Tensor)、Node(Operator)、Graph三个维度的信息。
Tensor
属性 |
定义 |
---|---|
名称(name) |
用于对Tensor进行索引,不同Tensor的name需要保持唯一。 |
形状(shape) |
Tensor的形状,比如(10, )或者(1024, 1024)或者(2, 3, 4)等。如形状(3, 4)表示第一维有3个元素,第二维有4个元素,(3, 4)表示一个3行4列的矩阵数组。 形式:(i1, i2, …, in),其中i1到in均为正整数。 |
数据类型(dtype) |
Tensor对象的数据类型。 取值范围:float16, float32, int8, int16, int32, uint8, uint16, bfloat16, bool等。 |
数据排布格式(format) |
数据的物理排布格式,详细请参见数据排布格式。 |
Node
属性 |
定义 |
---|---|
名称(name) |
算子的名称,用于标识图中的某个算子,同一图中算子的名称需要保持唯一。如下图所示Conv1、Pool1、Conv2都是图中的算子名称,其中Conv1与Conv2算子的类型为Convolution,表示分别做一次卷积运算。 |
类型(type) |
网络中每一个算子根据算子类型进行算子实现的匹配,相同类型的算子的实现逻辑相同。在一个图中同一类型的算子可能存在多个,例如上图中的Conv1算子与Conv2算子的类型都为Convolution。 |
输入(input) |
算子的输入Tensor数据。 |
输出(output) |
算子的输出Tensor数据。 |
属性(Attributes) |
定义算子行为和功能,常见的算子属性包括轴(Axis)、权重(Weight)、偏差(Bias)。 |
Graph
属性 |
定义 |
---|---|
名称(name) |
图的名称,用于标识网络中的某个Graph,同一网络中Graph的名称需要保持唯一。 |
算子列表 |
图中所有的节点列表。 |
输入算子(input) |
图的输入算子。 |
输出算子(output) |
图的输出算子。 |