当前位置: 首页 > 专利查询>之江实验室专利>正文

一种用于计算图编译的中间表示方法及装置制造方法及图纸

技术编号:36801372 阅读:23 留言:0更新日期:2023-03-08 23:47
本发明专利技术公开了一种用于计算图编译的中间表示方法,包括如下步骤:步骤1、将神经网络编译为用于神经网络计算的计算图;步骤2、为计算图中每个张量变量构建节点;步骤3、将计算图中表示张量变量的节点关联到指向所述张量变量的指针集合;步骤4、分析计算图中张量变量之间的约束关系;步骤5、基于计算图张量变量的约束关系迭代地构建中间表示的拓扑图;步骤6、基于中间表示分析指向相同内存位置的不同别名的张量变量,并为其分配寄存器。本发明专利技术提供了一种针对所述计算图中指向同一块内存位置的存在别名关系的张量变量之间的分析方法,本发明专利技术提出的用于计算图编译的中间表示方法优化了计算图中指向相同内存位置的张量变量的编译效率。效率。效率。

【技术实现步骤摘要】
一种用于计算图编译的中间表示方法及装置


[0001]本专利技术涉及基于特定计算模型的计算机系统领域,特别涉及一种用于计算图编译的中间表示方法及装置。

技术介绍

[0002]随着近几年神经网络模型的落地,用于计算图编译的技术变得越来越重要。目前已有的面向神经网络计算的图编译技术仍未出现分析计算图张量流中存在指向同一内存地址关系的张量变量的编译技术,因此已有的编译技术对硬件的内存资源需求高。

技术实现思路

