CN113485836B - 一种基于张量切分的张量处理方法和张量处理系统 - Google Patents

一种基于张量切分的张量处理方法和张量处理系统 Download PDF

Info

Publication number
CN113485836B
CN113485836B CN202110823040.6A CN202110823040A CN113485836B CN 113485836 B CN113485836 B CN 113485836B CN 202110823040 A CN202110823040 A CN 202110823040A CN 113485836 B CN113485836 B CN 113485836B
Authority
CN
China
Prior art keywords
target
operators
tensor
original
operator
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.)
Active
Application number
CN202110823040.6A
Other languages
English (en)
Other versions
CN113485836A (zh
Inventor
李国亮
张磊
杨勤富
钱军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hanbo Semiconductor Shanghai Co ltd
Original Assignee
Hanbo Semiconductor Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hanbo Semiconductor Shanghai Co ltd filed Critical Hanbo Semiconductor Shanghai Co ltd
Priority to CN202110823040.6A priority Critical patent/CN113485836B/zh
Publication of CN113485836A publication Critical patent/CN113485836A/zh
Application granted granted Critical
Publication of CN113485836B publication Critical patent/CN113485836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供一种基于张量切分的张量处理方法和系统,该方法包括:确定用于对原始张量进行处理的多个操作算子中的目标算子;将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已组合的目标算子之差集为剩余目标算子;基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算子以外的其他操作算子。本申请能够明显提升对大尺寸张量进行复杂运算的效率。

Description

一种基于张量切分的张量处理方法和张量处理系统
技术领域
本申请涉及计算机信息处理领域,尤其涉及一种基于张量切分的张量 处理方法。
背景技术
近几年来,计算机系统处理能力取得了巨大发展。在某些情况下(例 如处理深度学习神经网络时),会涉及二维或更高维张量的卷积计算。以 二维张量为例,在实际计算时,二维张量的某些参数有时可能会超出硬件 加速器的相关限制,例如张量的高度或宽度可能超出加速器的相应限制, 或者加速器对片上内存、可用的计算资源等可能会进行限制。这些限制都 制约了对大尺寸张量的处理。
为了解决上述问题,为了在上述限制存在的情况下对大尺寸张量进行 预定处理,可以将大尺寸张量进行切分(例如将二维/三维张量在高度上切 分为若干部分),再分别对切分获得的各个部分进行前述预定处理,最后 将各部分的处理结果进行拼接,以获得对原大尺寸张量进行预定处理的处 理结果。一般而言,若需要依次对大尺寸张量进行若干次类似的处理,则 需要在每次处理前切分大尺寸张量,并在处理后将处理结果合并,以供后 续处理。
发明内容
本申请的一个目的是提供一种基于张量切分的张量处理方法和张量 处理系统。
根据本申请的一个方面,本申请提供了一种基于张量切分的张量处理 方法,该方法包括以下步骤:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已 组合的目标算子之差集为剩余目标算子;以及,
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处 理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述 目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
根据本申请的另一方面,本申请提供了一种基于张量切分的张量处理 系统,该系统至少包括:
目标子图获取装置,用于获取包括至少两个目标算子的目标子图,其 中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;以及,
将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已 组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述 张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处 理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目 标子图以及所述剩余目标算子的输入张量分别经切分后输入。
根据本申请的另一方面,本申请提供了一种计算机可读存储介质,该 计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够 实现以上所述的张量处理方法。
根据本申请的另一方面,本申请提供了一种电子设备,该电子设备至 少包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现以上所 述的张量处理方法。
与现有技术相比,本申请提供的基于张量切分的张量处理方法和处理 系统,将相邻的目标算子(对张量进行处理所需的各类计算资源超出系统 资源限制,因而需要将待处理张量切分后进行处理的算子)组合成为一个 子图(即目标子图),进而基于该子图和其他算子进行计算,从而在整体 上减少了通过一系列算子对原大尺寸张量进行若干处理时的“切分-处理- 合并”过程,即对于一个目标子图而言,其输入张量仅需切分一次,在分别依序处理切分所得的各个部分后,再一并合并各个输出结果即可,从而 能够明显提升对大尺寸张量进行复杂运算(例如运算所需的各类计算资源 超出系统资源限制)的效率,且相对于通常的处理方式而言,复杂运算对 应的算子越多,上述处理方式对效率的提升越显著。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本 申请的其它特征、目的和优点将会变得更明显:
图1是本申请一个实施例中张量处理方法的流程图;
图2示出本申请一个实施例中目标子图的构造过程;
图3a和图3b示出本申请另一实施例中目标子图的构造及处理过程;
图4a至图4d示出本申请另一实施例中目标子图的构造及处理过程;
图5a至图5f示出本申请另一实施例中目标子图的构造及处理过程;
图6a和图6b示出本申请一个实施例中张量切分和子图处理的过程。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合 本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部 的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语 “第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺 序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这 里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、 产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚 地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请提供的基于张量切分的张量处理适用于通过硬件加速器对张 量、尤其是大尺寸张量进行处理,例如对张量计算卷积,该处理方法对最 大池化和平均池化也同样适用。以计算张量的卷积为例,硬件加速器通常 有各种限制,例如片上内存的物理限制、其他计算资源的限制,以及这些 限制导致的对输入张量的高度及宽度的限制等。在计算资源有限的情况下,可以通过将待处理的大尺寸张量进行切分、然后分别处理切分获得的 各个部分、最后再将处理结果合并以获得对原待处理张量的处理结果。但 是,如果一系列处理过程涉及多次切分,“切分-处理-合并”过程相应地 也将进行多次。而基于本方案,通过将相邻的目标算子(对张量进行处理 所需的各类计算资源超出系统资源限制,因而需要将待处理张量切分后进 行处理的算子)组合成为一个子图(即目标子图),进而基于该子图和其他算子进行计算,即对于一个目标子图而言,其输入张量仅需切分一次, 在分别依序处理切分所得的各个部分后,再一并合并各个输出结果即可, 从而减少了切分、合并的处理次数,这能够明显提升对大尺寸张量进行复 杂运算(例如运算所需的各类计算资源超出系统资源限制)的效率,且相对于通常的处理方式而言,复杂运算对应的算子越多,上述处理方式对效 率的提升越显著。
下面将以一种张量处理设备为例,详细描述本申请的各个具体实施方 式。
参图1所示,本申请提供了一种基于张量切分的张量处理方法,该方 法包括步骤S100、步骤S200和步骤S300。
其中,在步骤S100中,张量处理设备确定用于对原始张量(待处理 的大尺寸张量)进行处理的多个操作算子中的目标算子。在此,在下面的 描述中可能也会被描述为“待切分算子”,其意义是:该“目标算子”(或 者“待切分算子”)在处理其所运算的张量(或者有时也被称为该算子的 输入张量)时,所需的各类计算资源超出系统资源限制,因而在对输入张 量进行处理前,需要将输入张量切分为若干部分(例如,将二维输入张量 在高度方向上切分为若干个子块),再基于该目标算子(或者待切分算子) 分别对这若干部分进行处理,方能在计算资源的限制下完成本无法完成的对输入张量的处理工作。对张量的切分可以按实际需求进行,例如将二维 输入张量在高度/宽度方向进行切分,或者将三维输入张量在长度/宽度/高 度方向切分,或者将不同的切分策略进行组合,在此不再一一列举。
随后在步骤S200中,张量处理设备将相邻的至少两个目标算子组合 为目标子图,其中所有目标算子与已组合的目标算子之差集为剩余目标算 子。下文将展开对该“剩余目标算子”的处理。随后各图中,各步骤分别 以方块表示算子;其中右上角带有标记的算子表示目标算子。例如参考图 2,左侧为对待处理张量的原处理过程,待处理的输入张量经过一系列的 算子(在图中以方框示出)进行处理。在图2及其他各图中,以四维张量 为例进行说明,则:N表示输入图片数目,或者输入样本数目;C表示张 量通道数;H表示张量高度;W表示张量宽度。例如,一串数字(1,3,256,256) 表示1幅图片,其输入通道为3,高度为256,宽度为256。其中对于这些算子中的一部分,其因为计算资源的限制而无法直接完成对其输入张量的 相应处理,而需要各自将输入张量切分后(切分所得部分的数量或者切分 方式等未必相同),再分别处理切分所得的各个部分,借以实现对整个输 入张量的处理(可选地还需要对各部分的处理结果进行拼合已获得整个输 入张量所对应的正确输出)。
最后,在步骤S300中,张量处理设备基于所述目标子图及其他算子, 按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算 子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入 张量分别经切分后输入。具体地,对于目标子图而言,整个目标子图的输入张量亦依原次序经由已经组合于目标子图中的目标算子进行处理;其 中,在目标子图的输入张量在被处理前,首先需经过划分以获得若干部分, 这若干部分再分别依次经目标子图中的各个目标算子进行处理以获得相 应的处理结果,最后再将这若干部分对应的处理结果拼合而获得单一的输 出,该单一的输出等效于实际对原输入张量进行处理所获得的输出。而对于未组合至任何目标子图的目标算子而言,其输入张量亦经切分成合适数 量的部分后分块处理,随后处理结果再合并以获得正确的输出。
在此,各操作算子可能是卷积算子(用于对输入张量执行卷积计算)、 池化算子(用于对输入张量执行池化计算)或其他可能的张量算子;各实 施例仅作为本申请的示例性说明,而不对本申请的具体实施方式形成任何 限定。
在一些实施例中,上述目标算子是基于一定的筛选条件而确定的。换 句话说,对于一个算子而言,其满足一定的筛选条件时,则判定该算子为 目标算子,并在某些情形下与其相邻的目标算子组合而获得目标子图。上 述筛选条件可以是以下任意一种(或者两种):
1)基于相应操作算子的预期输入张量的高度超出硬件允许值;或者,
2)基于相应操作算子处理其预期输入所需的内存需求超出可用片上 内存。
其中,“预期输入张量”指的是即将由该操作算子进行处理(即输入 该操作算子)的张量,并不一定是实际已经获得的具体张量。事实上,在 操作算子已经确定的情况下,一个确定的输入张量的输出的尺寸或者所需 要的计算资源的数量也是确定的,即,各个目标算子所能处理的输入张量 的尺寸或处理输入张量所需的计算资源的数量是确定的。由此,即可确定一系列操作算子的预期输入张量的尺寸或者所需计算资源是否超出可用 范围。
另外,对于上述第1)种情形,一个输入张量的“高度”仅为一相对 概念,在不同的实施例中,实际可能会对应于“宽度”“长度”等沿着二 维/三维或更高维张量的一条坐标轴的方向,在此不对具体实现方式进行任何限定。
进一步地,对于上述情形2),在一些实施例中,在上述步骤S300中, 张量处理设备基于所述目标子图及其他算子,按原顺序对所述原始张量执 行相应处理,其中基于所述目标子图处理其预期输入所需的内存需求在可 用片上内存的范围之内。即,如果某个目标子图按照当前的张量切分方案 分别处理其输入张量的各个部分(其中输入张量的各个部分分别依次经目标子图中的各目标算子进行处理)时,不会出现内存需求超出当前片上内 存限制的情况,则按原顺序进行处理即可。
参考图3a,以一系列卷积运算算子为例进行说明,在左侧示出的卷积 2和卷积3两个算子被判定为目标算子;由于二者临近,卷积2和卷积3 两个算子进一步被组合为目标子图。在具体操作时,按照张量的产生顺序 (与算子的计算顺序相对应)对片上内存需求进行计算,并对算子的输出 张量分配内存,若对某一输出张量进行内存分配时空闲内存不足,则将该 算子作为目标算子标注出来(图中带有标记的方块)。作为一个具体的示例,图中标出卷积2和卷积3在处理时所需片上内存分别为5MB(分别标 注于算子右侧),同时假设片上内存为4.5MB,由于卷积2和卷积3所需 片上内存超出了可用片上内存,故卷积2和卷积3被标记为目标算子。接 着参考图3b,前述目标子图的输入(大小为1MB)被切分为两个512KB的部分,并分别经前述目标子图(即,分别依照原卷积2和卷积3的顺序) 处理,此时卷积2和卷积3两个算子处理各自的输入所需的片上内存分别降为3MB,故片上内存已经可以满足计算需求,按序计算处理即可。
另一方面,不可避免地,目标子图处理其输入张量时仍然可能出现所 需内存超出片上可用内存限制的情况,参考图4a和图4b。例如,参考图 4a,卷积2和卷积3算子所需片上内存分别为5MB和8MB,均超出了可 用片上内存4.5MB,因此将卷积2和卷积3两个算子标记为目标算子,并 将这两个临近的目标算子组合为目标子图。继续参考图4b,同上例中一样,以目标子图的输入张量被划分为两部分为例,第一部分(图4b中左半支) 分别经过卷积2、卷积3算子处理,所需片上内存分别为3MB和4.5MB, 未超出可用片上内存;而第二部分(图4b中右半支)分别经过卷积2、卷 积3算子处理,所需片上内存分别为4.5MB和6MB,出现超出可用片上 内存的情形,无法继续处理。一般而言,出现这种情况时,可以将上述目标子图进行拆分,并分别基于原目标子图中的各个算子顺序处理原目标子 图的输入张量,例如针对每个算子,将其输入张量切分为足够多的份数再 进行处理,以使有限的片上内存数量满足处理所需。然而该处理方式将显 著增加张量处理步骤的复杂程度,严重降低处理效率。此外,切分后的各 部分要么是通过相同的处理单元多次处理,要么通过更多的并行单元处理,故切分份数增多会导致处理时间拉长或者并行的处理单元增加,从而 效率降低或者功耗上升。
为了解决内存超限问题并控制系统功耗,在另一些实施例中,上述方 法还包括步骤S400(未示出)。在该步骤S400中,张量处理设备将所述 目标子图的前序算子或后继算子中的至少一个合并至所述目标子图,以获 得更新后的目标子图,其中基于原目标子图处理其预期输入所需的内存需 求超出可用片上内存;随后在步骤S300中,张量处理设备基于更新后的 目标子图及其他算子,按原顺序对所述原始张量执行相应处理。仍基于图 4a和图4b所举的例子进行说明,参考图4c和图4d,在不必增加目标子 图的输入张量的切分块数的情况下,将目标子图的后继算子(卷积4)合 并至目标子图中。以目标子图的输入张量被划分为两部分为例,第一部分 (图4d中左半支)分别经过卷积2、卷积3和卷积4算子处理,所需片上 内存分别为3MB、4.5MB和2.75MB,均未超出可用片上内存;而第二部 分(图4d中右半支)分别经过卷积2、卷积3和卷积4算子处理,所需片上内存分别为2.75MB、4.25MB和2.5MB,也均未超出可用片上内存,从 而内存超限的问题得以解决。当然,相似地,亦可将目标子图的前序算子 (例如图4c中示出的卷积1算子)合并至目标子图以尝试解决内存超限 的问题,处理方式相似,为简明起见不再赘述。
其中,进一步地,在上述步骤S400中,在所述目标子图的前序算子 及后继算子中,优选确定待合并算子,并将所述待合并算子合并至所述目 标子图,以获得更新后的目标子图。其中,基于原目标子图处理其预期输 入所需的内存需求超出可用片上内存。具体而言,由于实际情况千差万别,合并前序算子还是后继算子,对片上内存超限问题的解决效果可能是不同 的。甚至,在某些情形下,其中一种合并方式可以解决该问题,但是另一 种却不能解决该问题。
参考图5a示出的例子,与前面的实施例相类似,卷积2、卷积3这两 个算子处理其输入张量所需的片上内存分别为5MB和5MB。此时,假设 可用片上内存为3.5MB,因而这两个算子在处理时所需的内存超出了可用 片上内存。该两个算子组合为目标子图后进行处理(仍假设目标子图的输 入张量被划分为两个部分,与上面的例子相似),参考图5b。然而,对于 第一部分(图5b中左半支),其输入张量分别经过卷积2、卷积3算子处 理,所需片上内存分别为4MB(超限)、3.5MB,无法继续处理。于是接 着参考图5c,将目标子图的后继算子(卷积4)合并以获得新的目标子图, 并基于新的目标子图进行处理,如图5d。此时,目标子图的输入张量被分 为两个部分,对于第一部分(图5d中左半支),其输入张量分别经过卷 积2、卷积3和卷积4算子处理,所需片上内存分别为4MB(超限)、3.5MB 和2.5MB,无法继续处理;同样,对于第二部分(图5d中右半支),其 输入张量分别经过卷积2、卷积3和卷积4算子处理,所需片上内存分别为4MB(超限)、3.5MB和2.5MB,同样无法继续处理。此时向前回溯, 改为将原目标子图的前序算子合并而获得新的目标子图,如图5e。此时, 目标子图的输入张量被分为两个部分,对于第一部分(图5f中左半支), 其输入张量分别经过卷积2、卷积3和卷积4算子处理,所需片上内存分 别为2MB(超限)、3.5MB和3MB,均未超限,可以继续处理;同样, 对于第二部分(图5f中右半支),其输入张量分别经过卷积2、卷积3和 卷积4算子处理,所需片上内存分别为2MB(超限)、3.5MB和3MB, 同样均未超限,可以继续处理。从而,最终的合并方案被选为将前序算子 合并至原目标子图。一般而言,可以比较前序算子的输入内存需求和后继算子的输出内存需求,选择其中较小的,合并入原目标子图,从而在处理时保证足够高的成功率。
另外再针对输入张量的切分和目标子图/算子进行一些说明。参考图 6a和图6b,以高度方向切分和拼接为例,每个算子至少需要输入和输出 的存储空间。也就是说,对于一个确定的计算(有可能是对输入张量切分 前,也可能是切分后),其输入需要存储空间至少为Ci*Hi*Wi(C表示通 道数,H表示高度,W表示宽度,i表示输入,实际需要的存储空间可能 更多),而输出至少需要Co*Ho*Wo(o表示输出)。对于单个算子来说, 在将输入张量切分后(得到输入块0和输入块1),由该算子来分别处理 切分所得的输入块,会涉及内存释放的问题(已经计算完毕的输入块可以 释放掉)。即,单个算子在输入张量切分后就变成了多个相关的算子了, 也就得到了子图(如图6b)。对于目标子图的内存需求,与普通子图类似,只要得到待切分子图切分后的图,即可对其分配内存。因此,在实际处理 前,一个计算所需的内存数量即可确定,从而上述对前序/后继算子的合并 方案亦可确定。
当然,在一些实施例中,亦可同时将前序、后继算子均合并至原目标 子图,以克服内存超限问题。
对于内存超限问题而言,如果目标子图中各个算子的输入和输出均可 以保存在加速器内部存储空间(片上存储空间),虽然计算量增加,但是 增加的计算量所花的时间小于:从外部存储空间取数据的时间与从内部存 储空间取数据的时间之差,则很明显系统效率得到提升。
另外,为解决前述内存超限问题,亦可增加原目标子图的输入张量被 切分的部分的数量,并增加用于进行相应处理的并行处理单元,此时由于 并行的处理单元中每一个所处理的数据量减少,因此系统整体的处理速度 会有所提升。相应地,在上述步骤S300中,基于所述目标子图及其他算 子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目 标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余 目标算子的输入张量分别经切分后输入;若基于当前目标子图处理其预期输入所需的内存需求超出可用片上内存,增加对所述预期输入的切分数 量,并基于更新后的切分数量重新切分所述预期输入。
需要说明的是,组合目标算子为子图,以及对目标算子的输入张量的 切分,并不需要随着实际处理过程而进行。即,在上述步骤S300中,张 量处理设备确定所述目标子图以及所述剩余目标算子的输入张量的切分 数量,并基于所述目标子图及其他算子,按原顺序对所述原始张量执行相 应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算 子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。在实际处理前,各部分的处理方式即已先行确定,最大限度地提升处 理效率,并在确定系统无法处理当前输入张量的情况下及时提示操作人员 检查和采取措施,而无需在实际运行中才进行提示,从而在整体上提升处 理效率。
就对于原始输入张量(输入整个系统的张量)而言,在上述步骤S300 中,基于目标子图及其他算子,按原顺序对原始张量执行相应处理,具体 指:
按所述目标子图及其他算子的原顺序,基于所述目标子图对所述原始 张量执行相应处理(即依次经过所述目标子图中的各操作算子对所述原始 张量执行相应处理);以及,
按所述目标子图及其他算子的原顺序,基于其他算子对所述原始张量 执行相应处理。
以上详述了本申请的各个实施例。须知,这些实施例仅为示例,而非 对本申请具体实施方式的任何限定。
根据本申请的另一方面,本申请还提供一种基于张量切分的张量处理 系统,其特征在于,所述系统至少包括:
目标子图获取装置,用于获取包括至少两个目标算子的目标子图,其 中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;以及,
将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已 组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述 张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处 理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目 标子图以及所述剩余目标算子的输入张量分别经切分后输入。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质 存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法 被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算 机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得 所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施, 例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬 件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数 据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或 光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬 件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序 指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据 本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指 令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于: 该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指 令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机 访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或 其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包 括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波 的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机 可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸 如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数 据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编 码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算 机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实 现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存 储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM, EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光 学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发 的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储 计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算 机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多 个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细 节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体 形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性 的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限 定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括 在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要 求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。 装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特 定的顺序。

