一种自动配置模板生成方法、装置、服务器及存储介质制造方法及图纸

技术编号:29674059 阅读:22 留言:0更新日期:2021-08-13 21:56
本申请涉及一种自动配置模板生成方法、装置、服务器及存储介质,其方法包括:获取当前输入数据、当前终端的片上内存空间;基于当前输入数据、当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界;根据卷积通信下界确定最优性条件,最优性条件用于指示卷积运算中存储于当前终端的片上内存空间的数据流;根据最优性条件生成搜索空间,搜索空间中包含至少一种配置模板,至少一种可调参数在各个配置模板中相同,至少一种可调参数为最优性条件对应的可调参数;基于搜索空间调整卷积运算的访存局部性。本申请具有降低搜索参数配置过程的时间成本和硬件成本的效果。

【技术实现步骤摘要】
一种自动配置模板生成方法、装置、服务器及存储介质
本申请涉及深度学习、编译技术、高性能计算交叉
,尤其是涉及一种自动配置模板生成方法、装置、服务器及存储介质。
技术介绍
深度学习的推理优化在工业界得到了广泛的关注,由于推理终端的种类丰富,包括嵌入式CPU(中央处理器,centralprocessingunit)、GPU(图形处理器graphicsprocessingunit)、FPGA(FieldProgrammableGateArray)和ASIC(特殊应用集成电路)等,不同硬件目标在内存组织、计算功能单元等方面存在差异,因此不同终端的推理优化所需要的技巧也不同,性能调优成为一种需要基于专业工程经验且耗费大量人力的重复性工作。相关技术中普遍采用的自动调优框架TVM(面向深度学习的自动端到端优化编译器),TVM首先从现有框架中获取模型作为输入,并将其转换为计算图表示,然后系统执行高级数据流重写以生成优化的图;给定一组丰富的调度原语,TVM为深度学习模型的每一层找到最优的操作符实现、为与每个层相关联的特定输入形状和布局创建一个专门的操作符,并选择调度优化,例如修改循环顺序、优化内存层次结构、以及特定于调度的参数,例如平铺大小和循环展开因子。TVM公开了图形级和操作符级的优化,引入一种张量表达式语言来构建操作符并提供程序转换原语,基于内存访问、线程模式和新硬件原语的组合选择为生成的代码(例如,循环块和排序、缓存、展开),并引入自动程序优化框架来寻找优化的张量操作符。在TVM的模板引导搜索模式中,搜索空间由手动模板编写,TVM要求用户手动为计算定义编写模板,模板使用一些可调参数(例如,平铺大小和展开因子)定义张量表达式的结构,并为特定的计算图形状配置和特定的硬件目标搜索这些参数的最佳值。针对上述相关技术,专利技术人认为存在以下缺陷:由于参数配置的搜索空间巨大,使得搜索参数配置过程的时间成本和硬件成本较高。
技术实现思路
为了降低搜索参数配置过程的时间成本和硬件成本,本申请提供一种自动配置模板生成方法、装置、服务器及存储介质。第一方面,本申请提供一种自动调优模板生成方法,采用如下的技术方案:一种自动配置模板生成方法,包括:获取当前输入数据、当前终端的片上内存空间;基于所述当前输入数据、所述当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界;根据所述卷积通信下界确定最优性条件,所述最优性条件用于指示卷积运算中存储于所述当前终端的片上内存空间的数据流,所述数据流满足所述卷积通信下界;根据所述最优性条件生成搜索空间,所述搜索空间中包含至少一种配置模板,所述配置模板包含多种可调参数,至少一种可调参数在各个所述配置模板中相同,所述至少一种可调参数为所述最优性条件对应的可调参数;基于所述搜索空间调整所述卷积运算的访存局部性。通过采用上述技术方案,通过对卷积运算过程中,基于卷积通信下界确定卷积运算过程中的数据流,以及该数据流的存储位置的分配形成最优性条件,根据最优性条件能够确定出配置模板中的至少一种可调参数,也即参数配置的搜索空间中的至少一种可调参数固定,仅需要其他可调参数进行配置即可,从而可以降低参数配置的搜索空间。在一种可能的实现方式中,所述基于所述当前输入数据、所述当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界,包括:根据所述当前输入数据通过卷积运算规则生成卷积有向无环图;将所述卷积有向无环图分解为至少两个卷积输入子图;确定所述卷积有向无环图的顶点总数;将所述卷积有向无环图基于S-划分划分为至少一个卷积输入子集;基于所述当前输入数据、任一所述卷积输入子集、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界;其中,所述顶点数量上界用于表示所有所述卷积输入子集中顶点数量最大的所述卷积输入子集对应的顶点数量;基于所述顶点数量上界、所述卷积有向无环图的顶点总数、红蓝卵石模型以及所述当前终端的片上内存空间确定所述卷积通信下界。在一种可能的实现方式中,所述基于所述当前输入数据、任一所述卷积输入子集、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界,包括:将所述任一卷积输入子集的任一支配集定义为输入支配集,将所述输入支配集划分为第一顶点集合和第二顶点集合,确定所述第一顶点集合对应的第一顶点数量,以及确定所述第二顶点集合对应的第二顶点数量;基于所述当前输入数据、所述任一卷积输入子集、所述输入支配集、所述第一顶点数量、所述第二顶点数量、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界。在一种可能的实现方式中,所述任一卷积输入子集与所有所述卷积输入子图之间的关系,包括:Vi∩Uj+1所有输入被包含在中;(i)根据能够确定|Vi∩Uj+1|的上界;(ii);(iii)其中,对于任一有向无环图G(V,E):Vi为任一有向无环图G(V,E)基于S-划分得到的任一子集;Uj为任一有向无环图G(V,E)的第j个子图对应的顶点集合;Uj+1为有向无环图的第j+1个子图对应的顶点集合;Di为Vi的支配集;为Uj的输出集合;表示一个包含所有能被Di生成的顶点的集合;将所述卷积有向无环图代入式(i)~式(iii),得到所述任一卷积输入子集与所有所述卷积输入子图之间的关系。在一种可能的实现方式中,所述基于所述当前输入数据、任一所述卷积输入子集、所述输入支配集、所述第一顶点数量、所述第二顶点数量、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界,包括:(1)其中,对于任一有向无环图G(V,E):S为快速内存的容量;将Di将顶点划分为至少两个顶点集合,其中每个顶点集合中的顶点数量分别为:、、;(2)其中,U为任一有向无环图G(U,E)中表示算法操作的顶点集合;Uj为任一有向无环图G(U,E)根据预设分解规则分解得到的第j个子图对应的算法操作的顶点集合;k为任意整数,D为满足的任意支配集的顶点集合;为Uj的输出集合,为表示一个包含所有能被上述集合D生成的顶点的集合;表示由D在顶点集合U∩Uj生成的顶点数量;表示由D在顶点集合中生成的顶点数量;(3)其中,U为式(2)任一有向无环图G(U,E)中表示算法操作的顶点集合;k为式(2)中的任意的整数;对于任意给定的k和第j个子计算,表示k个输入顶点生成的U∩Uj中最大的顶点数,表示k个输入顶点在生成的本文档来自技高网
...

【技术保护点】
1.一种自动配置模板生成方法,其特征在于,包括:/n获取当前输入数据、当前终端的片上内存空间;/n基于所述当前输入数据、所述当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界;/n根据所述卷积通信下界确定最优性条件,所述最优性条件用于指示卷积运算中存储于所述当前终端的片上内存空间的数据流,所述数据流满足所述卷积通信下界;/n根据所述最优性条件生成搜索空间,所述搜索空间中包含至少一种配置模板,所述配置模板包含多种可调参数,至少一种可调参数在各个所述配置模板中相同,所述至少一种可调参数为所述最优性条件对应的可调参数;/n基于所述搜索空间调整所述卷积运算的访存局部性。/n

【技术特征摘要】
1.一种自动配置模板生成方法,其特征在于,包括:
获取当前输入数据、当前终端的片上内存空间;
基于所述当前输入数据、所述当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界;
根据所述卷积通信下界确定最优性条件,所述最优性条件用于指示卷积运算中存储于所述当前终端的片上内存空间的数据流,所述数据流满足所述卷积通信下界;
根据所述最优性条件生成搜索空间,所述搜索空间中包含至少一种配置模板,所述配置模板包含多种可调参数,至少一种可调参数在各个所述配置模板中相同,所述至少一种可调参数为所述最优性条件对应的可调参数;
基于所述搜索空间调整所述卷积运算的访存局部性。


2.根据权利要求1所述的方法,其特征在于,所述基于所述当前输入数据、所述当前终端的片上内存空间以及卷积运算规则,确定卷积通信下界,包括:
根据所述当前输入数据通过卷积运算规则生成卷积有向无环图;
将所述卷积有向无环图分解为至少两个卷积输入子图;
确定所述卷积有向无环图的顶点总数;
将所述卷积有向无环图基于S-划分划分为至少一个卷积输入子集;
基于所述当前输入数据、任一所述卷积输入子集、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界;
其中,所述顶点数量上界用于表示所有所述卷积输入子集中顶点数量最大的所述卷积输入子集对应的顶点数量;
基于所述顶点数量上界、所述卷积有向无环图的顶点总数、红蓝卵石模型以及所述当前终端的片上内存空间确定所述卷积通信下界。


3.根据权利要求2所述的方法,其特征在于,所述基于所述当前输入数据、任一所述卷积输入子集、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界,包括:
将所述任一卷积输入子集的任一支配集定义为输入支配集,将所述输入支配集划分为第一顶点集合和第二顶点集合,确定所述第一顶点集合对应的第一顶点数量,以及确定所述第二顶点集合对应的第二顶点数量;
基于所述当前输入数据、任一所述卷积输入子集、所述输入支配集、所述第一顶点数量、所述第二顶点数量、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界。


4.根据权利要求3所述的方法,其特征在于,所述任一所述卷积输入子集与所有所述卷积输入子图之间的关系,包括:
Vi∩Uj+1所有输入被包含在中;(i)
根据能够确定|Vi∩Uj+1|的上界;(ii)

;(iii)
其中,对于任一有向无环图G(V,E):
Vi为任一有向无环图G(V,E)基于S-划分得到的任一子集;
Uj为任一有向无环图G(V,E)的第j个子图对应的顶点集合;
Uj+1为有向无环图的第j+1个子图对应的顶点集合;
Di为Vi的支配集;

为Uj的输出集合;

表示一个包含所有能被Di生成的顶点的集合;
将所述卷积有向无环图代入式(i)~式(iii),得到所述任一卷积输入子集与所有所述卷积输入子图之间的关系。


5.根据权利要求4所述的方法,其特征在于,所述基于所述当前输入数据、任一所述卷积输入子集、所述输入支配集、所述第一顶点数量、所述第二顶点数量、所有所述卷积输入子图、所述任一卷积输入子集与所有所述卷积输入子图之间的关系、所述当前终端的片上内存空间以及预设算法,确定顶点数量上界,包括:

(1)
其中,对于任一有向无环图G(V,E):
S为快速内存的容量;
将Di将顶点划分为至少两个顶点集...

【专利技术属性】
技术研发人员:张晓扬肖俊敏曹连雨
申请(专利权)人:中科弘云科技北京有限公司
类型:发明
国别省市:北京;11

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

1