CN115794026A - 数据移位方法及装置以及相关产品 - Google Patents
数据移位方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN115794026A CN115794026A CN202111061491.7A CN202111061491A CN115794026A CN 115794026 A CN115794026 A CN 115794026A CN 202111061491 A CN202111061491 A CN 202111061491A CN 115794026 A CN115794026 A CN 115794026A
- Authority
- CN
- China
- Prior art keywords
- data
- shifted
- shift
- target
- sub
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开涉及一种数据移位方法及装置以及相关产品,所述产品包括组合处理装置,所述组合处理装置包括计算处理装置、接口装置、其他处理装置和存储装置。计算处理装置可包括一个或多个计算装置。计算处理装置可配置成执行用户指定的操作,计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器,或者,包括在计算处理装置内的一个或多个计算装置可实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。通过使用以上组合处理装置,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据移位方法及装置以及相关产品。
背景技术
在数据移位过程中,通常根据待移位数据的位长选择移位器,不同位长的移位器难以复用,因此,需要设置更多移位器来满足移位的需要,导致功耗增大、需要的器件增多,以及器件占用的面积增大。
发明内容
本公开提出了一种数据移位方法及装置以及相关产品。
根据本公开的一方面,数据移位方法,其特征在于,包括:对待移位数据进行分割,获得至少两个待移位子数据;根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;根据所述目标子数据,确定所述待移位数据移位后的目标数据。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:将所述第一移位方向确定为所述第二移位方向。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
在一种可能的实现方式中,根据所述比值,确定所述第二移位步长,包括:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
在一种可能的实现方式中,对待移位数据进行分割,获得至少两个待移位子数据,包括:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
在一种可能的实现方式中,根据所述目标子数据,确定所述待移位数据移位后的目标数据,包括:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
在一种可能的实现方式中,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据,包括:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
在一种可能的实现方式中,所述方法还包括:在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
在一种可能的实现方式中,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
根据本公开的另一方面,提供了一种数据移位装置的框图,所述装置包括:分割模块,用于对待移位数据进行分割,获得至少两个待移位子数据;移位信息确定模块,用于根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;移位模块,用于根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;确定模块,用于根据所述目标子数据,确定所述待移位数据移位后的目标数据。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,所述移位信息确定模块进一步用于:将所述第一移位方向确定为所述第二移位方向。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,所述移位信息确定模块进一步用于:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
在一种可能的实现方式中,所述移位信息确定模块进一步用于:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
在一种可能的实现方式中,所述分割模块进一步用于:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
在一种可能的实现方式中,所述确定模块进一步用于:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
在一种可能的实现方式中,所述确定模块进一步用于:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
在一种可能的实现方式中,所述装置还包括:数量确定模块,用于在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
在一种可能的实现方式中,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括所述数据移位装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括所述人工智能芯片。
根据本公开的另一方面,提供了一种板卡,包括:存储器件、接口装置和控制器件以及所述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行所述数据移位方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现所述数据移位方法。
根据本公开的实施例的数据移位方法,可将待移位数据进行分割,获得位长较小的待移位子数据,以分别对各待移位子数据进行移位处理,从而无需对位长较长的待移位数据进行移位处理,适用于位长更小的移位器,使得同一种移位器能够对多种位长的数据进行移位,提升移位器的复用效率,减小所需的元器件的数量与占用的面积,并减小功耗。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的数据移位方法的流程图;
图2示出根据本公开实施例的数据移位方法的应用示意图;
图3示出根据本公开实施例的数据移位装置的框图;
图4示出根据本公开实施例的组合处理装置的结构图;
图5示出根据本公开实施例的板卡的结构示意图;
图6示出根据本公开实施例的电子设备的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的数据移位方法可应用于处理器中,以提高处理器的处理效率。该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出根据本公开实施例的数据移位方法的流程图,该方法包括:
在步骤S11中,对待移位数据进行分割,获得至少两个待移位子数据;
在步骤S12中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;
在步骤S13中,根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;
在步骤S14中,根据所述目标子数据,确定所述待移位数据移位后的目标数据。
根据本公开的实施例的数据移位方法,可将待移位数据进行分割,获得位长较小的待移位子数据以进行移位,适用于位长更小的移位器,使得同一种移位器能够对多种位长的数据进行移位,提升移位器的复用效率,减小所需的元器件的数量与占用的面积,并减小功耗。
在一种可能的实现方式中,在数据传输等处理过程中,常用到数据移位处理。计算机处理的数据通常为二进制数据,在示例中,待移位数据包括图像数据、音频数据、文本数据中的至少一种,计算机可将这些数据转换为计算机可处理的二进制数据进行处理,例如,进行移位处理。在数据移位时,通常可通过大于或等于数据位长的移位器对数据进行移位处理。例如,可通过位长大于3(例如,5)的移位器对位长为3为的数据进行移位处理,移位器位长大于数据位长的部分数据位可补0或补1等。例如,通过位长为3的移位器对位长为3的二进制数据101进行向右移位时(例如,步长为2),可将低位补0,使数据向右移位,例如,数据101输入移位器时,移位器中的数据为10100,向右移动2位后,数据为00101。向右移位的效果为使数据乘以2n,其中,n为移位的步长,n为正整数。类似地,向左移位的效果为使数据除以2n。移位器中不足以容纳待移位数据或移位后的数据,可丢弃或循环排列超过移位器位长的数据位。本公开对待移位数据的具体数值、位长、移位步长以及移位器的位长不做限制。
在一种可能的实现方式中,通过上述移位器进行数据移位处理时,如果移位器的位长小于移位前或移位后的数据,则可能丢弃或循环排列超长的数据位,造成数据丢失或数据处理精度下降,因而可使用位长超过数据的位长的移位器。而数据的位长可能经常发生变化,同一个移位器难以适应多种数据,造成移位器复用率低,而同时设置多个移位器会造成功耗提升、以及元器件的数量和占用面积增加。
在一种可能的实现方式中,针对上述问题,可将待移位数据按照预定规则进行分割,获得位长较小的子数据,子数据对移位器的要求更低,使得移位器更易适应子数据的移位处理,例如,待移位数据为8位数据,移位器的位长为6,使用该移位器对待移位数据进行移位处理难以保证处理精度,而在将待移位数据分割成两个4位的待移位子数据后,该移位器则可适用于待移位子数据的移位处理。在移位后,两个待移位子数据移位后获得的结果按照上述预定规则进行重组,即可获得将待移位数据移位后的目标数据。上述可保证移位处理的精度,也可无需设置更多的移位器,减少元器件数量与占用面积,并降低功耗,提高移位器复用率。
在一种可能的实现方式中,可首先确定待移位数据是否需要分割,以及分割出的待移位子数据的数量。所述方法还包括:在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
在示例中,如果待移位数据的位长大于用于移位处理的移位器的位长,则如上所述,使用该移位器进行移位处理难以保证处理精度,可对待移位数据进行分割。可基于待移位数据的位长和移位器的位长来确定分割的待移位子数据的数量。例如,可确定待移位数据的位长与移位器的位长的比值,并向上取整,获得待移位子数据的数量。例如,待移位数据为8位数据,移位器的位长为6位,则可确定分割获得的待移位子数据的数量为2个。
在示例中,也可基于待移位数据的位长与移位的步长的总和,与移位器的位长来确定是否需要对待移位数据进行分割,以及分割获得的待移位子数据的数量。例如,如果上述总和大于移位器的位长,则可对待移位数据进行分割,并将上述总和与移位器的位长的比值向上取整,获得待移位子数据的数量,例如,待移位数据为8位,移位的步长为2位,总和为10位,移位器的位长为8位,则可确定分割获得的待移位子数据的数量为2个。本公开对分割的判断标准不做限制。
在一种可能的实现方式中,在步骤S11中,如果需要对待移位数据进行分割,则可按照预设的分割方式进行分割。例如,将待移位数据分成两个待移位子数据,则可将待移位数据的奇数位数据组成一个待移位子数据,将待移位数据的偶数位数据组成另一个待移位子数据。步骤S11可包括:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
在示例中,待移位数据为10110101,则由奇数位数据组成的第一待移位子数据为1100,由偶数位数据组成的第二待移位子数据为0111,本公开对分割方式不做限制。
在示例中,也可分割成更多待移位子数据,例如,可将待移位数据分割为三个待移位子数据,第一个待移位子数据由待移位数据的第1位、第4位、第7位组成,即,110,第二个待移位子数据由待移位数据的第2位、第5位、第8位组成,即001,第三个待移位子数据由待移位数据的第3位、第6位组成,最后一位可补0,即110。还可分割成更多待移位子数据,本公开对分割获得的待移位子数据的数量不做限制。
在一种可能的实现方式中,在获得待移位子数据后,可分别对每个待移位子数据进行移位。可基于待移位数据的第一移位信息,确定各待移位子数据第二移位信息。第一移位信息可包括第一移位方向(例如,向左移位或向右移位),以及第一移位步长。第二移位方向可包括第二移位方向和第二移位步长。
在一种可能的实现方式中,在确定各待移位子数据的第二移位方向时,可使待移位数据和待移位子数据的移位方向保持一致。步骤S12可包括:将所述第一移位方向确定为所述第二移位方向。即,在待移位数据的第一移位方向为向左移位时,各待移位子数据的第二移位方向也为向左移位,在待移位数据的第一移位方向为向右移位时,各待移位子数据的第二移位方向也为向右移位。本公开对第一移位方向和第二移位方向的具体方向不做限制。
在一种可能的实现方式中,还可确定各待移位子数据的第二移位步长。待移位数据的第一移位步长和待移位子数据的第二移位步长是不相等的。由于待移位子数据为待移位数据分割获得的(例如,按照上述数量分割),且待移位子数据进行移位处理后进行重组,获得的是待移位数据进行移位后的数据,因此,待移位子数据的移位步长小于待移位数据的移位步长(例如,待移位子数据的移位步长与待移位数据的移位步长之间的比例可依照上述数量确定)。例如,待移位数据为10110101,由奇数位数据组成的第一待移位子数据为1100,由偶数位数据组成的第二待移位子数据为0111,如果待移位数据向右移动2位,则两个待移位子数据向右移动1位。本公开对移位的步长不做限制。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,其中,步骤S12可包括:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
在示例中,所述比值为第一移位步长与待移位子数据的数量之间的比值,例如,第一移位步长为4,待移位子数据的数量为2个,则所述比值为2。在示例中,第一移位步长为4,待移位子数据的数量为3个,则所述比值为1.33。在示例中,第一移位步长为3,待移位子数据的数量为2个,则所述比值为1.5。在示例中,第一移位步长为3,待移位子数据的数量为3个,则所述比值为1。本公开对所述比值的具体数值不做限制。
在一种可能的实现方式中,可基于上述比例确定第二移位步长,该步骤可包括:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
在示例中,如果所述比值为整数,则可将所述比值确定为第二移位步长,例如,第一移位步长为4,待移位子数据的数量为2个,所述比值为2,则待移位子数据的第二移位步长为2,又例如,第一移位步长为3,待移位子数据的数量为3个,所述比值为1,则待移位子数据的第二移位步长为1。本公开对第二移位步长的具体数值不做限制。
在示例中,如果所述比值不为整数,为了避免重组后获得的目标数据过度移位,则可将所述比值进行向下取整,获得第二移位步长。例如,第一移位步长为4,待移位子数据的数量为3个,所述比值为1.33,向下取整后,每个待移位子数据的第二移位步长为1,则将待移位子数据进行移位后重组获得的数据,为待移位数据进行移位步长为3位的移位处理后获得的数据,可对此数据再进行移位步长为1位的移位处理即可获得目标数据。而如果向上取整,每个待移位子数据的第二移位步长为2,则将待移位子数据进行移位后重组获得的数据,为待移位数据进行移位步长为6位的移位处理后获得的数据,相比于待移位数据进行移位步长为4位的移位处理后获得的目标数据,多移位了2个数据位,该两个数据位可能会丢失,即使向反方向移位2位,也无法获得目标数据,因此,在确定第二移位步长时,如果上述比值不为整数,可进行向下取整,以获得第二移位步长。
在一种可能的实现方式中,在获得各待移位子数据的第二移位信息(包括第二移位方向和第二移位步长)后,可在步骤S13中,根据第二移位信息对各待移位子数据进行移位处理,获得目标子数据。
通过这种方式,可确定各待移位子数据的移位方向和移位步长,以分别对各待移位子数据进行移位处理,从而无需对位长较长的待移位数据进行移位处理,可提高移位器的适用性和复用率。
在一种可能的实现方式中,在移位获得目标子数据后,可在步骤S14中对目标子数据进行重组,获得目标数据。
在一种可能的实现方式中,以将待移位数据分割成两个待移位子数据来举例,待移位数据的奇数位组成第一待移位子数据,待移位数据的偶数位组成待移位数据的偶数位,在进行移位处理后,第一待移位数据移位后获得的目标子数据对应于待移位数据移位处理后的目标数据的奇数位,第二待移位数据移位后获得的目标子数据对应于待移位数据移位处理后的目标数据的偶数位,可根据上述对应关系确定所述目标数据。
在示例中,步骤S14可包括:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
在示例中,待移位数据为10110101,第一待移位子数据为1100,第二待移位子数据为0111。如果待移位数据的向右移位4位,则各待移位子数据均向右移位2位,第一待移位子数据移位后确定的目标子数据为0011,第二待移位子数据移位后确定的目标子数据为0001。如果待移位数据的向右移动5位,各待移位子数据移位的步长仍为2位。移位处理后,可基于第一待移位子数据移位后确定的目标子数据确定目标数据的奇数位数据,并可基于第二待移位子数据移位后确定的目标子数据确定目标数据的偶数位数据。
在一种可能的实现方式中,如果待移位数据的第一移位步长为偶数,即,在确定待移位子数据的第二移位步长时,直接以第一移位步长与待移位子数据的数量之间的比值作为第二移位步长,无需向下取整,则在待移位子数据根据第二移位步长进行移位处理后,获得的目标子数据可直接重组为目标数据,即,待移位数据基于第一移位步长移位后的数据。
在示例中,如果待移位数据为10110101向右移动4位,即,第一移位步长为偶数,则可将上述移位后获得的目标子数据进行重组,获得目标数据,即,将第一待移位子数据移位后确定的目标子数据0011作为目标数据的奇数位,将第二待移位子数据移位后确定的目标子数据0001作为目标数据的偶数位,则目标数据为00001011。
在一种可能的实现方式中,如果待移位数据的第一移位步长为奇数,即,在确定待移位子数据的第二移位步长时,以第一移位步长与待移位子数据的数量之间的比值向下取整后的数值作为第二移位步长,则在待移位子数据根据第二移位步长进行移位处理后,获得的目标子数据重组后还不能直接作为目标数据。因为上述的向下取整过程,导致待移位子数据的第二移位步长小于上述比值,因此,将各待移位子数据的第二移位步长之和小于第一移位步长,例如,如果待移位数据分割为两个待移位子数据,则如果确定第二移位步长时需要向下取整的处理,则两个待移位子数据的第二移位步长之和比第一移位步长小1。在这种情况下,在将各待移位子数据移位后获得的目标子数据进行重组后,还需将重组后获得的合并数据继续移位,直到第二移位步长之和与合并数据继续移位的步长的总和等于第一移位步长,例如,两个待移位子数据移位后获得的目标子数据进行重组后,获得的合并数据还需再移位1位,才可获得目标数据。即,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据,包括:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
在示例中,如果待移位数据为10110101向右移动5位,即,第一移位步长为奇数,则可将上述移位后获得的目标子数据进行重组,获得合并数据,即,将第一待移位子数据移位后确定的目标子数据0011作为合并数据的奇数位,将第二待移位子数据移位后确定的目标子数据0001作为合并数据的偶数位,则合并数据为00001011。将合并数据再移位1位,获得目标数据,即,00000101。
在一种可能的实现方式中,如果获得的待移位子数据的数量超过两个,仍可通过上述方式来确定目标子数据重组后的合并数据是否需要移位,即,如果在确定待移位子数据的第二移位步长时,以第一移位步长与待移位子数据的数量之间的比值向下取整后的数值作为第二移位步长,则在待移位子数据根据第二移位步长进行移位处理后,获得的目标子数据重组后的合并数据还需继续移位才可获得目标数据,继续移位的步长为第一移位步长与各待移位子数据的第二移位步长的总和之间的差。如果在确定待移位子数据的第二移位步长时,无需进行向下取整处理,则可将所述合并数据直接确定为目标数据。
根据本公开的实施例的数据移位方法,可将待移位数据进行分割,获得位长较小的待移位子数据,以分别对各待移位子数据进行移位处理,从而无需对位长较长的待移位数据进行移位处理,适用于位长更小的移位器,使得同一种移位器能够对多种位长的数据进行移位,提升移位器的复用效率,减小所需的元器件的数量与占用的面积,并减小功耗。
图2示出根据本公开实施例的数据移位方法的应用示意图,如图2所示,待移位数据为8位数据,例如,10110101,其奇数位用网格状方块表示,其偶数位用竖条状方块表示。在示例中,可对待移位数据进行分割,获得第一待移位子数据和第二待移位子数据,例如,由奇数位数据组成的第一待移位子数据为1100,由偶数位数据组成的第二待移位子数据为0111。
在一种可能的实现方式中,可确定各待移位子数据的移位信息,例如,待移位数据的第一移位信息为向右移位4位,则各待移位子数据的第二移位信息为向右移位2位。
在一种可能的实现方式中,在根据上述第二移位信息对各待移位子数据进行移位处理后,获得目标子数据。可通过第一待移位子数据移位获得的目标子数据确定目标数据的奇数位数据,并可通过第二以为子数据一位或的目标子数据确定目标数据的偶数位数据。例如,第一待移位子数据移位获得的目标子数据为0011,第二待移位子数据移位获得的目标子数据为0001。
在一种可能的实现方式中,可通过上述两个目标子数据进行重组,获得目标数据,即,第一待移位子数据移位获得的目标子数据0011为目标数据的奇数位,第二待移位子数据移位获得的目标子数据0001为目标数据的偶数位,获得的目标数据为00001011。
在一种可能的实现方式中,所述数据移位方法可用于数据传输等处理过程中,通过将分割后的数据进行移位,再重组的方式,提升移位器的复用率和工作效率,且降低功耗与元器件数量及其占用的面积。
图3示出根据本公开实施例的数据移位装置的框图,如图3所示,所述装置包括:分割模块11,用于对待移位数据进行分割,获得至少两个待移位子数据;移位信息确定模块12,用于根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;移位模块13,用于根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;确定模块14,用于根据所述目标子数据,确定所述待移位数据移位后的目标数据。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,所述移位信息确定模块进一步用于:将所述第一移位方向确定为所述第二移位方向。
在一种可能的实现方式中,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,所述移位信息确定模块进一步用于:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
在一种可能的实现方式中,所述移位信息确定模块进一步用于:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
在一种可能的实现方式中,所述分割模块进一步用于:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
在一种可能的实现方式中,所述确定模块进一步用于:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
在一种可能的实现方式中,所述确定模块进一步用于:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
在一种可能的实现方式中,所述装置还包括:数量确定模块,用于在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
在一种可能的实现方式中,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
图4是示出根据本公开实施例的一种组合处理装置1200的结构图。如图4中所示,该组合处理装置1200包括计算处理装置1202、接口装置1204、其他处理装置1206和存储装置1208。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置1210,该计算装置可以配置用于执行本文结合附图1所描述的操作。
在不同的实施例中,本公开的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本公开的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本公开的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本公开的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本公开的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本公开的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本公开的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本公开还公开了一人工智能种芯片(例如芯片1302),其包括了上述数据移位装置。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个组合处理装置。该芯片可以通过对外接口装置(如对外接口装置1306)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本公开还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本公开还公开了一种板卡,其包括上述的芯片封装结构。
图5是示出根据本公开实施例的一种板卡1300的结构示意图。如图5中所示,该板卡包括用于存储数据的存储器件1304,其包括一个或多个存储单元1310。该存储器件可以通过例如总线等方式与控制器件1308和上文所述的人工智能芯片1302进行连接和数据传输。进一步,该板卡还包括对外接口装置1306,其配置用于芯片(或芯片封装结构中的芯片)与外部设备1312(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行调控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
本领域技术人员可以理解本公开也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本公开的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图6示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图6,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
需要说明的是,为了简明的目的,本公开将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本公开的方案并不受所描述的动作的顺序限制。因此,依据本公开的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本公开所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本公开某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本公开对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本公开某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本公开的公开和教导,本领域技术人员可以理解本公开所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。
在本公开中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本公开实施例所述方案的目的。另外,在一些场景中,本公开实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本公开的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本公开的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本公开方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
依据以下条款可更好地理解前述内容:
例如,条款A1,一种数据移位方法,包括:对待移位数据进行分割,获得至少两个待移位子数据;根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;根据所述目标子数据,确定所述待移位数据移位后的目标数据。
条款A2,根据条款A1所述的方法,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:将所述第一移位方向确定为所述第二移位方向。
条款A3,根据条款A1或A2所述的方法,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
条款A4,根据条款A3所述的方法,根据所述比值,确定所述第二移位步长,包括:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
条款A5,根据条款A1-A4中任一项所述的方法,对待移位数据进行分割,获得至少两个待移位子数据,包括:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
条款A6,根据条款A5所述的方法,根据所述目标子数据,确定所述待移位数据移位后的目标数据,包括:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
条款A7,根据条款A6所述的方法,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据,包括:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
条款A8,根据条款A1-A7中任一项所述的方法,所述方法还包括:在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
条款A9,根据条款A1-A8中任一项所述的方法,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
条款A10,一种所述装置数据移位装置,包括:分割模块,用于对待移位数据进行分割,获得至少两个待移位子数据;移位信息确定模块,用于根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;移位模块,用于根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;确定模块,用于根据所述目标子数据,确定所述待移位数据移位后的目标数据。
条款A11,根据条款A10所述的装置,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,所述移位信息确定模块进一步用于:将所述第一移位方向确定为所述第二移位方向。
条款A12,根据条款A10或A11所述的装置,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,所述移位信息确定模块进一步用于:确定所述第一移位步长与所述待移位子数据的数量之间的比值;根据所述比值,确定所述第二移位步长。
条款A13,根据条款A12所述的装置,所述移位信息确定模块进一步用于:在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
条款A14,根据条款A10-A13中任一项所述的装置,所述分割模块进一步用于:分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
条款A15,根据条款A14所述的装置,所述确定模块进一步用于:根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
条款A16,根据条款A15所述的装置,所述确定模块进一步用于:在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
条款A17,根据条款A10-A16中任一项所述的装置,所述装置还包括:数量确定模块,用于在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
条款A18,根据条款A10-A17中任一项所述的装置,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
虽然本文已经示出和描述了本公开的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本公开思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本公开的过程中,可以采用对本文所描述的本公开实施例的各种替代方案。所附权利要求书旨在限定本公开的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (12)
1.一种数据移位方法,其特征在于,包括:
对待移位数据进行分割,获得至少两个待移位子数据;
根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;
根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;
根据所述目标子数据,确定所述待移位数据移位后的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述第一移位信息包括所述待移位数据的第一移位方向,所述第二移位信息包括所述待移位子数据的第二移位方向,
其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:
将所述第一移位方向确定为所述第二移位方向。
3.根据权利要求1或2所述的方法,其特征在于,所述第一移位信息包括所述待移位数据的第一移位步长,所述第二移位信息包括所述待移位子数据的第二移位步长,
其中,根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息,包括:
确定所述第一移位步长与所述待移位子数据的数量之间的比值;
根据所述比值,确定所述第二移位步长。
4.根据权利要求3所述的方法,其特征在于,根据所述比值,确定所述第二移位步长,包括:
在所述比值为整数的情况下,将所述比值确定为所述第二移位步长;或者
在所述比值为非整数的情况下,对所述比值进行向下取整,获得所述第二移位步长。
5.根据权利要求1-4中任一项所述的方法,其特征在于,对待移位数据进行分割,获得至少两个待移位子数据,包括:
分别提取所述待移位数据的奇数位数据以及偶数位数据,获得由所述奇数位数据组成的第一待移位子数据,以及由所述偶数位数据组成的第二待移位子数据。
6.根据权利要求5所述的方法,其特征在于,根据所述目标子数据,确定所述待移位数据移位后的目标数据,包括:
根据所述第一待移位子数据移位后获得的目标子数据确定所述目标数据的奇数位数据;
根据所述第二待移位子数据移位后获得的目标子数据确定所述目标数据的偶数位数据;
根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据。
7.根据权利要求6所述的方法,其特征在于,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得所述目标数据,包括:
在所述待移位数据的第一移位步长为奇数的情况下,根据所述目标数据的奇数位数据以及所述目标数据的偶数位数据,获得合并数据;
将所述合并数据按照所述待移位数据的第一移位方向进行步长为一位的移位处理,获得所述目标数据。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
在所述待移位数据的位长大于用于移位处理的移位器的位长的情况下,根据所述待移位数据的位长以及所述移位器的位长,确定分割出的所述待移位子数据的数量。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述待移位数据包括图像数据、音频数据、文本数据中的至少一种。
10.一种数据移位装置,其特征在于,包括:
分割模块,用于对待移位数据进行分割,获得至少两个待移位子数据;
移位信息确定模块,用于根据所述待移位数据的第一移位信息以及分割获得的所述待移位子数据的数量,确定所述待移位子数据的第二移位信息;
移位模块,用于根据所述第二移位信息,对所述待移位子数据进行移位处理,获得目标子数据;
确定模块,用于根据所述目标子数据,确定所述待移位数据移位后的目标数据。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至9中任意一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111061491.7A CN115794026A (zh) | 2021-09-10 | 2021-09-10 | 数据移位方法及装置以及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111061491.7A CN115794026A (zh) | 2021-09-10 | 2021-09-10 | 数据移位方法及装置以及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794026A true CN115794026A (zh) | 2023-03-14 |
Family
ID=85417103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111061491.7A Pending CN115794026A (zh) | 2021-09-10 | 2021-09-10 | 数据移位方法及装置以及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794026A (zh) |
-
2021
- 2021-09-10 CN CN202111061491.7A patent/CN115794026A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353124A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111260043A (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN115794026A (zh) | 数据移位方法及装置以及相关产品 | |
CN111382856B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111340202B (zh) | 运算方法、装置及相关产品 | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN112306949B (zh) | 数据处理方法及装置以及相关产品 | |
CN111258732A (zh) | 一种数据处理的方法、数据处理装置和电子设备 | |
CN111047030A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111026440B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
CN111124497B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 |
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 |