Claims (11)

1.一种基于张量切分的张量处理方法,其特征在于,包括:
确定用于对原始张量进行处理的多个操作算子中的目标算子;
将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已组合的目标算子之差集为剩余目标算子;
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入;
其中,所述目标算子满足筛选条件,所述筛选条件包括:
基于相应操作算子的预期输入张量的高度超出硬件允许值;或者,
基于相应操作算子处理其预期输入所需的内存需求超出可用片上内存。
2.根据权利要求1所述的方法,其特征在于,所述操作算子用于执行卷积计算或者池化计算。
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,其中基于所述目标子图处理其预期输入所需的内存需求在可用片上内存的范围之内。
4.根据权利要求1所述的方法,其特征在于,还包括:
将所述目标子图的前序算子或后继算子中的至少一个合并至所述目标子图,以获得更新后的目标子图,其中基于原目标子图处理其预期输入所需的内存需求超出可用片上内存;
所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
基于更新后的目标子图及其他算子,按原顺序对所述原始张量执行相应处理。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标子图的前序算子或后继算子中的至少一个合并至所述目标子图,以获得更新后的目标子图,其中基于原目标子图处理其预期输入所需的内存需求超出可用片上内存的步骤,包括:
在所述目标子图的前序算子及后继算子中,优选确定待合并算子;
将所述待合并算子合并至所述目标子图,以获得更新后的目标子图;
其中,基于原目标子图处理其预期输入所需的内存需求超出可用片上内存。
6.根据权利要求4所述的方法,其特征在于,所述基于更新后的目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入;
若基于当前目标子图处理其预期输入所需的内存需求超出可用片上内存,增加对所述预期输入的切分数量,并基于更新后的切分数量重新切分所述预期输入。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入的步骤,包括:
确定所述目标子图以及所述剩余目标算子的输入张量的切分数量,并基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合至目标子图的操作算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理的步骤,包括:
按所述目标子图及其他算子的原顺序,基于所述目标子图对所述原始张量执行相应处理;
按所述目标子图及其他算子的原顺序,基于其他算子对所述原始张量执行相应处理;
其中,所述基于所述目标子图对所述原始张量执行相应处理,包括:
依次经过所述目标子图中的各操作算子对所述原始张量执行相应处理。
9.一种基于张量切分的张量处理系统,其特征在于,所述系统至少包括:
目标子图获取装置,用于获取包括至少两个目标算子的目标子图,其中所述目标子图获取装置被配置为:
确定用于对原始张量进行处理的多个操作算子中的目标算子;以及,
将相邻的至少两个目标算子组合为目标子图,其中所有目标算子与已组合的目标算子之差集为剩余目标算子;
以及,
张量处理装置,用于基于所述目标子图处理所述原始张量,其中所述张量处理装置被配置为:
基于所述目标子图及其他算子,按原顺序对所述原始张量执行相应处理,所述其他算子为已组合的目标算子以外的其他操作算子,其中所述目标子图以及所述剩余目标算子的输入张量分别经切分后输入;其中,所述目标算子满足筛选条件,所述筛选条件包括:
基于相应操作算子的预期输入张量的高度超出硬件允许值;或者,
基于相应操作算子处理其预期输入所需的内存需求超出可用片上内存。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现权利要求1至8中任一项所述的张量处理方法。
11.一种电子设备,其特征在于,所述电子设备至少包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至8中任一项所述的方法。
CN202110823040.6A 2021-07-21 2021-07-21 一种基于张量切分的张量处理方法和张量处理系统 Active CN113485836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110823040.6A CN113485836B (zh) 2021-07-21 2021-07-21 一种基于张量切分的张量处理方法和张量处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110823040.6A CN113485836B (zh) 2021-07-21 2021-07-21 一种基于张量切分的张量处理方法和张量处理系统

