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)  | 
图的输出算子。  | 
