CN113626769A - 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 - Google Patents
面向向量处理器的低位宽数据矩阵向量化转置方法及系统 Download PDFInfo
- Publication number
- CN113626769A CN113626769A CN202111184815.6A CN202111184815A CN113626769A CN 113626769 A CN113626769 A CN 113626769A CN 202111184815 A CN202111184815 A CN 202111184815A CN 113626769 A CN113626769 A CN 113626769A
- Authority
- CN
- China
- Prior art keywords
- vector
- matrix
- memory space
- vector register
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种面向向量处理器的低位宽数据矩阵向量化转置方法及系统,方法包括:将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。本发明能够高效的实现低位宽数据矩阵的转置操作。
Description
技术领域
本发明涉及向量处理器技术领域,尤其涉及一种面向向量处理器的低位宽数据矩阵向量化转置方法及系统。
背景技术
向量处理器是一种新型的体系结构,如图1所示,包含进行标量运算的标量处理单元(SPU)和进行向量运算的向量处理单元(VPU),以及负责数据传输的直接存储器访问(Direct Memory Access,DMA)部件等。SPU由标量处理部件SPE和标量存储器SM构成。VPU由L个向量处理部件VPE和阵列存储器AM构成,L个向量处理部件VPE以单指令多数据(SIMD)的方式协作运行,支持指定VPE 部件的关闭与开启,但不支持多个VPE之间的数据交互。单个VPE一次可以处理1个8字节数据(如FP64、Int64),也可以处理2个4字节数据(如FP32,Int32)。DMA部件负责SM与DDR、AM与DDR之间的数据传输,其操作的最小粒度也是8字节。
矩阵转置是矩阵运算中最常见的一种操作,其效率高低对应用的性能影响较大。对于单个元素位宽为8字节的矩阵来说,只需通过DMA操作将数据在向量处理器的AM空间与片外DDR之间进行搬移,便可高效完成整个矩阵的转置操作。如上述所述,DMA操作的最小粒度是8字节。因此仅通过DMA操作的方式来进行矩阵转置操作将不再适合于单个元素位宽为4字节的矩阵。
因此,如何高效实现低位宽数据矩阵的转置操作,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种面向向量处理器的低位宽数据矩阵向量化转置方法,能够高效的实现低位宽数据矩阵的转置操作。
本发明提供了一种面向向量处理器的低位宽数据矩阵向量化转置方法,包括:
将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上空间;
在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
其中,所述调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间,包括:
优选地,所述在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵,包括:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤12、初始化k=0,其中,K表示处理向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
一种面向向量处理器的低位宽数据矩阵向量化转置系统,包括:
存储模块,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
加载模块,用于调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
转置处理模块,用于在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述加载模块具体用于:
优选地,所述转置处理模块具体用于:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤12、初始化k=0,其中,K表示处理向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
综上所述,本发明公开了一种面向向量处理器的低位宽数据矩阵向量化转置方法,当需要对低位宽数据矩阵进行向量化转置时,将低位宽数据矩阵存储在双倍速率同步动态随机存储器中,然后调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。本发明能够高效的实现低位宽数据矩阵的转置操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为向量处理器的一般体系结构示意图;
图2为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置方法实施例的方法流程图;
图3为本发明公开的一种低打包操作示意图;
图4为本发明公开的一种高打包操作示意图;
图5为本发明公开的一种以取模方式交错存储的示意图;
图6为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置系统实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置方法实施例的流程图,所述方法可以包括以下步骤:
S201、将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
S202、调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;
S203、在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
具体的,可以包括以下步骤:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
例如,以FP32矩阵和L=8为例,使用向量加载指令,将FP32 4x16的数据一次性加载到4个向量寄存器VR0、VR1、VR2和VR3中的结果如表1所示。
表1 将FP32 4x32的数据一次性加载到4个向量寄存器VR0、VR1、VR2和VR3中的结果
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中,如图3所示;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中,如图4所示;
例如,以FP32矩阵和L=8为例,对VR0和VR1中的数据进行低打包操作与高打包操作,结果分别存储在VR4和VR6中的结果如表2所示。
表2 对VR0和VR1中的数据进行低打包操作与高打包操作,结果分别存储在VR4和VR6中的结果
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
例如,以FP32矩阵和L=8为例,对VR2和VR3中的数据进行低打包操作与高打包操作,结果分别存储在VR5和VR7中的结果如表3所示。
表3 对VR2和VR3中的数据进行低打包操作与高打包操作,结果分别存储在VR5和VR7中的结果
例如,以FP32矩阵和L=8为例,对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果如表4所示。
表4 对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR0和VR1中的结果如表5所示。
表5 将存回AM空间的数据加载到寄存器VR0和VR1中的结果
例如,以FP32矩阵和L=8为例,对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果如表6所示。
表6 对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR2和VR3中的结果如表7所示。
表7 将存回AM空间的数据加载到寄存器VR2和VR3中的结果
步骤12、初始化k=0,其中,K表示向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回AM空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回AM空间对应位置;
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第1-2个向量处理部件,将VR0-VR3中第1-2个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表8所示。
表8 通过设置向量单元的Mask状态来开启第1-2个向量处理部件,将VR0-VR3中第1-2个VPE对应的数据存储回AM空间中,完成后AM空间中的数据的结果
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第3-4个向量处理部件,将VR0-VR3中第3-4个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表9所示。
表9 通过设置向量单元的Mask状态来开启第3-4个向量处理部件,将VR0-VR3中第3-4个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第5-6个向量处理部件,将VR0-VR3中第5-6个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表10所示。
表10 通过设置向量单元的Mask状态来开启第5-6个向量处理部件,将VR0-VR3中第5-6个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第7-8个VPE,将VR0-VR3中第7-8个VPE对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表11所示。
表11 通过设置向量单元的Mask状态来开启第7-8个VPE,将VR0-VR3中第7-8个VPE对应的数据存储回AM空间中,完成后AM空间中的数据的结果
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
综上所述,本发明提供的面向向量处理器的低位宽数据矩阵向量化转置方法,能够处理任意维度大小的低位宽数据矩阵的转置操作,基于DMA和向量单元完成,所需DMA操作数量显著降低,降低了转置开销;基于向量Load/Store以及向量打包单元,实现矩阵转置的向量化操作,有效利用AM空间的带宽,显著提升了低位宽数据转置的性能。
如图6所示,为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置系统实施例的结构示意图,所述系统可以包括:
存储模块601,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
加载模块602,用于调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;
转置处理模块603,用于在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
具体的,可以包括以下步骤:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
例如,以FP32矩阵和L=8为例,使用向量加载指令,将FP32 4x16的数据一次性加载到4个向量寄存器VR0、VR1、VR2和VR3中的结果如表1所示。
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中,如图3所示;
步骤5基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中,如图4所示;
例如,以FP32矩阵和L=8为例,对VR0和VR1中的数据进行低打包操作与高打包操作,结果分别存储在VR4和VR6中的结果如表2所示。
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
例如,以FP32矩阵和L=8为例,对VR2和VR3中的数据进行低打包操作与高打包操作,结果分别存储在VR5和VR7中的结果如表3所示。
例如,以FP32矩阵和L=8为例,对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果如表4所示。
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR0和VR1中的结果如表5所示。
例如,以FP32矩阵和L=8为例,对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果如表6所示。
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR2和VR3中的结果如表7所示。
步骤12、初始化k=0,其中,K表示向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回AM空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回AM空间对应位置;
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第1-2个向量处理部件,将VR0-VR3中第1-2个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表8所示。
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第3-4个向量处理部件,将VR0-VR3中第3-4个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表9所示。
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第5-6个向量处理部件,将VR0-VR3中第5-6个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表10所示。
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第7-8个VPE,将VR0-VR3中第7-8个VPE对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表11所示。
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
综上所述,本发明提供的面向向量处理器的低位宽数据矩阵向量化转置系统,能够处理任意维度大小的低位宽数据矩阵的转置操作,基于DMA和向量单元完成,所需DMA操作数量显著降低,降低了转置开销;基于向量Load/Store以及向量打包单元,实现矩阵转置的向量化操作,有效利用AM空间的带宽,显著提升了低位宽数据转置的性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (4)
1.一种面向向量处理器的低位宽数据矩阵向量化转置方法,其特征在于,包括:
将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间,包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵,包括:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤12、初始化k=0,其中,K表示向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
3.一种面向向量处理器的低位宽数据矩阵向量化转置系统,其特征在于,包括:
存储模块,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
加载模块,用于调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
转置处理模块,用于在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述加载模块具体用于:
4.根据权利要求3所述的系统,其特征在于,所述转置处理模块具体用于:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤12、初始化k=0,其中,K表示向量处理部件的index;
步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤19、令i = i + 1;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111184815.6A CN113626769B (zh) | 2021-10-12 | 2021-10-12 | 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111184815.6A CN113626769B (zh) | 2021-10-12 | 2021-10-12 | 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626769A true CN113626769A (zh) | 2021-11-09 |
CN113626769B CN113626769B (zh) | 2022-01-21 |
Family
ID=78391046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111184815.6A Active CN113626769B (zh) | 2021-10-12 | 2021-10-12 | 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626769B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138692A (zh) * | 2021-12-10 | 2022-03-04 | 中国人民解放军国防科技大学 | 向量处理器的低位宽数据矩阵向量化列裁剪方法及系统 |
CN114281755A (zh) * | 2021-12-30 | 2022-04-05 | 中国人民解放军国防科技大学 | 一种面向向量处理器的半精度向量化卷积方法及系统 |
CN114330669A (zh) * | 2021-12-30 | 2022-04-12 | 中国人民解放军国防科技大学 | 一种面向向量处理器的半精度向量化conv1×1卷积方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446252A (zh) * | 2017-02-16 | 2018-08-24 | 谷歌有限责任公司 | 矩阵向量处理器中的转置 |
CN108573304A (zh) * | 2017-03-09 | 2018-09-25 | 谷歌有限责任公司 | 硬件中转置神经网络矩阵 |
US20190095399A1 (en) * | 2017-09-26 | 2019-03-28 | Oracle International Corporation | Assymetric allocation of sram and data layout for efficient matrix multiplication |
US10380502B2 (en) * | 2014-11-20 | 2019-08-13 | International Business Machines Corporation | Calculation apparatus, calculation method, learning apparatus, learning method, and program |
CN110914813A (zh) * | 2017-05-17 | 2020-03-24 | 德里克·约翰·哈姆林 | 数字处理连接性 |
US10776110B2 (en) * | 2018-09-29 | 2020-09-15 | Intel Corporation | Apparatus and method for adaptable and efficient lane-wise tensor processing |
US10929503B2 (en) * | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
CN112445526A (zh) * | 2019-08-29 | 2021-03-05 | 英特尔公司 | 用于访问矩阵操作数的多变量跨步读取操作 |
-
2021
- 2021-10-12 CN CN202111184815.6A patent/CN113626769B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10380502B2 (en) * | 2014-11-20 | 2019-08-13 | International Business Machines Corporation | Calculation apparatus, calculation method, learning apparatus, learning method, and program |
CN108446252A (zh) * | 2017-02-16 | 2018-08-24 | 谷歌有限责任公司 | 矩阵向量处理器中的转置 |
CN108573304A (zh) * | 2017-03-09 | 2018-09-25 | 谷歌有限责任公司 | 硬件中转置神经网络矩阵 |
CN110914813A (zh) * | 2017-05-17 | 2020-03-24 | 德里克·约翰·哈姆林 | 数字处理连接性 |
US20190095399A1 (en) * | 2017-09-26 | 2019-03-28 | Oracle International Corporation | Assymetric allocation of sram and data layout for efficient matrix multiplication |
US10776110B2 (en) * | 2018-09-29 | 2020-09-15 | Intel Corporation | Apparatus and method for adaptable and efficient lane-wise tensor processing |
US10929503B2 (en) * | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
CN112445526A (zh) * | 2019-08-29 | 2021-03-05 | 英特尔公司 | 用于访问矩阵操作数的多变量跨步读取操作 |
Non-Patent Citations (2)
Title |
---|
王庆林: "面向飞腾多核处理器的Winograd快速卷积算法优化", 《计算机研究与发展》 * |
王蕊: "基于卷积神经网络的嵌入式图像识别系统与优化", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138692A (zh) * | 2021-12-10 | 2022-03-04 | 中国人民解放军国防科技大学 | 向量处理器的低位宽数据矩阵向量化列裁剪方法及系统 |
CN114138692B (zh) * | 2021-12-10 | 2023-06-20 | 中国人民解放军国防科技大学 | 向量处理器的低位宽数据矩阵向量化列裁剪方法及系统 |
CN114281755A (zh) * | 2021-12-30 | 2022-04-05 | 中国人民解放军国防科技大学 | 一种面向向量处理器的半精度向量化卷积方法及系统 |
CN114330669A (zh) * | 2021-12-30 | 2022-04-12 | 中国人民解放军国防科技大学 | 一种面向向量处理器的半精度向量化conv1×1卷积方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113626769B (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113626769B (zh) | 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 | |
US11803377B2 (en) | Efficient direct convolution using SIMD instructions | |
US11468003B2 (en) | Vector table load instruction with address generation field to access table offset value | |
US10140251B2 (en) | Processor and method for executing matrix multiplication operation on processor | |
JP4380987B2 (ja) | アレイ処理動作 | |
US8200948B2 (en) | Apparatus and method for performing re-arrangement operations on data | |
US20020042869A1 (en) | System and method for performing table look-ups using a multiple data fetch architecture | |
RU2139564C1 (ru) | Устройство для выполнения операций умножения-сложения с упакованными данными | |
JP2010521728A (ja) | データ圧縮のための回路及びこれを用いるプロセッサ | |
JP2008513903A (ja) | シャッフル演算のためのマイクロプロセッサデバイス及び方法 | |
US20120072704A1 (en) | "or" bit matrix multiply vector instruction | |
JP6079433B2 (ja) | 移動平均処理プログラム、及びプロセッサ | |
Hao et al. | A three-dimensional DFT algorithm using the fast Hartley transform | |
US20080288756A1 (en) | "or" bit matrix multiply vector instruction | |
CN114330669B (zh) | 一种面向向量处理器的半精度向量化conv1×1卷积方法及系统 | |
CN112966729A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114329326A (zh) | 向量处理器的低位宽数据矩阵向量化列扩展方法及系统 | |
TWI766056B (zh) | 用於資料處理的方法、設備、電腦程式及電腦可讀取儲存媒體 | |
JP2000322235A (ja) | 情報処理装置 | |
KR20150065152A (ko) | 스레드 오프셋 카운터 | |
JP2009507292A (ja) | 分離したシリアルモジュールを備えるプロセッサアレイ | |
CN110109704B (zh) | 一种数字信号处理系统 | |
CN114138692B (zh) | 向量处理器的低位宽数据矩阵向量化列裁剪方法及系统 | |
US9069685B2 (en) | Digital signal processor having instruction set with one or more non-linear functions using reduced look-up table | |
CN117493748A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |