CN116368494A - 一种神经网络编译优化方法和相关装置 - Google Patents
一种神经网络编译优化方法和相关装置 Download PDFInfo
- Publication number
- CN116368494A CN116368494A CN202080106362.2A CN202080106362A CN116368494A CN 116368494 A CN116368494 A CN 116368494A CN 202080106362 A CN202080106362 A CN 202080106362A CN 116368494 A CN116368494 A CN 116368494A
- Authority
- CN
- China
- Prior art keywords
- graph
- sub
- optimization
- topological feature
- feature vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种神经网络编译优化方法,包括:将神经网络的计算图分割成若干个子图;查询拓扑特征库中是否存在与至少一个分割的子图的拓扑一致的已知子图的优化策略;如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知子图的优化策略来优化该至少一个子图。本申请实施例在特征库中存储神经网络的已知子图的编译优化策略。在进行神经网络的编译时,将神经网络的计算图分割成若干个子图,从拓扑特征库中找到至少一个分割的子图对应的优化策略,直接对该子图应用优化策略,而不需要重复对该子图进行优化计算,加速神经网络模型的编译过程。
Description
本申请涉及神经网络编译领域,尤其涉及一种神经网络编译优化方法及相关装置。
目前,人工神经网络是人工智能领域中常见的计算模型之一。不同于使用C/C++等高级编程语言描述的源程序代码,神经网络通过描述神经网络算法的专用模型来表示。进一步地,通过神经网络模型的编译,即,将神经网络算法转化成通用的计算图,对计算图进行优化,再将优化后的计算图映射为后端硬件平台可执行的指令和机器码,从而将神经网络的模型转换成面向计算平台上执行的目标代码。神经网络编译优化是一个处理复杂、耗时较长的计算过程。一个典型的神经网络编译优化过程包括图转换、子图切分、常量折叠、等效子图变换、算子融合、L1/L2存储器数据复用、DDR内存分配和复用等。神经网络模型中往往存在较多相同结构,重复编译这些相同结构会导致一些在线编译或者超大模型编译的效率严重下降。此外,如果用户只是对神经网络模型的一个小局部进行修改,就要全部重复以上复杂冗长的编译过程,影响用户的使用体验。
发明内容
本申请实施例提供了一种神经网络编译优化方法及相关装置,用于解决本领域上述至少缺点之一。
根据本申请的第一方面,提供一种神经网络编译优化方法,包括:将神经网络的计算图分割成若干个子图;查询拓扑特征库中是否存在与至少一个分割的子图的拓扑一致的已知子图的优化策略;如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知子图的优化策略来优化该至少一个子图。
根据本申请的第一方面,所述拓扑特征库包括已知子图的拓扑特征向量和对应的优化策略,所述查询的步骤包括查询是否存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略。
根据本申请的第一方面,其中,所述方法进一步包括:如果不存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略,则对该至少一个分割的子图执行编译优化计算;在该至少一个分割的子图的编译优化之后,生成该至少一个分割的子图的优化策略;将该至少一个分割的子图的拓扑特征向量及其优化策略相关联地添加到拓扑特征库中。
根据本申请的第一方面,其中,对该至少一个分割的子图执行编译优化计算包括通过优化计算来确定该至少一个分割的子图的等效子图,将该至少一个分割的子图替换成等效子图;所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量和等效子图的拓扑特征向量关联地存储在拓扑特征库中。
根据本申请的第一方面,其中,对该至少一个分割的子图执行编译优化计算包括确定该至少一个分割的子图中多个部分能够合并而降低子图的计算量或者子图的计算速度,将所述多个部分进行合并,所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量和合并后的子图的拓扑特征向量关联地添加到拓扑特征库中。
根据本申请的第一方面,其中,对该至少一个分割的子图执行编译优化计算包括确定所述该至少一个分割的子图的等效常量,将该至少一个分割的子图替换成等效常量,所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量好和等效常量关联地添加到拓扑特征库中。
根据本申请的第一方面,其中,所述分割的步骤包括采用聚类技术将计算图分割成若干个粗粒度的子图。
根据本申请的第一方面,其中,所述方法进一步包括:如果不存在与至少一个分割的粗粒度子图的拓扑特征向量一致的已知子图的优化策略,则将至少一个分割的粗粒度子图分割成若干个细粒度子图,查询拓扑特征库中是否存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略;如果存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则从拓扑特征库中提取与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略来优化该至少一个细粒度子图。
根据本申请的第一方面,其中,如果不存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则:对该至少一个细粒度子图执行编译优化计算;生成该至少一个细粒度子图的优化策略;将该至少一个细粒度子图的拓扑特征向量及其优化策略添加到拓扑特征库中。
根据本申请的第二方面,提供一种用于神经网络编译优化的装置,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的程序指令,以使所述装置实现上述任一方法。
根据本申请的第三方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质中存储了程序代码,所述程序代码被计算机执行时,实现上述任一方法。
根据本申请的第四方面,提供一种计算机程序产品,其中,所述计算机程序产品包含的程序代码被计算机执行时,实现上述任一方法。
根据本申请的第五方面,提供一种神经网络编译优化的装置,包括:分割单元,配置成用于将神经网络的计算图分割成若干个子图;查询单元,配置成用于查询拓扑特征库中是否存在与该至少一个分割的子图的拓扑一致的已知子图的优化策略;优化单元,配置成用于:如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知拓扑的优化策略来优化该至少一个子图。
根据本申请的第五方面,所述拓扑特征库包括已知子图的拓扑特征向量和对应的优化策略,所述查询单元进一步配置成用于:查询是否存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略。
根据本申请的第五方面,其中,如果不存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元进一步配置成用于:对该至少一个分割的子图执行编译优化计算;在该至少一个分割的子图的编译优化之后,生成该至少一个分割的 子图的优化策略;将该至少一个分割的子图的拓扑特征向量及其优化策略相关联地添加到拓扑特征库中。
根据本申请的第五方面,其中,在对该至少一个分割的子图执行编译优化计算时,所述优化单元配置成用于:通过优化计算来确定该至少一个分割的子图的等效子图,将该至少一个分割的子图替换成等效子图;所述优化单元配置成用于:在执行所述添加时,将该至少一个分割的子图的拓扑特征向量和等效子图的拓扑特征向量关联地存储在拓扑特征库中。
根据本申请的第五方面,其中,所述优化单元配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定子图中多个部分能够合并而降低该子图的计算量或者提升该子图的计算速度,将所述多个部分进行合并;在执行所述添加时,将该子图的拓扑特征向量和合并后的子图的拓扑特征向量关联地添加到拓扑特征库中。
根据本申请的第五方面,其中,所述优化单元配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定所述子图的等效常量,将该子图替换成该常量;在执行所述添加时,将该子图的拓扑特征向量和该常量关联地添加到拓扑特征库中。
根据本申请的第五方面,其中,所述分割单元进一步配置成用于:采用聚类技术将计算图分割成粗粒度的子图。
根据本申请的第五方面,其中,如果不存在与至少一个分割的粗粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述分割单元配置成用于:将至少一个分割的粗粒度子图分割成若干个细粒度子图;所述查询单元配置成用于:查询拓扑特征库中是否存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略;如果存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元配置成用于:从拓扑特征库中提取与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略来优化该至少一个细粒度子图。
根据本申请的第五方面,其中,如果不存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元配置成用于:对该至少一个细粒度子图执行编译优化计算;生成该至少一个细粒度子图的优化策略;将该至少一个细粒度子图的拓扑特征向量及其优化策略添加到拓扑特征库中。
本申请实施例通过引入拓扑特征库来加速编译过程的执行。具体而言,在特征库中存储神经网络的已知子图的编译优化策略。在进行神经网络的编译时,将神经网络的计算图分割成若干个子图,从拓扑特征库中找到至少一个分割的子图对应的优化策略,直接对该子图应用优化策略,而不需要重复对该子图进行优化计算,加速神经网络模型的编译过程。
图1为一种神经网络的结构示意图;
图2为本申请一个实施例的神经网络编译优化过程的流程图;
图3为图2的实施例中的神经网络的计算图的分割的示意图;
图4为图2的实施例中的节点属性信息的示意图;
图5为图2的实施例中的神经网络中的等效子图的示意图;
图6为本申请另一个实施例的神经网络编译优化方法的流程图;
图7为图6的实施例中的计算图的细粒度分割的示意图;
图8为实施本申请实施例提供的神经网络编译优化方法的神经网络编译服务器的示意图;
图9为实施本申请实施例提供的神经网络编译优化方法的计算设备的示意图。
图10为实施本申请实施例提供的神经网络编译优化方法的装置的示意图。
下面结合附图并举实施例,对本申请提供的技术方案作进一步说明。应理解,本申请实施例中提供的系统和场景主要是为了解释本申请的技术方案的一些可能的实施方式,不应被解读为对本申请的技术方案的唯一性限定。
本申请实施例及附图中的术语“第一”,“第二”以及“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于表示不排他的包含。方法、系统、产品或设备不必仅限于字面列出的那些步骤或单元,而是可包括没有字面列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请中,各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
下面介绍本申请涉及到的若干技术术语的含义。
本申请提到的神经网络,即人工神经网络(ANN),可以是例如深度神经网络(DNN)、循环神经网络(RNN)或者卷积神经网络(CNN)等本领域已知的各种人工神经网络。
神经网络一般通过描述神经网络算法的专用模型来表示。神经网络的编译,指的是,将神经网络算法转化成通用的计算图,对计算图进行优化和重构,再将优化后的计算图映射为后端硬件平台可执行的指令和机器码,从而完成神经网络算法针对硬件平台的编译。
计算图,即是将神经网络模型的计算用图形表示出来,例如,通过多个节点和节点与节点之间的有向边(Edge)表示。节点包括变量节点、算子节点和样本节点中的至少一种。两个节点之间的有向边用于表示两个节点间的依赖关系。节点之间的有向边具有属性,例如权重,其表示一个信号(或者值)经过该有向边输入到下一个节点时要乘以该权重值作为输入。
神经网络编译器可以是各种用于神经网络计算的计算平台或者神经网络编译器,例如,深度神经网络编译器DNNC(Deep Neural Network Compiler),可以将神经网络算法编译成例如DPU(Deep Learning Processor Unit,DLPU)平台的指令流。神经网络编译器也可以是 本领域已知的其他各种类型的编译器。
本申请实施例涉及神经网络编译优化方法。下面结合附图详细描述本申请实施例的方法。
图1提供了一种神经网络结构的示意图。如图1所示,神经网络结构包括一系列有序运行的层,例如卷积层(Conv)、批量归一化(BatchNorm,即BN)层、定标(Scale)层、点加(eltwise)层、Relu(Rectified Linear Unit,修正线性单元)层等。上述这些层仅仅是示例,还可以包含其他各种类型的层。另外,本申请提供的图1的神经网络结构仅仅是为了举例说明,本申请中的神经网络并不局限于如图1所述的结构,可以是本领域各种类型的神经网络的结构。
如图1所示,在神经网络中,前一层的计算输出为后一层的输入。例如,对于图1中包含连续的Conv、BN和Scale的框而言,在计算过程中,首先将Conv层需要的输入数据从片外内存加载至片上缓存,Conv层基于该加载的数据进行计算,然后将计算结果存储在片外内存;然后,BN层从片外内存加载Conv层的输出结果作为输入数据以及其他必要的参数,进行计算,再将结果存储在片外内存;然后Scale层从片外内存加载之前BN层的输出结果,进行计算,再将结果存储在片外内存,以此类推,直到遍历所有的计算层。上述神经网络的计算过程仅是示例性的。上述包含连续的Conv、BN和Scale的框的计算过程(包括数据存取过程)还可以采用本领域已知的其他操作。
下面结合图2-5具体描述本申请一个实施例的神经网络编译优化方法的流程。
如图2所示,在步骤S110中,生成神经网络的计算图。开发者可以使用本领域各种深度学习框架例如MxNet、TensorFlow等来设计需要的神经网络模型。进一步地,可以采用本领域已知的各种神经网络模型解析器和神经网络模型构建器来将神经网络模型转换成神经网络处理器对应的通用的计算图。例如,神经网络模型解析器可以对输入的神经网络模型进行解析,例如对输入的神经网络模型的语法结构或者句法进行分析来生成模型信息;进一步地,神经网络模型构建器可以基于模型信息生成计算图,例如包括多个计算节点的图。
接着,在步骤S120中,将神经网络的计算图分割成若干个子图。可以采用基于邻接矩阵的聚类图割算法将计算图分割成若干个子图。如图3所示,在邻接矩阵上应用聚类算法,生成聚类结果,从而确定分割的子图的边界。图3示出了分割的神经网络的子图结构、例如子图结构A和子图结构B,以及对应的邻接矩阵(图3右半边部所示)。
上述子图分割的方式仅是示例,可以采用本领域中其他已知的各种子图分割技术。上述聚类算法可以是但不限于K-Means、图团体检测(Graph Community Detection)等。这里不再赘述。
接着,如步骤S130所示,生成至少一个分割的子图的拓扑信息,例如,按照一定次序遍历后的各个节点的属性信息hash摘要。
节点的遍历可以是,确定子图的首节点,按照广度遍历每个节点,生成节点处理队列。从节点队列依次对各个节点生成属性信息,例如图4所示的节点的属性信息(Attr Info of Op),其包含但不限于,操作类型(Op Type),输入个数(Input Num),每个输入的形状(Input[0]Shape,Input[1]Shape等)和输入节点操作类型(例如,Input[0]Op Type,Input[1]Op Type 等),输出个数(Output Num),输出的形状(Output[0]Shape等)和输出节点的操作类型(例如,Output[0]Op Type)等。上述节点的属性信息可以编码成可以存储的信息。这里编码可以采用Hash算法(例如MD5)来编码。
除了上述子图的拓扑信息之外,还可以采用拓扑特征向量来表示子图的拓扑信息。神经网络的子图中,存在一些节点排序不同但结构等效的子图。例如,图5的子图中,最上层Conv层分别向下有三个方向的输出:Output:0;Output:1;Output:2。图5示出的两个子图属于拓扑排序不同但结构等效的子图。
对于节点排序不同但结构等效的子图,遍历节点的顺序不同,因此,可能生成不同的节点属性信息摘要。对于结构等效的子图,一般可以采用相同的优化策略。优选地,需要唯一地表示结构等效的子图的拓扑信息,避免在拓扑特征库中对于结构等效的一些子图采用不同的拓扑表示。例如,采用图神经网络GraphSAGE和前馈NN网络来生成子图的拓扑特征向量,其可以唯一表示结构等效的子图的拓扑。具体而言,将子图的邻接矩阵和子图的每个节点的拓扑属性信息(例如上面描述的节点属性的hash摘要)输入图神经网络GraphSAGE。GraphSAGE对于本领域是已知的算法,用于生成每个节点的嵌入(embedding)。接着,将子图的这些节点的embedding连接,进而输入到前馈神经网络中,从而生成该子图的拓扑特征向量。上述生成子图的拓扑特征向量的方式是示例性的,还可以采用本领域已知的其他各种方式来生成子图的拓扑特征向量来唯一地表示结构等效的子图的拓扑。
在本实施例中,设置拓扑特征库,其中存储已知子图的拓扑信息及其对应的优化策略。进一步地,在拓扑特征库中,与子图的拓扑信息关联地存储该子图的优化策略。初始化时,在拓扑特征库中存储一些已知的子图的拓扑信息和对应的优化策略。在该拓扑特征库中,与表示该子图的拓扑信息关联地存储该子图的优化策略。例如可以采用条目来表示子图的拓扑信息与优化策略之间的映射关系。这里,拓扑信息可以采用上面描述的子图的各个节点的属性信息,或者是采用上面描述的子图的拓扑特征向量。例如,将上面描述的子图的各个节点的属性信息存储在拓扑特征库中用于表示该子图的拓扑。或者可以采用上面描述的子图的拓扑特征向量存储在拓扑特征库中用于表示该子图的拓扑。这些仅是示例性的,还可以采用其他本领域已知的反映神经网络的子图的拓扑信息。
接着,如步骤S140所示,查询拓扑特征库来确定是否存在与至少一个分割的子图拓扑一致的已知子图的优化策略。如果有,则从拓扑特征库中提取对应的优化策略,对该至少一个分割的子图直接应用该优化策略,而无需再对该至少一个分割的子图进行编译优化计算。具体地,查询拓扑特征库中是否存在与至少一个分割的子图的拓扑信息(例如拓扑特征向量)一致的已知子图的优化策略。例如,将步骤S130生成的子图的拓扑特征向量与拓扑特征库中的已知子图的拓扑特征向量进行比较来确定拓扑特征库与至少一个分割的子图的拓扑信息(例如拓扑特征向量)一致的已知子图。
编译优化策略可以是本领域已知的各种针对神经网络的结构的编译优化策略。例如,可以是某个子图的公共表达式消除或者常量折叠等,还可以是等效子图变换,即利用另一个计算图替换该子图的图替换操作。还可以是将计算图中若干部分进行合并的图合并操作。还可以是将某些节点的算子融合在一起的算子融合等。优化策略不限于上述列举的,还可 以是本领域已知的其他各种类型的优化策略。
如果拓扑特征库中不存在与至少一个被分割的子图拓扑一致的已知子图的优化策略,则如步骤S150所示对该至少一个分割的子图执行编译优化计算。
这里的编译优化计算指的是,针对该子图进行优化重构从而减少该子图的计算量或者提升该子图的计算速度。例如,可以通过优化计算而生成该子图的等效子图,实现计算量的降低或者计算速度的提升,然后将该子图替换成该等效子图,即图替换。也可以是,通过优化计算而确定子图中多个部分能够通过合并而降低计算量或者提升计算速度,然后将该子图中的多个部分进行合并,即图合并。也可以是,通过优化计算而确定子图中至少一部分为等效常量,以及将该子图的至少一部分替换成该常量,即常量折叠。也可以是,通过优化计算而确定子图中若干个连续层的算子能够通过融合而降低访问外部存储器的带宽限制,以及将所述若干个连续层的算子融合。
上述编译优化计算仅是示例性的,只要是通过优化计算对该子图进行重构而实现计算量的降低或者提升计算速度的编译优化计算都在本申请的范围之内。
在优化之后,如步骤S160所示,生成该至少一个新的子图对应的优化策略,然后,如步骤S170所示,将该至少一个新的子图及其优化策略添加到该拓扑特征库中。例如,如果是上述图替换操作,则将该至少一个新的子图的拓扑和替换图的拓扑关联地添加到该拓扑特征库中。如果是图合并操作,将该至少一个新的子图的拓扑和优化后的图的拓扑关联地添加到该拓扑特征库中。如果是常量折叠,则可以将该至少一个新的子图的拓扑和等效常量关联地添加到该拓扑特征库中。这些都是示例性的,不限于上述列举的优化策略。
在步骤S150中的编译优化计算中,可能将该至少一个子图分割成若干个较小子图,对至少一个较小子图进行编译优化计算,优化之后,如步骤S160所示,生成被优化的该至少一个较小子图的优化策略,分别将优化后的较小子图和对应的优化策略存储在拓扑特征库中。也可以生成被分割之前的原始子图的优化策略,将该原始子图和对应的优化策略存储在拓扑特征库中。
如之前描述,初始化时,在拓扑特征库中存储若干已知的子图的拓扑信息和对应的优化策略。在之后的各种神经网络的计算图的编译优化时,如果遇到新的子图,对新的子图进行优化计算,优化之后,可以将新的子图及其优化策略添加到该拓扑特征库中以便于以后再次遇到该子图时可以从拓扑特征库中直接检索出相应的优化策略来对该子图应用该优化策略,而无需对该子图重复优化计算。
基于本申请实施例的上述技术方案,设置神经网络拓扑特征库,其中保存神经网络的已知子图及其优化策略。在编译时对于首次遇到的神经网络的子图,创建对应的条目,存储对应的优化策略。后续再次重复编译相同的神经网络的子图,则只需要查询拓扑特征数据库,对于已有的神经网络的子图,不需要再进行优化计算,而是直接获取相应的编译优化策略,避免对相同的神经网络的子图重复优化计算,提升编译速度。
下面参照图6详细描述本申请另一个实施例的神经网络编译优化方法。
图6的实施例的神经网络编译优化方法与图2的实施例不同在于,首先将计算图分割成若干个粗粒度子图,然后查询拓扑特征库来确定是否存在与至少一个粗粒度子图的拓扑一致的已知子图的优化策略;如果不存在,则进一步将粗粒度子图分割成细粒度子图,然 后再查询拓扑特征库来确定是否存在与至少一个细粒度子图的拓扑一致的已知子图的优化策略。如果不存在,则对至少一个新的细粒度子图进行优化计算或者对分割前的至少一个新的粗粒度子图进行优化计算,优化之后,将该至少一个新的粗粒度子图或者该至少一个新的细粒度子图和对应的优化策略添加到拓扑特征库中。具体流程如下:
参见图6所示,在步骤S210生成神经网络的计算图之后,如步骤S220所示,将计算图分割成粗粒度的子图。这里提到的粗粒度子图分割可以是与图2的实施例中计算图的分割相同的技术。例如,采用基于邻接矩阵的聚类图割算法将计算图分割成若干个粗粒度子图。可以采用本领域中其他已知的各种子图分割技术,可以是但不限于K-Means、图团体检测(Graph Community Detection)等。
然后,如步骤S230所示,与图2的步骤S130类似,生成该粗粒度子图的拓扑信息,例如该子图的拓扑特征向量。采用图2实施例中描述的采用图神经网络GraphSAGE和前馈NN网络的方式来生成子图的拓扑特征向量。
然后,如步骤S240所示,查询拓扑特征库,确定其中是否存在与至少一个分割的粗粒度子图拓扑一致的已知子图的优化策略。如果有,则如步骤S282和步骤S284所示,从拓扑特征库中提取相应的优化策略,对该至少一个分割的粗粒度子图应用优化策略。如果没有,则如步骤S250所示,对该粗粒度子图进一步分割成若干个细粒度子图。
如图7所示,可以采用最大流最小割的方式将粗粒度子图切割成细粒度子图。具体步骤如下:设置子图的各个边上的权重。例如,根据执行神经网络编译的软件栈的优化项(如算子的缓冲区(buffer)数据复用、数据流模板匹配等)来设置子图的各个边上的权重;按照子图上权重的顺序,从小到大来切割子图的边。上述设置边的权重的方式是示例性的,还可以采用本领域已知的其他标准来设置边的权重。
如图7所示,首先,切割子图上权重最小的边,例如图4中权重为1的边;其次,切割权重值较大的边,例如权重为2的边;从而获得如图7最右侧所示的仅包括两个节点的子图。图7的细粒度分割仅是示例性,不是必须要分割到如图7最右侧所示仅包括两个节点的子图。可以根据需要设置细粒度分割的粒度。
通过上述分割而生成了细粒度的子图之后,如步骤S260所示,进一步查询该拓扑特征库,来确定是否存在与至少一个细粒度子图拓扑一致的已知子图的优化策略。如果是,则如步骤S282和步骤S284所示,从拓扑特征库中提取相应的优化策略,对该至少一个细粒度子图应用优化策略。
如果否,则如步骤S270所示,对该至少一个细粒度子图进行编译优化计算,优化之后,生成对应的优化策略,然后如步骤S280所示,将该至少一个新的细粒度子图的拓扑信息及其对应的优化策略添加到拓扑特征库中。也可以是针对分割前的至少一个新的粗粒度子图进行编译优化计算,优化之后,生成对应的优化策略,然后将分割前的至少一个新的粗粒度子图的拓扑信息及其对应的优化策略添加到拓扑特征库中。
与图2的实施例类似,初始化时,在拓扑特征库中存储若干已知的子图的拓扑信息和对应的优化策略。在之后的各种神经网络的计算图的编译优化时,如果遇到新的子图,对新的子图进行优化计算,之后可以将新的子图及其优化策略添加到该拓扑特征库中以便于以后再次遇到该子图时可以从拓扑特征库中直接检索出相应的优化策略来对该子图应用该 优化策略,避免对已知神经网络的子图进行重复地优化计算,提升编译速度。
本申请的上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序代码或计算机程序指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
所述计算机程序代码或计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序代码或计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤等)或无线(例如红外、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘和磁带;可以是光介质,例如DVD;也可以是半导体介质,例如固态硬盘(Solid State Disk,SSD)等。
本申请的附图中的流程图和框图示出了根据本申请的各个实施例的系统和方法的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序来发生。例如,两个连续的方框实际上可以基本并行地执行,他们有时也可以按照相反的顺序执行,这取决于这些逻辑的功能。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件或计算机指令的组合来实现。
下面参照图8详细描述执行本申请实施例的方法的一种神经网络编译服务器100。
如图8所示,神经网络编译服务器100可以是本领域已知的各种计算图编译服务器,或者是其他各种类型的本领域已知的实现神经网络编译优化的服务器。
神经网络编译服务器100包括处理器110、神经网络处理器120、存储装置130和加密芯片140。
该处理器110可以是通用处理器,也可以是为特定技术领域专门设计的处理器。例如,该处理器可以是中央处理单元(center processing unit,CPU),也可以是数字信号处理器(digital signal processor,DSP)、微控制器(micro control unit,MCU)等各种类型处理器。例如,处理器110可以例如是Intel或者ARM等各种类型的单核或者多核CPU处理器,例如Intel Xeon CPU。
神经网络处理器120可以是各种类型的神经网络专用处理器,例如为人工智能(artificial intelligence,AI)应用专门设计的处理器,包括但不限于神经网络处理器(neural network processing unit,NPU)、GPU、张量处理器(tensor processing unit,TPU)等。
本申请所使用的术语“神经网络专用处理器”,也可简称为“神经网络处理器”或者“NN处理器”。神经网络专用处理器可以被实现为深度学习专用处理器或者深度学习处理器。
存储装置130可以存储本申请实施例的拓扑特征库132。拓扑特征库(即知识库)132 用于记录神经网络的拓扑信息和其对应的编译优化策略。拓扑特征库(即知识库)132可以采用高速的内存数据库,例如Mango数据库,或者也可以采用其他类型的各种数据库。存储装置130可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。ROM可以存储处理器需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如,磁盘或光盘、闪存)作为永久存储装置。上述神经网络编译服务器100的架构是示例性的,也可以包括其他各种类型的硬件架构来实现本申请实施例的方法。
存储装置130还存储计算机程序代码或者计算机程序指令,其被神经网络编译服务器100处理时,可以使神经网络编译服务器100执行本申请上述神经网络编译优化方法。
在执行本申请上述实施例的方法时,处理器110配置成执行本申请实施例的方法的主要步骤。在执行例如步骤S130时,执行Hash算法(例如MD5)来编码节点属性信息的步骤由专门的加密芯片140(例如符合国密标准的硬加速芯片140)来执行。上述实施例的方法中采用图神经网络GraphSAGE和前馈NN网络来生成子图的拓扑特征向量的步骤由神经网络处理器120来执行。
图9示出了根据本申请实施例可用于实现上述神经网络编译优化方法的一种计算设备200的结构示意图。
参见图9,计算设备200包括处理器210和存储器220。本申请的计算设备可以是各种类型的计算设备,包括但不限于,各种云端计算设备、各种网络(例如有线或者无线通信网络、智能电力网络、物联网等)的边缘计算设备、用户终端设备等等。
处理器210可以是一个多核处理器,也可以包含多个处理器。在一些实施例中,处理器210可以包含一个通用主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)、神经网络处理器(neural network processing unit,NPU),张量处理器(tensor processing unit,TPU)等。存储器220可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。ROM可以存储处理器220需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如,磁盘或光盘、闪存)作为永久存储装置。另外,在一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器220可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM、SRAM、SDRAM、闪存、可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器220可以包括可读和/或可写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如,DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如,SD卡、minSD卡、Micro-SD卡等)、磁性软盘等。
存储器220上存储有计算机程序代码或者计算机程序指令,当计算机程序代码或者计算机程序指令被处理器210处理时,可以使处理器210执行本申请上述神经网络编译优化 方法。
此外,本申请的方法还可以实现为一种计算机程序或者计算机程序产品,该计算机程序或者计算机程序产品包括用于执行本申请的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本申请还可以实施为一种非暂时性机器可读存储介质(或者计算机可读存储介质、或者机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或者计算机指令代码)被电子设备(或者计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
图10示出了根据本申请实施例可用于实现上述神经网络编译优化方法的一种神经网络编译优化装置300。所述神经网络编译优化装置00包括分割单元310,查询单元320和优化单元330。
在执行本申请实施例的方法时,所述分割单元310,配置成用于将神经网络的计算图分割成若干个子图;所述查询单元320,配置成用于查询拓扑特征库中是否存在与该至少一个分割的子图的拓扑一致的已知子图的优化策略;所述优化单元330,配置成用于:如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知拓扑的优化策略来优化该至少一个子图。
进一步地,所述拓扑特征库包括已知子图的拓扑特征向量和对应的优化策略,所述查询单元320进一步配置成用于:查询是否存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略。
进一步地,如果不存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元330进一步配置成用于:对该至少一个分割的子图执行编译优化计算;在该至少一个分割的子图的编译优化之后,生成该至少一个分割的子图的优化策略;将该至少一个分割的子图的拓扑特征向量及其优化策略相关联地添加到拓扑特征库中。
进一步地,所述优化单元330配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定该至少一个分割的子图的等效子图,将该至少一个分割的子图替换成等效子图;所述优化单元330配置成用于:在执行所述添加时,将该至少一个分割的子图的拓扑特征向量和等效子图的拓扑特征向量关联地存储在拓扑特征库中。
进一步地,所述优化单元330配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定子图中多个部分能够合并而降低该子图的计算量或者提升该子图的计算速度,将所述多个部分进行合并,所述优化单元330配置成用于:在执行所述添加时,将该子图的拓扑特征向量和合并后的子图的拓扑特征向量关联地添加到拓扑特征库中。
进一步地,所述优化单元330配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定所述子图的等效常量,将该子图替换成该常量;所述优化单元330配置成用于:在执行所述添加时,将该子图的拓扑特征向量和该常量关联地添加到拓扑特征库中。
进一步地,所述分割单元310进一步配置成用于:采用聚类技术将计算图分割成粗粒度的子图。
进一步地,如果不存在与至少一个分割的粗粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述分割单元310配置成用于:将至少一个分割的粗粒度子图分割成若干个细粒度子图;所述查询单元320配置成用于:查询拓扑特征库中是否存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略;如果存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元330配置成用于:从拓扑特征库中提取与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略来优化该至少一个细粒度子图。
进一步地,如果不存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元330配置成用于:对该至少一个细粒度子图执行编译优化计算;生成该至少一个细粒度子图的优化策略;将该至少一个细粒度子图的拓扑特征向量及其优化策略添加到拓扑特征库中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (21)
- 一种神经网络编译优化方法,包括:将神经网络的计算图分割成若干个子图;查询拓扑特征库中是否存在与至少一个分割的子图的拓扑一致的已知子图的优化策略;如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知子图的优化策略来优化该至少一个子图。
- 根据权利要求1所述的方法,所述拓扑特征库包括已知子图的拓扑特征向量和对应的优化策略,所述查询的步骤包括查询是否存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略。
- 根据权利要求2所述的方法,其中,所述方法进一步包括:如果不存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略,则对该至少一个分割的子图执行编译优化计算;在该至少一个分割的子图的编译优化之后,生成该至少一个分割的子图的优化策略;将该至少一个分割的子图的拓扑特征向量及其优化策略相关联地添加到拓扑特征库中。
- 根据权利要求3所述的方法,其中,对该至少一个分割的子图执行编译优化计算包括通过优化计算来确定该至少一个分割的子图的等效子图,将该至少一个分割的子图替换成等效子图;所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量和等效子图的拓扑特征向量关联地存储在拓扑特征库中。
- 根据权利要求3所述的方法,其中,对该至少一个分割的子图执行编译优化计算包括确定该至少一个分割的子图中的多个部分能够合并而降低该子图的计算量或者提升该子图的计算速度,将所述多个部分进行合并,所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量和合并后的子图的拓扑特征向量关联地添加到拓扑特征库中。
- 根据权利要求3所述的方法,其中,对该至少一个分割的子图执行编译优化计算包括确定所述该至少一个分割的子图的等效常量,将该至少一个分割的子图替换成等效常量,所述添加的步骤包括,将该至少一个分割的子图的拓扑特征向量好和等效常量关联地添加到拓扑特征库中。
- 根据权利要求1-3中任一项所述的方法,其中,所述分割的步骤包括采用聚类技术将计算图分割成若干个粗粒度的子图。
- 根据权利要求7所述的方法,其中,所述方法进一步包括:如果不存在与至少一个分割的粗粒度子图的拓扑特征向量一致的已知子图的优化策略,则将至少一个分割的粗粒度子图分割成若干个细粒度子图,查询拓扑特征库中是否存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略;如果存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则从拓扑特征库中提取与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略来优化该至少一个细粒度子图。
- 根据权利要求8所述的方法,其中,如果不存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则:对该至少一个细粒度子图执行编译优化计算;生成 该至少一个细粒度子图的优化策略;将该至少一个细粒度子图的拓扑特征向量及其优化策略添加到拓扑特征库中。
- 一种用于神经网络编译优化的装置,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的程序指令,以使所述装置实现所述权利要求1至9中任一项所述的方法。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质中存储了程序代码,所述程序代码被计算机执行时,实现所述权利要求1至9中任一项所述的方法。
- 一种计算机程序产品,其中,所述计算机程序产品包含的程序代码被计算机执行时,实现所述权利要求1至9中任一项所述的方法。
- 一种神经网络编译优化的装置,包括:分割单元,配置成用于将神经网络的计算图分割成若干个子图;查询单元,配置成用于查询拓扑特征库中是否存在与该至少一个分割的子图的拓扑一致的已知子图的优化策略;优化单元,配置成用于:如果存在,则从该拓扑特征库中提取与该至少一个分割的子图的拓扑一致的已知拓扑的优化策略来优化该至少一个子图。
- 根据权利要求13所述的装置,所述拓扑特征库包括已知子图的拓扑特征向量和对应的优化策略,所述查询单元进一步配置成用于:生成该至少一个分割的子图的拓扑特征向量,查询是否存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略。
- 根据权利要求14所述的装置,其中,如果不存在与该至少一个分割的子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元进一步配置成用于:对该至少一个分割的子图执行编译优化计算;在该至少一个分割的子图的编译优化之后,生成该至少一个分割的子图的优化策略;将该至少一个分割的子图的拓扑特征向量及其优化策略相关联地添加到拓扑特征库中。
- 根据权利要求15所述的装置,其中,所述优化单元配置成用于:在对该至少一个分割的子图执行编译优化计算时,通过优化计算来确定该至少一个分割的子图的等效子图,将该至少一个分割的子图替换成等效子图;所述优化单元配置成用于:在执行所述添加时,将该至少一个分割的子图的拓扑特征向量和等效子图的拓扑特征向量关联地存储在拓扑特征库中。
- 根据权利要求15所述的装置,其中,所述优化单元配置成用于:在对该至少一个分割的子图执行编译优化计算时,确定子图中多个部分能够合并而降低该子图的计算量或者提升该子图的计算速度,将所述多个部分进行合并,所述优化单元配置成用于:在执行所述添加时,将该子图的拓扑特征向量和合并后的子图的拓扑特征向量关联地添加到拓扑特征库中。
- 根据权利要求15所述的装置,其中,所述优化单元配置成用于:在对该至少一个分割的子图执行编译优化计算时,对该子图执行编译优化计算包括确定所述子图的等效常量,将该子图替换成该常量;所述优化单元配置成用于:在执行所述添加的步骤时,将该子图的拓扑特征向量和该 常量关联地添加到拓扑特征库中。
- 根据权利要求13-15中任一项所述的装置,其中,所述分割单元进一步配置成用于:采用聚类技术将计算图分割成粗粒度的子图。
- 根据权利要求19所述的装置,其中,如果不存在与至少一个分割的粗粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述分割单元配置成用于:将至少一个分割的粗粒度子图分割成若干个细粒度子图;所述查询单元配置成用于:查询拓扑特征库中是否存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略;如果存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元配置成用于:从拓扑特征库中提取与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略来优化该至少一个细粒度子图。
- 根据权利要求20所述的装置,其中,如果不存在与至少一个细粒度子图的拓扑特征向量一致的已知子图的优化策略,则所述优化单元配置成用于:对该至少一个细粒度子图执行编译优化计算;生成该至少一个细粒度子图的优化策略;将该至少一个细粒度子图的拓扑特征向量及其优化策略添加到拓扑特征库中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/123708 WO2022087788A1 (zh) | 2020-10-26 | 2020-10-26 | 一种神经网络编译优化方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116368494A true CN116368494A (zh) | 2023-06-30 |
Family
ID=81381557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080106362.2A Pending CN116368494A (zh) | 2020-10-26 | 2020-10-26 | 一种神经网络编译优化方法和相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116368494A (zh) |
WO (1) | WO2022087788A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170686A (zh) * | 2023-11-03 | 2023-12-05 | 深圳鲲云信息科技有限公司 | 用于神经网络编译优化的方法及计算设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115268936B (zh) * | 2022-09-27 | 2022-12-27 | 之江实验室 | 一种用于计算图编译的优化方法及装置 |
CN116126346B (zh) * | 2023-04-04 | 2023-06-16 | 上海燧原科技有限公司 | Ai模型的代码编译方法、装置、计算机设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321999B (zh) * | 2018-03-30 | 2021-10-01 | 赛灵思电子科技(北京)有限公司 | 神经网络计算图优化方法 |
CN110764744B (zh) * | 2018-07-25 | 2023-12-08 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN110766147B (zh) * | 2018-07-25 | 2022-10-11 | 赛灵思公司 | 神经网络编译器架构及编译方法 |
KR20200053318A (ko) * | 2018-11-08 | 2020-05-18 | 삼성전자주식회사 | 인공 신경망의 연산 처리 그래프를 관리하는 시스템 및 이를 이용한 연산 처리 그래프를 관리하는 방법 |
US11188454B2 (en) * | 2019-03-25 | 2021-11-30 | International Business Machines Corporation | Reduced memory neural network training |
CN111813949B (zh) * | 2020-05-18 | 2022-06-24 | 中国人民解放军国防科技大学 | 联合查询的网络空间知识图谱推理方法和装置 |
-
2020
- 2020-10-26 CN CN202080106362.2A patent/CN116368494A/zh active Pending
- 2020-10-26 WO PCT/CN2020/123708 patent/WO2022087788A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170686A (zh) * | 2023-11-03 | 2023-12-05 | 深圳鲲云信息科技有限公司 | 用于神经网络编译优化的方法及计算设备 |
CN117170686B (zh) * | 2023-11-03 | 2024-03-12 | 深圳鲲云信息科技有限公司 | 用于神经网络编译优化的方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022087788A1 (zh) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579063B (zh) | 一种用于深度学习编译器中探索优化空间的加速方法 | |
Hamerly et al. | Accelerating Lloyd’s algorithm for k-means clustering | |
US10901715B1 (en) | Lazy compilation and kernel fusion in dynamic computation graphs | |
CN116368494A (zh) | 一种神经网络编译优化方法和相关装置 | |
US8959138B2 (en) | Distributed data scalable adaptive map-reduce framework | |
EP3572952A1 (en) | Unified optimization of iterative analytical query processing | |
US20160140152A1 (en) | Intelligent compiler for parallel graph processing | |
US20200034750A1 (en) | Generating artificial training data for machine-learning | |
CN113283613B (zh) | 深度学习模型的生成方法、优化方法、装置、设备及介质 | |
US10671607B2 (en) | Pipeline dependent tree query optimizer and scheduler | |
JP6237278B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
CN111860816A (zh) | 神经网络模型的编译方法、装置、设备及存储介质 | |
Zhi Kang et al. | Efficient deep learning pipelines for accurate cost estimations over large scale query workload | |
US20210295158A1 (en) | End-to-end optimization | |
JP5846006B2 (ja) | プログラム、コード生成方法および情報処理装置 | |
US20240095241A1 (en) | Data search method and apparatus, and device | |
Makanju et al. | Deep parallelization of parallel FP-growth using parent-child MapReduce | |
CN106599122B (zh) | 一种基于垂直分解的并行频繁闭序列挖掘方法 | |
CN115017549A (zh) | 隐私计算、隐私数据和联邦学习的决策树计算装置及系统 | |
Gupta et al. | Map-based graph analysis on MapReduce | |
CN117807091A (zh) | 数据的关联方法及装置 | |
US20180052692A1 (en) | Systems and methods for task parallelization | |
CN114281339A (zh) | 程序编译方法、编译器、设备及存储介质 | |
Abdolazimi et al. | Connected components of big graphs in fixed mapreduce rounds | |
Gupta et al. | Distributed Incremental Graph Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |