首页> 中国专利> 多元算子优化、图优化和图计算的方法、装置及设备

多元算子优化、图优化和图计算的方法、装置及设备

摘要

本发明提供了一种多元算子的优化方法、图优化的方法、图计算的方法、装置及设备。所述方法包括:将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少;将拆分后得到的多个子算子作为所述多元算子的优化结果。本发明实施例将多元算子优化成若干固定输入元数的子算子,一方面,优化后得到的多个子算子,由于子算子的数量较少,输入张量的切片变少,I/O数量减少,从DDR搬运数据的效率较高,从而提高了设备的运算速度。

著录项

  • 公开/公告号CN113326466A

    专利类型发明专利

  • 公开/公告日2021-08-31

    原文格式PDF

  • 申请/专利权人 中科创达软件股份有限公司;

    申请/专利号CN202110384942.4

  • 发明设计人 田光亚;朱勇;

    申请日2021-04-09

  • 分类号G06F17/11(20060101);G06N3/063(20060101);

  • 代理机构11635 北京思格颂知识产权代理有限公司;

  • 代理人潘珺;杨超

  • 地址 100083 北京市海淀区清华东路9号创达大厦1层101-105室(东升地区)

  • 入库时间 2023-06-19 12:24:27

说明书

技术领域

本发明涉及数据处理技术领域,特别涉及一种多元算子的优化方法、图优化的方法、图计算的方法、装置及设备。

背景技术

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(DeepLearning)的代表算法之一。

卷积神经网络引擎是一种对卷积神经网络进行前向计算的计算引擎,在前向计算过程中,分层计算是它的特点,数据从输入层输入,根据计算图逐算子地分层进行运算,直到输出层。其中,图(Graph)是一种表示对象关联关系的抽象数据结构,按照计算图来进行图计算,即使用图作为数据模型来表达问题并予以解决。

根据计算图进行前向计算过程中,每个算子都是计算图中的一个计算节点,算子从广义的角度来说,是对任何函数进行的某一项操作,以Concat算子为例,实现的是将多个算子进行拼接的操作。甚至求幂次、开方也可认为是一种算子。不同算子可实现一个输入元至多个输入元的运算,N元算子实现的是将N个输入算子(元素或集合)进行某项操作以形成另外一个算子(元素或集合)的运算。

在一个典型的图计算的方式中,在设备侧,对于多元算子,首先根据输入张量长度、张量数量、动态地计算RAM上的存储空间如何排列,以及从DDR搬运数据至RAM的循环次数,其实现结构复杂、耗费寄存器较多,对设备的性能要求较高,对性能的设备显然不够友好,另外,任意数量的输入元,会造成每个输入元都被精细地分块,极大的增加输入输出(Input and Output,I/O)的数量,使得整体运算效率低下。

因此,为了提高的设备的运算速度,充分利用设备侧的寄存器,减少I/O的数量,对多元算子进行优化显得非常必要,如何对多元算子进行优化,以实现从整体上加快推理引擎的处理速度,已成为该领域的热点研发问题。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种多元算子的优化方法、图优化的方法、图计算的方法、装置及设备。

第一方面,本发明实施例提供一种多元算子的优化方法,包括:

将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少;

将拆分后得到的多个子算子作为所述多元算子的优化结果。

在一个实施例中,将待优化的多元算子,拆分为多个预设输入元数的子算子,包括:

根据待优化的多元算子的输入元数,以及第一子算子集合中子算子的输入元数,按照预设的贪心策略,从第一子算子集合中挑选子算子;所述第一子算子集合中包含预设的至少两个输入元数彼此不同的子算子;

根据挑选出的子算子,生成第二子算子集合,以使得采用所述第二子算子集合中的子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少。

在一个实施例中,按照贪心策略,所述从第一子算子集合中挑选子算子,根据挑选出的子算子,生成第二子算子集合,包括:

从所述第一子算子集合中,从输入元数最大的开始,按照大小顺序依次选择子算子;

针对每次选择的当前子算子,判断除了所有已选择的子算子为所述分层计算提供的输入元数之外,所述多元算子剩余的输入元数是否大于零;

若判断所述剩余的输入元数大于零,则将所述当前子算子放入第二子算子集合中;并再次选择当前子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至所述多元算子剩余的输入元数小于等于零;

若判断多元算子剩余的输入元数小于等于零,则放弃当前子算子,并从所述第一子算子集合中,选择输入元数大小次于所述当前子算子的子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至所述第一子算子集合中的所有子算子都已被选择过。

在一个实施例中,所述方法还包括:

从第二子算子集合中输入元数最小的子算子开始,依次累计子算子输入元数总和;

在第一子算子集合中查找是否存在输入元数大于所述输入元数总和的最小子算子;

若存在,则将参与输入元数累计的子算子的运行时间总和与所述最小子算子的运行时间进行比较;

若所述运行时间总和大于所述最小子算子的运行时间,则在第二子算子集合中,使用所述最小子算子,替换所述参与输入元数累计的所有子算子。

在一个实施例中,若所述运行时间总和小于等于所述最小子算子的运行时间,则保持所述第二子算子集合不变。

第二方面,本发明实施例提供一种图优化的方法,包括:

对计算图中的算子进行扫描;

在扫描到输入元数大于2的算子时,执行如前述的多元算子的优化方法对所述算子进行优化;

在所述计算图中,使用第二子算子集合替换对应的所述算子。

第三方面,本发明实施例提供一种图计算的方法,包括:

使用如前述图优化的方法,对计算图进行优化;

按照优化后的计算图进行图计算。

第四方面,本发明实施例提供一种多元算子的优化装置,包括:

拆分模块,用于将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少;

优化模块,用于将拆分后得到的多个子算子作为所述多元算子的优化结果。

第五方面,本发明实施例提供一种计算图模型,所述图模型中包含的输入元大于2的算子被第二子算子集合所替换;所述第二子算子集合,采用如前述的多元算子的优化方法得到。

第六方面,本发明实施例提供一种处理器,所述处理器用于实现如前述的多元算子的优化方法、或者前述的图优化的方法或者如前述的图计算的方法。

第七方面,本发明实施例提供一种设备,包括:存储器和处理器;其中,所述存储器存储有计算机程序,所述程序被处理器执行时能够实现如前述的多元算子的优化方法、或者如前述的图优化的方法或如前述的图计算的方法。

第八方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时能够实现如前述的多元算子的优化方法、或者如前述图优化的方法或者如前述的图计算的方法。

本发明实施例提供的上述技术方案的有益效果至少包括:

本发明实施例提供的多元算子的优化方法、图优化的方法、图计算的方法、装置及设备,对待优化的多元算子,将其拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少,使用拆分后多个子算子来替代该多元算子,从而实现对多元算子的优化;本发明实施例将多元算子优化成若干固定输入元数的子算子,一方面,优化后得到的多个子算子,由于子算子的数量较少,输入张量的切片变少,I/O数量减少,从DDR搬运数据的效率较高,从而提高了设备的运算速度,另一方面,采用若干固定输入元数的子算子的集合来替换原有的多元算子,也能简化设备对输入元数量的判定、内存切片和循环次数计算的操作的难度,使设备更能专注于算子运算本身,节约运行时间和计算资源,降低设备性能要求的同时,提高设备的运算效率,避免了现有未优化多元算子所带来的随意数量的输入元所带来的I/O次数的增加、运算效率低下和对设备性能要求较高等等问题。

进一步地,本发明实施例提供的多元算子的优化方法,在得到第二子算子集合后,再次根据第二子算子集合中较小的子算子的运行时间之和,与第一子算子集合中仅大于这些较小子算子输入元之和的子算子的运行时间相比,如果后者小于前者,就使用这个较大输入元的子算子替换掉所有这些较小子算子,因为在设备中,在多元算子总时间开销中,从DDR搬运数据耗时占比较多,而处理器的计算耗时占比相对较低,因此,采用了这种较大子算子替换多个较小子算子的办法,虽然在存储空间上做出了些许牺牲,但是在满足输入元数量的前提下,第二子算子集合中的算子总数量减少,可进一步换取I/O数量的减少,整体上降低I/O损耗,提高设备的计算速度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例提供的多元算子的优化方法的流程图;

图2为本发明实施例提供的多元算子的优化方法中步骤S11的具体实现图;

图3为本发明实施例提供的具体实例的计算流程图;

图4为本发明实施例提供的栈S的示意图;

图5为本发明实施例提供的多个不同子算子运算过程示意图;

图6为本发明实施例提供的具体实例的又一计算流程图;

图7为本发明实施例提供的图优化的方法的流程图;

图8为本发明实施例提供的一个计算图的示例图;

图9为本发明实施例提供的图计算的方法的流程图;

图10为本发明实施例提供的多元算子的优化装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

下面结合附图,对本发明实施例提供的多元算子的优化方法、图优化的方法、图计算的方法、装置和设备的具体实施方式分别进行说明。

本发明实施例提供的多元算子的优化方法,参照图1所示,包括下述步骤:

S11、将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于多元算子的输入元数,且拆分所得到的子算子数量最少;

S12、将拆分后得到的多个子算子作为多元算子的优化结果。

本发明实施例提供的上述多元算子的优化方法,将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少,使用拆分后多个子算子来替代该多元算子,从而实现对多元算子的优化,将多元算子优化成一方面,优化后得到的多个子算子,由于子算子的数量较少,输入张量的切片变少,I/O数量减少,从DDR搬运数据的效率较高,从而提高了设备的运算速度,另一方面,采用若干固定输入元数的子算子的集合来替换原有的多元算子,也能简化设备对输入元数量的判定、内存切片和循环次数计算的操作的难度,使设备更能专注于算子运算本身,节约运行时间和计算资源,降低设备性能要求的同时,提高设备的运算效率,避免了现有未优化多元算子所带来的随意数量的输入元所带来的I/O次数的增加、运算效率低下和对设备性能要求较高等等问题。

具体来说,上述步骤S11中将待优化的多元算子,拆分为多个预设输入元数的子算子,参照图2所示,可通过下述流程实现:

S21、根据待优化的多元算子的输入元数,以及第一子算子集合中子算子的输入元数,按照预设的贪心策略,从第一子算子集合中挑选子算子;第一子算子集合中包含预设的至少两个输入元数彼此不同的子算子;

为了对多元算子进行优化,需要根据多元算子的特点以及使用场景,分别准备若干个固定输入元数的子算子,例如对于Concat算子,可以预设2输入、3输入、4输入和8输入元数的多种形式的子算子,这些子算子组成一个子算子集合,为了方便,在本发明实施例中称其为第一子算子集合。

第一子算子集合中的各子算子的输入元彼此均不相同。

S22、根据挑选出的子算子,生成第二子算子集合,以使得采用第二子算子集合中的子算子进行分层计算时总输入元数不小于多元算子的输入元数,且拆分所得到的子算子数量最少。

在第一子算子集合中,不同子算子由于输入元数不一样,单纯从处理器对算子进行计算的时间(又称为算子独立运行的时间)上来看,通常输入元数较小的子算子,其运行时间也较短,存储空间占用较小,反之,输入元数较大的子算子,其运行时间也较长,存储空间占用较大。

但从整个算子的运算过程来看,算子计算总的时间开销,不仅包含处理器对每个算子计算的时间,还包含将数据从DDR搬运至寄存器(例如RAM)中的过程,并且,后者耗费时间占比大于前者,要达到同样的输入元数量,如果想要整体计算效率高,则会要求I/O的数量尽量的少,也就是说,在选择子算子时,从输入元数最大的子算子开始,按照输入元数多少,逐次向输入元数小的子算子选择。

上述步骤S21在具体实施时可使用贪心算法。贪心算法是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优解出发来考虑,它所做出的仅是在某种意义上的局部最优解,贪心算法的一个具体应用场景中,在购物找零钱的场景下,因为只能使用固定面值的硬币,为使找回的零钱的硬币数最少,不要求找零钱的所有方案,而是从最大面值的币种开始,按递减的顺序考虑各面额,先尽量用大面值的面额,当剩余的金额不足大面值时才去考虑下一个较小面值。

回到本发明实施例的这个多元算子优化的场景,与此找零钱的原理类似,需要在每次选择时,尽量选择当前能选的最大输入元数的子算子,只有当剩下的输入元数不足以使用该子算子时,才去考虑下一个次大的输入元数的子算子,以此类推,直至所选择的所有的子算子进行分层计算时总的输入元数已经能够满足待优化的多元算子的输入元数量的要求时,算法停止。

具体来说,若使用贪心算法,上述步骤S21和步骤S22,可以先从所述第一子算子集合中,从输入元数最大的开始,按照大小顺序依次选择子算子;

针对每次选择的当前子算子,判断除了所有已选择的子算子为分层计算提供的输入元数之外,多元算子剩余的输入元数是否大于零;

若判断剩余的输入元数大于零,则将当前子算子放入第二子算子集合中;并再次选择当前子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至多元算子剩余的输入元数小于等于零;

若判断多元算子剩余的输入元数小于等于零,则放弃当前子算子,并从第一子算子集合中,选择输入元数大小次于当前子算子的子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至第一子算子集合中的所有子算子都已被选择过。

以一个具体的实现流程为例说明上述实现过程。因为在第一子算子集合中,每个子算子都对应有不同的输入元数,所以,不同的输入元数,即代表了第一子算子集合中不同的子算子,为了简化说明,在本流程中,将子算子的选择过程,简化为对子算子输入元数的计算过程。假设待优化的多元算子为N元算子,为该N元算子,预先设置了n种子算子,其输入元数按照从大到小降序排列依次为:x

在该参照图3所示,该流程包括下述步骤:

S31、从集合U中选择x

x

S32、计算N=N-(x

S33、判断N是否小于等于0;若判断为是,则执行下述步骤S35,否则执行下述步骤S34;

S34、将子算子xi压栈到栈S中,并循环执行S31;

S35、计算N=N+(xi-1),并继续执行下述步骤S36;

S36、执行i自加1的计算,并继续执行S37;

S37、判断i是否超过预设的子算子个数;若超过,则结束该流程,若未超过,则重复执行S31。

下面以20元的算子优化过程为例,预设的子算子为2输入、3输入、4输入、8输入元数的四种子算子,对应上述流程则N=20,集合U为{8、4、3、2},实现过程如下:

1)、i从1开始,从集合U中选择x

2)、继续从集合中选择x

3)、继续从集合中选择x

4)、从集合中选择x

5)、从集合中选择x

6)、从集合中选择x

7)、从集合中选择x

8)、从集合中选择x

栈S中,从上到下,各输入元数分别对应了3输入元数子算子、4输入元数子算子、8输入元数子算子和8输入元数子算子,计算时,其操作顺序为栈S从下到上的顺序,也就是依次执行8输入元数子算子、8输入元数子算子、4输入元数子算子和3输入元数子算子。

参照图5所示,由于分层运算时,上一层的计算结果会传递至下一层,因此,按照上述8输入元数子算子、8输入元数子算子、4输入元数子算子和3输入元数子算子依序分层运算时,第一层需要输入8个数,第二层需要输入7个数,第三层需要输入3个数,第四层需要输入2个数,其所需的输入元之和为:8+7+3+2=20元,与待优化的20元算子的输入元数一致。

如前述,由于算子计算总的时间开销中,将数据从DDR搬运至寄存器(例如RAM)中的过程的时间开销,要远大于处理器单独计算算子的过程的时间开销相比,因此,在满足总的输入元数的要求的基础上,可以进一步地对小端子算子进行合并(例如上例中的3输入元数子算子、4输入元数子算子),将它们替换成输入元数较两者输入元数之和稍大一点的子算子,虽然牺牲了一点寄存器的存储空间,但可进一步减少第二子算子集合中子算子的数量,也就进一步降低了I/O的数量,充分利用硬件资源,平衡计算资源的损耗和存储开销,提升了整体的运算效率。

在本发明实施例中,进一步地可以从第二子算子集合中输入元数最小的子算子开始,依次累计子算子输入元数总和;然后在第一子算子集合中查找是否存在输入元数大于输入元数总和的最小子算子(也即输入元数仅大于前述输入元数总和的子算子);

若存在,则将参与输入元数累计的子算子的运行时间总和与最小子算子的运行时间进行比较;

若运行时间总和大于最小子算子的运行时间,则在第二子算子集合中,使用最小子算子,替换参与输入元数累计的所有子算子。

具体来说,上述过程可通过如图6所示的算法流程图实现,在该算法流程中,预先分别统计每个子算子的独立运行时间,t=g(x)。为了简化计算,依然是通过对子算子输入元数的计算,实现对小端子算子的合并。

参照图6所示,该流程图包括下述步骤:

S61、依序从S弹栈获得输入元数x

S62、累计输入元数,即计算X=X+x

S63、累计子算子的独立运行时间开销T=T+g(x

S64、将x

S65、在集合U中查找仅大于X的最小输入元数x

S66、判断X是否大于

S67、判断T是否小于最小输入元数x

S68、将x

在执行完上述S61~S68的步骤后,将S

还是以前述20元的算子优化过程为例,预设的子算子为2输入、3输入、4输入、8输入元数的四种子算子,经过前述图3所示的流程后,得到S栈中输入元数从上至下依次为:{3、4、8、8}。

本流程中,分别计算集合U中各输入元数的子算子的独立运行时间开销:g(8)、g(4)、g(3)和g(2)以备用。

然后依次执行下面的步骤:

1)’、将xi=3从S栈中弹出,累计输入元数为X=0+3=3;累计子算子的开销T=0+g(3);

将xi=3放入S

2)’、从S栈中继续获得下一个输入元数xi=2(之前的3已被弹栈),累计X=3+4=7;累计算子的时间开销T=g(3)+g(4),将x

这里会分为两种情况:分别为下面的3)’和4)’。

3)’、由于g(3)+g(4)的结果大于g(8),继续执行S68,并将x

在g(3)+g(4)大于g(8)的情况下,继续执行S68,从S中继续弹栈x

此时,最终S中的数据为{8、8、8}。