Publications (2)

Publication Number Publication Date
CN113485836A CN113485836A (zh) 2021-10-08
CN113485836B true CN113485836B (zh) 2024-03-19

Family

ID=77942550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110823040.6A Active CN113485836B (zh) 2021-07-21 2021-07-21 一种基于张量切分的张量处理方法和张量处理系统

Country Status (1)

Country Link
CN (1) CN113485836B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091685B (zh) * 2021-11-08 2022-08-23 北京百度网讯科技有限公司 深度学习框架的张量切分方法、装置、设备和存储介质
CN118246497A (zh) * 2022-12-24 2024-06-25 华为技术有限公司 算子的处理方法、装置、芯片、计算设备及存储介质
CN117172289A (zh) * 2023-09-01 2023-12-05 苏州亿铸智能科技有限公司 张量切分方法、装置以及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
CN111191778A (zh) * 2019-12-31 2020-05-22 深圳云天励飞技术有限公司 深度学习网络处理方法、装置与编译器
CN111311599A (zh) * 2020-01-17 2020-06-19 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备和存储介质
CN111553466A (zh) * 2020-04-30 2020-08-18 上海商汤智能科技有限公司 信息处理方法、装置及设备
CN111563584A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
CN111563587A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
WO2020187041A1 (zh) * 2019-03-18 2020-09-24 北京灵汐科技有限公司 一种基于众核处理器的神经网络的映射方法及计算设备
CN113065639A (zh) * 2021-03-08 2021-07-02 深圳云天励飞技术股份有限公司 算子融合方法、系统、设备及存储介质
CN113095469A (zh) * 2019-12-23 2021-07-09 上海海思技术有限公司 一种神经网络模型的优化方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3204888A4 (en) * 2014-10-09 2017-10-04 Microsoft Technology Licensing, LLC Spatial pyramid pooling networks for image processing
US10338925B2 (en) * 2017-05-24 2019-07-02 Microsoft Technology Licensing, Llc Tensor register files
CN110210610B (zh) * 2018-03-27 2023-06-20 腾讯科技(深圳)有限公司 卷积计算加速器、卷积计算方法及卷积计算设备
US20200090030A1 (en) * 2018-09-19 2020-03-19 British Cayman Islands Intelligo Technology Inc. Integrated circuit for convolution calculation in deep neural network and method thereof
US20200410330A1 (en) * 2019-06-27 2020-12-31 Advanced Micro Devices, Inc. Composable neural network kernels

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
CN111563584A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
CN111563587A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
WO2020187041A1 (zh) * 2019-03-18 2020-09-24 北京灵汐科技有限公司 一种基于众核处理器的神经网络的映射方法及计算设备
CN113095469A (zh) * 2019-12-23 2021-07-09 上海海思技术有限公司 一种神经网络模型的优化方法及装置
CN111191778A (zh) * 2019-12-31 2020-05-22 深圳云天励飞技术有限公司 深度学习网络处理方法、装置与编译器
CN111311599A (zh) * 2020-01-17 2020-06-19 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备和存储介质
CN111553466A (zh) * 2020-04-30 2020-08-18 上海商汤智能科技有限公司 信息处理方法、装置及设备
CN113065639A (zh) * 2021-03-08 2021-07-02 深圳云天励飞技术股份有限公司 算子融合方法、系统、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Delaunay三角网通用合并算子及分治算法的简化;刘永和;冯锦明;郭维栋;田根;金毅;;中国图象图形学报(第10期);90-98 *
基于特征图切分的轻量级卷积神经网络;张雨丰 等;模式识别与人工智能(第03期);47-56 *