[0003]本专利技术的目的在于提供一种用于计算图编译的中间表示方法及装置,以克服现有技术中的不足。
[0004]为实现上述目的,本专利技术提供如下技术方案:本专利技术公开了一种用于计算图编译的中间表示方法,包括如下步骤:步骤1、将神经网络编译为用于神经网络计算的计算图;步骤2、为计算图中每个张量变量构建节点;步骤3、将计算图中表示张量变量的节点关联到指向所述张量变量的指针集合;步骤4、分析计算图中张量变量之间的约束关系,包括以下子步骤:步骤4.1、定义计算图中张量变量之间的地址赋值操作的约束表示;步骤4.2、定义计算图中张量变量之间的赋值操作的约束表示;步骤4.3、定义计算图中张量变量指针集合加载操作的约束表示;步骤4.4、定义计算图中张量变量指针集合存储操作的约束表示;步骤5、基于计算图张量变量的约束关系迭代地构建中间表示的拓扑图,包括以下子步骤:步骤5.1、基于张量变量之间的赋值操作的约束表示构建计算图中间表示的传播过程;步骤5.2、基于张量变量指针集合加载操作的约束表示构建计算图中间表示中的张量变量指针集合的加载过程;步骤5.3、基于张量变量指针集合存储操作的约束表示构建计算图中间表示中的张量变量指针集合的存储过程;步骤6、基于中间表示分析指向相同内存位置的不同别名的张量变量,并为其分配寄存器。
[0005]作为优选的,所述步骤4.1定义计算图中张量变量之间的地址赋值操作的约束表示是指将张量变量b的地址赋予张量变量 a的约束表示方法,具体为:若张量变量b与张量变量a存在将张量变量b的地址赋予张量变量a的关系,则定义张量变量 b 与张量变量 a 之间存在基本约束关系:包含张量变量b的集合被包含于指向张量变量a的指针集合。
[0006]作为优选的,所述步骤4.2定义计算图中张量变量之间的赋值操作的约束表示是指将张量变量b赋予张量变量 a的约束表示方法,具体为:若张量变量b与张量变量a存在将张量变量b赋予张量变量a的关系,则定义张量变量b与张量变量a之间存在赋值操作的约束关系:指向张量变量b的指针集合被包含于指向张量变量a的指针集合。
[0007]作为优选的,所述步骤4.3定义计算图中张量变量指针集合加载操作的约束表示是指将指向张量变量b的指针集合中的元素加载到指向张量变量a的指针集合的约束表示方法,具体为:若张量a与张量b满足指向张量变量b的指针集合中的元素赋予张量变量a,且指向张量变量b指针集合包含张量变量t元素,则定义张量变量 a与b 存在约束关系:定义将指向张量变量b指针集合加载到指向张量变量 a 的指针集合操作的约束关系为指向张量变量t的指针集合被包含于指向张量变量a的指针集合中。
[0008]作为优选的,所述步骤4.4定义计算图中张量变量指针集合存储操作的约束表示是指将指向张量变量b的指针集合存储到指向张量变量 a 的指针集合的元素的指针集合中的约束表示方法,具体为:若张量变量 b 与张量变量 a 满足:将指向张量变量b的指针集合赋予指向张量变量 a 的指针集合的元素且指向张量变量a的指针集合包含张量变量t元素,则定义张量 a与b 存在约束关系:定义将指向张量变量b的指针集合存储到指向张量变量a的指针集合的元素的指针集合中的约束关系为指向张量变量b的指针集合被包含于指向张量变量a的指针集合元素t的指针集合中。
[0009]作为优选的,所述步骤5.1是指包含张量变量的集合沿着计算图的基于约束表示的边的方向传播,具体子步骤如下:步骤5.1.1、构建计算图中赋值操作的中间表示:对于计算图中赋值操作的约束表示,满足张量变量b与张量变量a存在将张量变量b赋予张量变量a的关系,则张量变量 b与张量变量a存在约束表示:指向张量变量b的指针集合被包含于指向张量变量a的指针集合;步骤5.1.2、基于所述赋值操作的约束表示构建拓扑图,具体为:对于约束关系为指向张量变量b的指针集合被包含于指向张量变量a的指针集合,基于约束关系,拓扑图中生成一条由张量变量b的指针集合的节点指向张量变量a的指针集合的节点的连边;上述拓扑图中赋值操作的张量变量的传播过程为:计算图的执行流经过表示赋值操作的约束关系边,则所述约束关系边是从指向张量变量b的指针集合节点传播至指向张量变量a的指针集合节点,所述约束关系的尾节点指针也指向所述约束关系边起始节点的指针所指向的包含张量变量的集合。
[0010]作为优选的,所述步骤5.2是指将指向张量变量b的指针集合中的元素加载到指向张量变量a的指针集合中,且指向张量变量b的指针集合中的元素沿着计算图的基于约束表示的边的方向传播,具体子步骤如下:步骤5.2.1、构建计算图中加载操作的中间表示:对于计算图中加载操作的约束表示,满足张量变量b与张量变量a存在将指向张量变量b的指针集合中的元素赋予张量变量a,且指向张量变量b指针集合包含张量变量t元素,则将指向张量变量b指针集合加载到指向张量变量a的指针集合操作的约束表示:指向张量变量t的指针集合被包含于指向张量变量a的指针集合中;步骤5.2.2、基于所述加载操作的约束表示构建拓扑图,具体为:对于约束关系为指向张量变量b指针集合的元素张量变量t的指针集合被包含于指向张量变量a的指针集合
中,基于约束关系,拓扑图中生成一条由张量变量t的指针集合的节点指向张量变量a的指针集合节点的连边;上述拓扑图中加载操作的张量变量的传播过程为:计算图的执行流经过表示加载操作的约束关系边,则所述约束关系边是从对应元素的指针集合节点传播至指向张量变量a的指针集合节点。
[0011]作为优选的,所述步骤5.3是指将指向张量变量b的指针集合存储到指向张量变量a的指针集合的元素的指针集合中,且指向张量变量b的指针集合沿着计算图的基于约束表示的边的方向传播,具体子步骤如下:步骤5.3.1、构建计算图中存储操作的中间表示:对于计算图中存储操作的约束表示,满足张量变量b与张量变量a存在将指向张量变量b的指针集合赋予指向张量变量a的指针集合的元素且指向张量变量a的指针集合包含张量变量t元素,则将指向张量变量b的指针集合 存储到指向张量变量a的指针集合的元素的指针集合中的约束表示:代表为指向张量变量b的指针集合被包含于指向张量变量a的指针集合元素 t 的指针集合中;步骤5.3.2、基于所述存储操作的约束表示构建拓扑图,具体为:对于约束关系为指向张量变量b指针集合被包含于指向张量变量t的指针集合中且,基于约束关系,拓扑图中生成一条由张量变量b的指针集合的节点指向张量变量t的指针集合节点的连边;上述拓扑图中存储操作的张量变量的传播过程为:计算图的执行流经过表示存储操作的约本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于计算图编译的中间表示方法,其特征在于:包括如下步骤:步骤1、将神经网络编译为用于神经网络计算的计算图;步骤2、为计算图中每个张量变量构建节点;步骤3、将计算图中表示张量变量的节点关联到指向所述张量变量的指针集合;步骤4、分析计算图中张量变量之间的约束关系,包括以下子步骤:步骤4.1、定义计算图中张量变量之间的地址赋值操作的约束表示;步骤4.2、定义计算图中张量变量之间的赋值操作的约束表示;步骤4.3、定义计算图中张量变量指针集合加载操作的约束表示;步骤4.4、定义计算图中张量变量指针集合存储操作的约束表示;步骤5、基于计算图张量变量的约束关系迭代地构建中间表示的拓扑图,包括以下子步骤:步骤5.1、基于张量变量之间的赋值操作的约束表示构建计算图中间表示的传播过程;步骤5.2、基于张量变量指针集合加载操作的约束表示构建计算图中间表示中的张量变量指针集合的加载过程;步骤5.3、基于张量变量指针集合存储操作的约束表示构建计算图中间表示中的张量变量指针集合的存储过程;步骤6、基于中间表示分析指向相同内存位置的不同别名的张量变量,并为其分配寄存器。2.如权利要求1所述的一种用于计算图编译的中间表示方法,其特征在于:所述步骤4.1定义计算图中张量变量之间的地址赋值操作的约束表示是指将张量变量b的地址赋予张量变量 a的约束表示方法,具体为:若张量变量b与张量变量a存在将张量变量b的地址赋予张量变量a的关系,则定义张量变量 b 与张量变量 a 之间存在基本约束关系:包含张量变量b的集合被包含于指向张量变量a的指针集合。3.如权利要求1所述的一种用于计算图编译的中间表示方法,其特征在于:所述步骤4.2定义计算图中张量变量之间的赋值操作的约束表示是指将张量变量b赋予张量变量 a的约束表示方法,具体为:若张量变量b与张量变量a存在将张量变量b赋予张量变量a的关系,则定义张量变量b与张量变量a之间存在赋值操作的约束关系:指向张量变量b的指针集合被包含于指向张量变量a的指针集合。4.如权利要求1所述的一种用于计算图编译的中间表示方法,其特征在于:所述步骤4.3定义计算图中张量变量指针集合加载操作的约束表示是指将指向张量变量b的指针集合中的元素加载到指向张量变量a的指针集合的约束表示方法,具体为:若张量a与张量b满足指向张量变量b的指针集合中的元素赋予张量变量a,且指向张量变量b指针集合包含张量变量t元素,则定义张量变量 a与b 存在约束关系:定义将指向张量变量b指针集合加载到指向张量变量 a 的指针集合操作的约束关系为指向张量变量t的指针集合被包含于指向张量变量a的指针集合中。5.如权利要求1所述的一种用于计算图编译的中间表示方法,其特征在于:所述步骤4.4定义计算图中张量变量指针集合存储操作的约束表示是指将指向张量变量b的指针集合存储到指向张量变量 a 的指针集合的元素的指针集合中的约束表示方法,具体为:若张量变量 b 与张量变量 a 满足:将指向张量变量b的指针集合赋予指向张量变量 a 的指针
集合的元素且指向张量变量a的指针集合包含张量变量t元素,则定义张量 a与b 存在约束关系:定义将指向张量变量b的指针集合存储到指向张量变量a的指针集合的元素的指针集合中的约束关系为指向张量变量b的指针集合被包含于指向张量变量a的指针集合元素t的指针集合中。6.如权利要求1所述的一种用于计算图编译的中间表示方法,其特征在于:所述步骤5.1是指包含张量变量的集合沿着计算图的基于约束表示的边的方向传播,具体子步骤如下:步骤5.1.1、构建计算图中赋值操作的中间表示:对于计算图中赋值操作的约束表示,满足张量变量b与张量变量a存在将张量变量b赋予张量变量a的关系,则张量变量 b与张量变量a存在约束表示:指向张量变量...

【专利技术属性】
技术研发人员:王宏升潘爱民陈光
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1