4)’、另一种情况,由于g(3)+g(4)的结果小于等于g(8),则循环执行S61,也就是放弃了当前选择的这个x

在g(3)+g(4)小于等于g(8)的情况下,继续执行S61,即从S中弹栈出xi=8;累计输入元数X=7+8=15;累计算子开销T=g(3)+g(4)+g(8),将xi=8入队S

本发明实施例还提供了一种图优化的方法,参照图7所示,该方法包括下述步骤:

S71、对计算图中的算子进行扫描;

S72、在扫描到输入元数大于2的算子时,执行前述多元算子的优化方法,对算子进行优化;

S73、在计算图中,使用第二子算子集合替换对应的算子。

这个图优化的过程可以是离线的,在对图进行计算之前,可预先实现上述图优化的方法,将多元算子替换成对应的子算子的集合,以实现设备的运算效率。也可以是在图计算的过程中,一边实现多元算子的优化,一边完成计算图的运算。

一个计算图的例子如图8所示,从计算图的输入算子节点(input)开始,依次扫描,直到发现超过两元输入的运算算子并对该算子进行算子优化操作。

例如F

参照图9所示,本发明实施例还提供了一种图计算的方法,该方法包括:

S91、使用前述图优化的方法,对计算图进行优化;

S92、按照优化后的计算图进行图计算。

如前述,在图优化的方法可以在计算之前都完成,也可以在计算的过程中,一边计算,一边优化,在对应的多元算子计算之前完成优化即可。

基于同一发明构思,本发明实施例还提供了一种多元算子的优化装置、计算图模型、处理器和设备,由于这些装置和客户端所解决问题的原理与前述多元算子的优化方法相似,因此该装置和客户端的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供一种多元算子的优化装置,参照图10所示,包括:

拆分模块101,用于将待优化的多元算子,拆分为多个预设输入元数的子算子,以使得拆分得到的多个子算子进行分层计算时总输入元数不小于多元算子的输入元数,且拆分所得到的子算子数量最少;

优化模块102,用于将拆分后得到的多个子算子作为多元算子的优化结果。

所述拆分模块101,用于根据待优化的多元算子的输入元数,以及第一子算子集合中子算子的输入元数,按照预设的贪心策略,从第一子算子集合中挑选子算子;所述第一子算子集合中包含预设的至少两个输入元数彼此不同的子算子;以及根据挑选出的子算子,生成第二子算子集合,以使得采用所述第二子算子集合中的子算子进行分层计算时总输入元数不小于所述多元算子的输入元数,且拆分所得到的子算子数量最少。

所述拆分模块101,进一步用于从所述第一子算子集合中,从输入元数最大的开始,按照大小顺序依次选择子算子;针对每次选择的当前子算子,判断除了所有已选择的子算子为所述分层计算提供的输入元数之外,所述多元算子剩余的输入元数是否大于零;若判断所述剩余的输入元数大于零,则将所述当前子算子放入第二子算子集合中;并再次选择当前子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至所述多元算子剩余的输入元数小于等于零;若判断多元算子剩余的输入元数小于等于零,则放弃当前子算子,并从所述第一子算子集合中,选择输入元数大小次于所述当前子算子的子算子,重复执行计算多元算子剩余的输入元数并再次判断是否大于零的步骤,直至所述第一子算子集合中的所有子算子都已被选择过。

参照图10所示,该多元算子的优化装置,还包括:算子合并模块103,该算子合并模块103用于从第二子算子集合中输入元数最小的子算子开始,依次累计子算子输入元数总和;在第一子算子集合中查找是否存在输入元数大于所述输入元数总和的最小子算子;若存在,则将参与输入元数累计的子算子的运行时间总和与所述最小子算子的运行时间进行比较;若所述运行时间总和大于所述最小子算子的运行时间,则在第二子算子集合中,使用所述最小子算子,替换所述参与输入元数累计的所有子算子。

本发明实施例还提供了一种处理器,该处理器用于实现如前述的多元算子的优化方法、或者实现如前述的图优化的方法或如前述的图计算的方法。

在一个实施例中,上述处理器为CPU或数字信号处理器(Digital SignalProcessor,DSP)。

本发明实施例还提供了一种设备,该设备包括存储器和处理器;其中,所述存储器存储有计算机程序,所述程序被处理器执行时能够实现如前述多元算子的优化方法、或者如前述的图优化的方法或者如前述的图计算的方法。

本发明实施例还提供了一种非临时性计算机可读存储介质,存储有计算机指令,该指令被处理器执行时能够实现如前述的多元算子的优化方法、或者如前述的图优化的方法或如前述的图计算的方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号