Also Published As

Publication number Publication date
CN113485836A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
CN113485836B (zh) 一种基于张量切分的张量处理方法和张量处理系统
CN113485837B (zh) 一种基于并行分支和张量切分的张量处理方法和处理系统
CN110689115B (zh) 神经网络模型处理方法、装置、计算机设备及存储介质
CN110728578A (zh) 区块链交易的并行执行方法、系统及存储介质
CN112199190A (zh) 内存分配方法、装置、存储介质及电子设备
CN112711478B (zh) 基于神经网络的任务处理方法、装置、服务器和存储介质
US20160147712A1 (en) Dynamical methods for solving mixed-integer optimization problems
US9105208B2 (en) Method and apparatus for graphic processing using multi-threading
CN111311599B (zh) 图像处理方法、装置、电子设备和存储介质
CN112200300A (zh) 卷积神经网络运算方法及装置
US10762602B2 (en) Methods and apparatus to enable parallel processing when solving linear equations in a computer vision processing system
CN113570031B (zh) 卷积运算的处理方法、电子设备及计算机可读存储介质
CN110399972A (zh) 数据处理方法、装置及电子设备
US20220067495A1 (en) Intelligent processor, data processing method and storage medium
CN116933841A (zh) 算子融合方法及装置、电子设备、计算机可读介质
CN111027688A (zh) 一种基于fpga的神经网络计算器生成方法及装置
CN113168555A (zh) 减少卷积神经网络的资源消耗的系统及相关方法
CN116360961A (zh) 基于多线程的内存分配方法及装置
KR102372869B1 (ko) 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법
CN113240077B (zh) 一种张量处理方法和系统
CN117634711B (zh) 张量维度切分方法、系统、设备和介质
CN111753949B (zh) 一种数据块处理方法、装置及电子设备
CN113159295B (zh) 基于硬件加速器的张量处理方法和系统
US20220012573A1 (en) Neural network accelerators
US20220383133A1 (en) Processing of neural networks

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
GR01 Patent grant
GR01 Patent grant