一种张量处理方法和系统转让专利
申请号 : CN202110458766.4
文献号 : CN113240077B
文献日 : 2022-04-05
发明人 : 李国亮 , 李锐 , 张磊 , 杨勤富 , 钱军
申请人 : 瀚博半导体(上海)有限公司
摘要 :
权利要求 :
1.一种张量处理方法,其中,该方法包括:基于硬件加速器的工作参数信息,确定待处理的张量的划分区域数量信息;
基于所述划分区域数量信息,确定所述待处理张量对应的至少两个输入区域的起始边界坐标和终点边界坐标,其中所述起始边界坐标和终点边界坐标用于确定对应的输入区域;
通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个输入区域执行预定处理,以获得分别对应所述输入区域的输出区域。
2.根据权利要求1所述的方法,其中,所述基于所述划分区域数量信息,确定所述待处理的张量对应的至少两个输入区域的起始边界坐标和终点边界坐标,包括:b1基于所述划分区域数量信息,确定所述待处理张量对应的至少两个输入区域的终点边界坐标;
b2确定每个输入区域的起始边界坐标;
其中所述起始边界坐标和终点边界坐标用于确定对应的输入区域。
3.根据权利要求2所述的方法,其中,所述方法还包括:r基于所述划分区域数量信息,确定所述待处理张量对应的至少两个输出区域的终点边界坐标;
s确定每个输入区域所对应输出区域的起始边界坐标,其中:若当前输入区域为起始输入区域,确定所述当前输入区域所对应的输出区域的起始边界坐标为所述待处理的张量所对应目标输出张量的起始边界坐标;否则,基于前序输出区域的终点边界坐标确定所述当前输入区域所对应的输出区域的起始边界坐标;
其中,所述步骤b1,包括:
基于每个输入区域所对应的输出区域的终点边界坐标,确定各个输入区域的终点边界坐标;
所述步骤b2,包括:
基于每个输入区域所对应的输出区域的起始边界坐标,确定各个输入区域的起始边界坐标。
4.根据权利要求2所述的方法,其中,所述步骤b2,包括:确定每个输入区域的起始边界坐标,并将满足第一扩充条件的输入区域向前序输入区域方向扩充以更新相应输入区域的起始边界坐标;其中,更新后的起始边界坐标相对于所述待处理的张量的起始边界坐标的距离为预设宽度的整数倍。
5.根据权利要求4所述的方法,其中,所述通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个输入区域执行预定处理,以获得分别对应所述输入区域的输出区域,包括:通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对所述输入区域执行预定处理,以获得分别对应所述输入区域的待剪裁区域;
对所述待剪裁区域中对应于相应输入区域中被扩充部分的区域进行剪裁,以获得对应的输出区域。
6.根据权利要求2所述的方法,其中,所述步骤b1,包括:基于所述划分区域数量信息,确定所述待处理张量对应的至少两个输入区域的终点边界坐标,并将满足第二扩充条件的输入区域向后继输入区域方向扩充以更新相应输入区域的终点边界坐标;其中,更新后的终点边界坐标相对于所述待处理的张量的起始边界坐标的距离为预设宽度的整数倍。
7.根据权利要求6所述的方法,其中,所述通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个输入区域执行预定处理,以获得分别对应所述输入区域的输出区域,包括:通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个输入区域执行预定处理,以获得分别对应所述输入区域的待剪裁区域;
对所述待剪裁区域中对应于相应输入区域中被扩充部分的区域进行剪裁,以获得对应的输出区域。
8.根据权利要求1所述的方法,其中,所述方法还包括:基于各输出区域拼合所述待处理的张量的目标输出张量。
9.一种张量处理系统,其中,所述系统至少包括:区域数量确定装置,其中所述区域数量确定装置被配置为:基于硬件加速器的工作参数信息,确定待处理的张量的划分区域数量信息;
输入区域确定装置,其中所述输入区域确定装置被配置为:基于所述划分区域数量信息,确定所述待处理的张量对应的至少两个输入区域的起始边界坐标和终点边界坐标,其中所述起始边界坐标和终点边界坐标用于确定对应的输入区域;
区域处理装置,其中所述区域处理装置被配置为:通过所述硬件加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个输入区域执行预定处理,以获得分别对应所述输入区域的输出区域。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现权利要求1至8中任一项所述的张量处理方法。
11.一种电子设备,其特征在于,所述电子设备至少包括:一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至8中任一项所述的方法。
说明书 :
一种张量处理方法和系统
技术领域
背景技术
在实际计算时,张量的某些参数有时可能会超出硬件加速器的相关限制(例如张量的高度
或宽度可能超出加速器的相应限制,或者加速器对片上内存、可用的计算资源等可能会进
行限制),十分不便。
发明内容
法的操作。
定,确定的依据是硬件加速器的工作参数;随后,待处理的张量被划分为相应的数量后进行
相应计算,所得的输出区域即可用于后续处理,例如拼合为对原大尺寸张量进行处理后所
对应的输出区域。虽然目前广泛应用的切分卷积核的处理方式也能解决上述问题,但是这
种处理方式需要相应切分输入张量,即对应卷积核的每一块,先得到对应整个卷积核的部
分和,最后还需要进一步将部分和进行累加,因此增加了较多的硬件资源消耗。与现有技术
相比,一方面,本申请对张量的处理能够突破硬件方面的限制,且计算量小,处理速度快;另
一方面,基于本申请,原待处理张量被划分的区域数量是根据硬件加速器的处理能力而确
定的,随后对各部分进行处理时相关硬件加速器的处理负荷相对均衡,避免了部分加速器
等待其他加速器处理完毕的情形,从而整体上处理原待处理张量的效率提高了。
附图说明
具体实施方式
仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护
的范围。
的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
量的卷积为例,硬件加速器通常有各种限制,例如片上内存的物理限制、其他计算资源的限
制,以及这些限制导致的对输入张量的高度及宽度的限制等。在计算资源有限的情况下,现
有技术常采用切分卷积核的处理方式来突破上述限制,但是切分卷积核的处理方式需要相
应切分输入张量,即对应卷积核的每一块,先得到对应整个卷积核的部分和,最后还需要进
一步将部分和进行累加,增加了较多的硬件资源消耗。而本方案并不基于切分卷积核技术,
而是根据硬件的相关参数确定大尺寸张量的分块,再对分块分别进行处理,与切分卷积核
的方式相比省去了上述求取部分和、累加部分和的硬件资源消耗,并且同样能够在硬件资
源的限制下处理大尺寸张量,且具有计算量小、处理速度快的优点。此外,原待处理张量被
划分的区域数量是根据硬件加速器的处理能力而确定的,随后对各部分进行处理时相关硬
件加速器的处理负荷相对均衡,避免了部分加速器等待其他加速器处理完毕的情形,从而
整体上处理原待处理张量的效率提高了。
S200中,张量处理设备基于所述划分区域数量信息,确定所述待处理的张量对应的至少两
个输入区域,例如张量处理设备确定每个输入区域的起始位置(例如起始边界坐标,如位于
起始位置的元素的坐标)和终结位置(例如终点边界坐标,如位于终点位置的元素的坐标);
接着在步骤S300中,张量处理设备通过所述硬件加速器对所述输入区域执行预定处理(例
如对该区域计算卷积),以获得分别对应所述输入区域的输出区域。在一些实施例中,该输
出区域用于与其他输入区域所对应的输出区域拼合为原待处理张量对应的输出张量。
研究,其起始边界坐标和终点边界坐标均为行坐标(即原张量被划分为在高度方向上分布
的若干个区域,此时各个输入区域的起始边界和终点边界分别为各自的上下边界,每个输
入区域的高度受硬件加速器对输入张量高度的限制),或者该当前输入区域的起始边界坐
标和终点边界坐标均为列坐标(即原二维张量被划分为在宽度方向上分布的若干个区域,
此时各个输入区域的起始边界和终点边界分别为各自的左右边界,每个输入区域的宽度受
硬件加速器对输入张量宽度的限制)。当然,本领域的技术人员应能理解,下述说明仅为举
例,而非对本申请具体实施方式的限定。具体地,在原待处理的张量为三维张量的情形下,
上述当前输入区域的起始边界坐标和终点边界坐标均为长、宽或高坐标;待处理张量为更
高维度时以此类推,不再赘述。
划出的一部分(即各输入区域为原待处理的张量的一部分)。
形之一:
之一:
者今后可能出现的对原待处理的张量的划分方式,如能适用于本申请,也包含在本申请的
保护范围内,并以引用的方式包含于此。
下针对上面提到的情形a1),即分块宽度与原二维张量一致、而高度小于原二维张量的情形
展开。须知,其他情形如a2)、a3),实施方式与之相同或大体相同,本领域的技术人员应能根
据实际情况进行相应的调整,并且调整后的实施方式也涵盖在本申请的保护范围内。作为
示例,待处理的原二维张量被划分为两个区域。图2a至图2d分别给出不同情形下当前输入
区域在原二维张量中的位置示意,其中为保证相邻的输入区域产生相邻的输出区域,相邻
的输入区域之间应有重叠部分。图3a、图3b、图3c和图3d则分别对应于图2a、图2b、图2c和图
2d,示出待处理的二维张量对应的输出张量,以及当前输入区域对应的第一输出区域在该
输出张量中的分布情况。
标,其中所述起始边界坐标和终点边界坐标用于确定对应的输入区域。例如,在一些实施例
中,各个输入区域的起始边界坐标和终点边界坐标,均以在前序步骤中确定的待划分区域
数量为参数而确定。确定后的各个输入区域用于输入相应的硬件加速器,供硬件加速器进
行后续处理。一方面,原待处理张量被划分后的各个部分无需按序逐一计算,而可以在各自
的范围确定后分别被输入相应的硬件加速器而进行分布式处理,充分利用多硬件加速器的
处理能力。另一方面,由于每个输入区域的起始和终点边界都是基于划分区域数量确定的,
而划分区域数量又是基于各个硬件加速器的工作参数而确定的,因此对原待处理张量的整
个处理过程均不会超出各硬件加速器工作参数的限制。
的至少两个输入区域的终点边界坐标。而在子步骤S220中,张量处理设备确定每个输入区
域的起始边界坐标。其中,对于每个输入区域的起始边界的确定,可能存在两种情况。其一,
对于第一个输入区域而言,由于其不存在前序输入区域,因此第一个输入区域的起始边界
坐标与待处理张量的起始边界坐标一致;其二,对于除第一个输入区域以外的其他输入区
域而言,其起始边界坐标则基于前序输入区域(或前序输入区域对应的输出区域)的终点边
界坐标而确定,从而输出区域便于与前序输入区域所对应输出区域进行拼接(同时,各个输
入区域的处理可以分别进行,其无需逐个处理),进而在将各个输入区域所对应的输出区域
进行拼合后,能够最终获得原待处理张量所对应的完整的输出。具体而言,如上所述,每个
输出区域的边界位置和大小与相应的输入区域的边界位置和大小相对应,因此,在对待处
理的张量的任何部分进行实际的计算或变换之前,其输入区域的划分即可完成。换言之,整
个待处理的张量的各个输入区域的边界确定后,即可将各个输入区域分别读入不同的硬件
加速器并行处理,而无需依次完成当前的输入区域的处理后方可确定下一输入区域并进行
处理,故该处理方式能极大地提高张量、尤其是大尺寸张量的处理效率。
至少两个输出区域的终点边界坐标;随后在步骤S500中,确定每个输入区域所对应输出区
域的起始边界坐标。例如,在确定部分或全部输入区域所对应输出区域的终点边界坐标后,
在各输入区域所对应输出区域中,对于起始边界坐标尚未确定的输出区域,根据其他输入
区域所对应输出区域的终点边界坐标(结束位置)来确定该输出区域的起始边界坐标(开始
位置)。具体而言,在输入区域的划分数量和顺序确定后,对于一个待确定起始和终结位置
的输入区域(下称当前输入区域),若当前输入区域为起始输入区域(例如将原待处理张量
进行划分后获得的第一个输入区域),确定所述当前输入区域所对应的输出区域的起始边
界坐标为所述待处理的张量所对应目标输出张量的起始边界坐标;否则,若当前输入区域
非上述起始输入区域,则基于前序输出区域(即上一个输入区域所对应的输出区域)的终点
边界坐标确定所述当前输入区域所对应的输出区域的起始边界坐标。相应地,在上述子步
骤S210中,张量处理设备基于每个输入区域所对应的输出区域的终点边界坐标,确定各个
输入区域的终点边界坐标;而在上述子步骤S220中,张量处理设备基于每个输入区域所对
应的输出区域的起始边界坐标,确定各个输入区域的起始边界坐标。
二维张量而言,其需要在高度方向和/或宽度方向上以一原子区域高度(例如8)为单位,从
存储单元中读入加速器(三维张量则需要在高度方向和/或宽度方向和/或长度方向上以8
为单位从存储单元中读入加速器),并以同样的格式写入存储单元。换言之,硬件加速器访
问张量时需以上述原子区域高度为单位,即输入或输出张量需要为上述原子区域高度的倍
数,以提高读写效率。其中,对于输出张量而言,仍以上述原子区域高度为例,各个输入区域
所对应输出区域的高度应是该原子区域高度(例如,8)的倍数,且不存在重叠,以使各输入
区域对应的输出区域能无缝且无重叠地拼接在一起,保证分别对原待处理张量的各个部分
处理后得到的输出是正确的。
施方式中,首先确定需要将原待处理张量切分成的块数N。一种可选的确定方式是:基于原
待处理张量所对应输出张量的相关尺寸参数(例如,总高度;该相关尺寸参数可以基于待处
理张量的相应尺寸参数及预定处理的处理方式而唯一确定)和硬件加速器的相应工作参数
信息(例如,单个硬件加速器对其能够处理的张量的高度的限制)而确定,例如将二者作商
后向上取整,从而获得前述块数N;另一方面,确定输出张量所包含上述原子区域高度的数
量C,具体而言是基于原待处理张量所对应输出张量的相关尺寸参数(例如,总高度)和上述
原子区域高度确定,例如将二者作商后向上取整,从而获得前述数量C。将各个原子区域分
配至每个分块(输入区域对应的输出区域),若数量C能被块数N整除则每个分块对应(C/N)
个原子区域;否则,部分分块(输入区域对应的输出区域)被分配到的原子区域将比其他分
块多1。随后,对于每个输入区域对应的输出区域,其高度即可基于分配到的原子区域数量
计算得知,即以其分配到的原子区域数量与原子区域高度相乘。对于一个特定的、输入区域
对应的输出区域,其终点边界坐标,可通过累加包括其自身在内的输出区域的高度而得(此
处以第一个输出区域的起始坐标边界位置为原点位置)。
关系唯一确定,因此该输入区域的起始和终点边界坐标也随之而确定。即,如上所述,确定
各输入区域的起始和终点边界坐标,无需实际进行处理(例如,计算卷积)并获得相应的输
出区域。具体而言,在上述子步骤S210中,基于每个输入区域所对应的输出区域的终点边界
坐标,确定各个输入区域的终点边界坐标;而在上述子步骤S220中,基于每个输入区域所对
应的输出区域的起始边界坐标,确定各个输入区域的起始边界坐标。
加上1。
域的起始边界坐标;其中,更新后的起始边界坐标相对于所述待处理的张量的起始边界坐
标的距离为预设宽度的整数倍。用于扩充当前输入区域的部分亦是从原待处理的张量中相
应部分读入。
分;图3d左侧的小方块表示当前输出区域与前序输出区域的重叠部分。其中,如图2d所示,
当前输入区域在高度方向上被扩充了一部分,即当前输入区域在从前序输入区域的终点边
界向前序输入区域内部的方向进行了扩充,以完成当前输入区域的顶端对齐。在此,“顶端
对齐”指的是,硬件加速器从存储单元读入该当前输入区域后,通过向读入的当前输入区域
的顶端(例如,在高度方向上向前序输入区域)进行扩充,使该当前输入区域起始边界坐标
为硬件加速器的预设区域高度(例如上面提到的8)的整数倍(硬件加速器按前述预设区域
高度读入当前输入区域)。通过这种方式,使每次读入硬件加速器的区域的高度均为前述预
设区域高度(例如8)的整数倍,以提升读取效率,配合可选的裁剪操作(请参阅本申请其他
实施例中的详细描述)使得相应的多个输出能够无缝和无重叠地拼接,避免出错。其中,在
一些实施例中,输入区域被执行卷积操作而获得相应的输出区域,具体而言,卷积核
(kernel)在二维输入数据上逐步“扫描”,输入区域经卷积核“扫描”而完成卷积操作后获得
相应的输出区域,卷积核“滑动”的同时,计算权重矩阵和扫描所得的数据矩阵的乘积,然后
把结果汇总成一个输出值。
标无法被前述预设区域高度整除。
行“滑动”计算完成后,卷积核进行一定量的偏移(图中以向下的宽箭头示意),并执行前述
“滑动”卷积计算,直至整个待处理张量全部计算完成。卷积核每次的偏移量在一些实施例
中又称为“步长(Stride)”,在卷积过程中,通过设置的步长来压缩一部分信息,或者使输出
的尺寸小于输入的尺寸。在附图示出的情形中,步长设置为3(与卷积核高度/宽度相同)以
提高处理速度,此时原待处理张量相当于被划分为A1部分、A2部分、A3部分、A4部分……进
行处理,每一部分的宽度都相当于卷积核的高度/宽度。
原待处理张量中当前输入区域前部读入。在上述步骤S300中,张量处理设备通过所述硬件
加速器将读入的各个输入区域的起始部分填充至对齐预定处理的步长的整数倍,并对各个
输入区域执行预定处理,以获得分别对应所述输入区域的输出区域。具体来说,在很多情形
下(包括一般情形及上面提到的需要执行“顶端对齐”的情形),当前输入区域的起始位置可
能与原待处理的张量中原定的起始位置不一致,例如该起始位置不是图4a中A2、A3、A4等各
部分的起始位置,而是处于这些部分中间的某处。这将导致将原待处理张量分成若干块再
分别处理时,相较于直接处理原待处理张量而言发生了“错位”(例如对张量执行步长不为1
的卷积处理),进而对张量处理的结果也不再一致,即便将各部分处理后再拼合相应的输
出,拼合后的输出也是无效的。
坐标3)、A2部分(图中坐标4至坐标6)、A3部分(图中坐标7至坐标9)、A4部分(图中坐标10至
坐标12)……而进行切分后,如上所述,当前输入区域在向上扩充后,其起始边界坐标为硬
件加速器的预设原子区域高度(例如上面提到的8)的整数倍(假设坐标为8)。若直接由此开
始执行卷积操作,则卷积核实际扫描区域的坐标为8至10,与原定扫描的A3部分错开,从而
输出是无效的。为了继续采用上述切分原待处理张量的方式以降低系统需求、提升处理效
率且避免出错,一种实现方式是,如图4b所示,以0值(或其他固定/可变值)填充当前输入区
域(以带斜线的浅色部分方格示出),使已读入硬件加速器的当前输入区域的起始边界的位
置能让填充后的输出与原定输出一致(以保证最终输出的正确性),实际即如图4c所示处
理,卷积核对当前输入区域进行第一次“扫描”时,被“扫描”的部分既包括第一输入区域的
起始部分,又包括上述填充的部分。换言之,张量处理设备通过硬件加速器将读入硬件加速
器的当前输入区域的起始部分填充至对齐预定处理(例如,计算卷积)的步长的整数倍,并
对填充后的当前输入区域执行所述预定处理,以获得当前输入区域所对应的当前输出区
域。其中,将当前输入区域的起始部分填充至对齐预定处理(例如,计算卷积)的步长的整数
倍,指的是填充后的当前输入区域的起始位置,在待处理的张量的投影(参考图4d)位置为
该预定处理(例如,计算卷积)的步长的整数倍(例如图4d中的坐标位置6)。
重叠,若直接拼合当前输出区域与前一输出区域将出错(例如,对于二维张量而言,拼合结
果多出若干无效行);此外,若对读入硬件加速器的当前输入区域进行了填充,填充部分对
应的输出为无效输出。因此当前输入区域所对应的输出区域尚需经过剪裁,去除不需要部
分后,才可获得对应于由原张量划分而获得的输入区域所对应的有效输出区域。在此为方
便起见,将对当前输入区域处理所得的对应的剪裁前的区域称为当前待剪裁区域。相应地,
在上述步骤S300中,张量处理设备通过硬件加速器对前述输入区域执行预定处理,以获得
分别对应各输入区域的待剪裁区域;并对各待剪裁区域中对应于相应输入区域中被扩充部
分的区域(对应于相应输入区域的起始部分,以图2c所示为例对应于“临时的”当前输出区
域的上部标示出的需要剪裁的部分,去除该部分后方得到最终的当前输出区域)进行剪裁,
以获得对应的输出区域。
待处理张量对应的至少两个输入区域的终点边界坐标,并将满足第二扩充条件的输入区域
向后继输入区域方向扩充以更新相应输入区域的终点边界坐标;其中,更新后的终点边界
坐标相对于所述待处理的张量的起始边界坐标的距离为预设宽度的整数倍。在此,“底端对
齐”指的是,硬件加速器从存储单元读入该当前输入区域后,通过向读入的当前输入区域的
底端(例如,在高度方向上向前序输入区域)进行扩充,使该当前输入区域起始边界坐标为
硬件加速器的预设区域高度(例如上面提到的8)的整数倍(硬件加速器按前述预设区域高
度读入当前输入区域)。通过这种方式,使每次读入硬件加速器的区域的高度均为前述预设
区域高度(例如8)的整数倍,以提升读取效率,使得相应的多个输出能够无缝和无重叠地拼
接,避免出错。用于扩充当前输入区域的部分亦是从原待处理的张量中相应部分读入。
标无法被前述预设区域高度整除。
对应于相应输入区域中被扩充部分的区域(对应于相应输入区域的终点部分,去除该部分
后方得到最终的当前输出区域)进行剪裁,以获得对应的输出区域。参照上述有关对待剪裁
区域进行处理的说明,在一些实施例中,在将当前输入区域进行如上所述的扩充(可选地还
有填充)后,当前输入区域经过相应处理(例如计算卷积)后所得的输出区域将与后一输出
区域有部分重叠,若直接拼合当前输出区域与后一输出区域将出错(例如,对于二维张量而
言,拼合结果多出若干无效行);此外,若对读入硬件加速器的当前输入区域进行了填充,填
充部分对应的输出为无效输出。因此当前输入区域所对应的输出区域尚需经过剪裁,去除
不需要部分后,才可获得对应于由原张量划分而获得的输入区域所对应的有效输出区域。
在此为方便起见,将对当前输入区域处理所得的对应的剪裁前的区域称为当前待剪裁区
域。
中对原大尺寸张量的切分处理,本方案根据硬件的相关参数确定对大尺寸张量进行分块的
数量,再基于分块数量具体确定各个分块的起止点并分别处理各个分块,最后拼合处理结
果,具有计算量小、处理速度快的优点。并且,从原张量中划分出的各个部分区域的大小是
根据硬件加速器的处理能力而确定的,因此该处理方式能尽可能减少对大尺寸张量的切
分,从而该处理方式可以最大化计算资源和带宽的利用率。
现有的大尺寸张量处理策略,通常为基于预设的分块尺寸划分大尺寸张量,无法充分利用
硬件的计算资源;或者某些方案会依次确定各个分块的尺寸,最大化每个分块的尺寸,以尽
可能减少分块数量,但是这又会造成各输入区域所对应的输出尺寸不一致,因此整体的处
理效率也有待提高。
后,张量处理设备基于获得的划分区域数量信息以及现有的硬件加速器数量,关闭部分硬
件加速器,并在上述步骤S300中通过处于工作状态的硬件加速器处理各个输入区域。
分配到的原子区域将比其他分块多1;
前不存在其他输出区域)的高度,得到相应输出区域的终点边界(底端)坐标,同时,对于除
第一个输出区域,基于其前序输出区域确定每个输出区域的起始边界(顶端)坐标;
应在相应的输入区域的顶端填充若干行,填充后对应输出区域中会多出一个无效行,该无
效行在后续步骤中也需要裁剪掉;
输入区域横向地进一步划分为若干块。
中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的
软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,
磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例
如,作为与处理器配合从而执行各个步骤或功能的电路。
本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于
源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但
不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,
或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后
程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或
通信介质。
缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电
磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线
介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。
术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设
定的信号。调制可以是模拟的、数字的或混合调制技术。
移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随
机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,
EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、
磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机
可读信息/数据。
时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权
利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有
变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此
外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个
单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表
示名称,而并不表示任何特定的顺序。