CN113626769A - 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 - Google Patents

面向向量处理器的低位宽数据矩阵向量化转置方法及系统 Download PDF

Info

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
Application number
CN202111184815.6A
Other languages
English (en)
Other versions
CN113626769B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202111184815.6A priority Critical patent/CN113626769B/zh
Publication of CN113626769A publication Critical patent/CN113626769A/zh
Application granted granted Critical
Publication of CN113626769B publication Critical patent/CN113626769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex 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字节的矩阵。
因此,如何高效实现低位宽数据矩阵的转置操作,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种面向向量处理器的低位宽数据矩阵向量化转置方法,能够高效的实现低位宽数据矩阵的转置操作。
本发明提供了一种面向向量处理器的低位宽数据矩阵向量化转置方法,包括:
将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上空间;
在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
其中,所述低位宽数据矩阵
Figure 856707DEST_PATH_IMAGE001
的维度为
Figure 751851DEST_PATH_IMAGE002
其中,所述调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间,包括:
调用直接存储器访问操作,将所述低位宽数据矩阵
Figure 174742DEST_PATH_IMAGE001
的子矩阵
Figure 296282DEST_PATH_IMAGE003
加载到片上阵列存储器空间中,变为
Figure 993979DEST_PATH_IMAGE004
,其中
Figure 448357DEST_PATH_IMAGE005
Figure 714253DEST_PATH_IMAGE006
Figure 182143DEST_PATH_IMAGE007
Figure 824477DEST_PATH_IMAGE008
的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
优选地,所述在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵,包括:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为
Figure 631896DEST_PATH_IMAGE009
的子块矩阵
Figure 193328DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间
Figure 23880DEST_PATH_IMAGE011
步骤9、将阵列存储器空间中位置
Figure 561916DEST_PATH_IMAGE011
大小为
Figure 489420DEST_PATH_IMAGE012
的数据加载到向量寄存器VR0和向量寄存器VR1中;
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间
Figure 97119DEST_PATH_IMAGE011
步骤11、将阵列存储器空间中位置
Figure 539602DEST_PATH_IMAGE011
大小为
Figure 586055DEST_PATH_IMAGE012
的数据加载到向量寄存器VR2和向量寄存器VR3中;
步骤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;
步骤18、判断j是否小于
Figure 40170DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,则执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 444869DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,则执行步骤21
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 577910DEST_PATH_IMAGE015
的子矩阵
Figure 365738DEST_PATH_IMAGE016
从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 798993DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成
Figure 748495DEST_PATH_IMAGE001
所有子矩阵的转置。
一种面向向量处理器的低位宽数据矩阵向量化转置系统,包括:
存储模块,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
加载模块,用于调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
转置处理模块,用于在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述低位宽数据矩阵
Figure 837673DEST_PATH_IMAGE001
的维度为
Figure 52361DEST_PATH_IMAGE002
其中,所述加载模块具体用于:
调用直接存储器访问操作,将所述低位宽数据矩阵
Figure 215489DEST_PATH_IMAGE001
的子矩阵
Figure 460525DEST_PATH_IMAGE003
加载到片上阵列存储器空间中,变为
Figure 302579DEST_PATH_IMAGE004
,其中
Figure 166630DEST_PATH_IMAGE005
Figure 574478DEST_PATH_IMAGE006
Figure 131361DEST_PATH_IMAGE007
Figure 493334DEST_PATH_IMAGE008
的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
优选地,所述转置处理模块具体用于:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为
Figure 223393DEST_PATH_IMAGE009
的子块矩阵
Figure 361113DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间
Figure 479111DEST_PATH_IMAGE011
步骤9、将阵列存储器空间中位置
Figure 436703DEST_PATH_IMAGE011
大小为
Figure 236031DEST_PATH_IMAGE012
的数据加载到向量寄存器VR0和向量寄存器VR1中;
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间
Figure 851427DEST_PATH_IMAGE011
步骤11、将阵列存储器空间中位置
Figure 750113DEST_PATH_IMAGE011
大小为
Figure 585214DEST_PATH_IMAGE012
的数据加载到向量寄存器VR2和向量寄存器VR3中;
步骤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;
步骤18、判断j是否小于
Figure 922654DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,则执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 769387DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,则执行步骤21;
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 432450DEST_PATH_IMAGE015
的子矩阵
Figure 990732DEST_PATH_IMAGE016
从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 69547DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成
Figure 364262DEST_PATH_IMAGE001
所有子矩阵的转置。
综上所述,本发明公开了一种面向向量处理器的低位宽数据矩阵向量化转置方法,当需要对低位宽数据矩阵进行向量化转置时,将低位宽数据矩阵存储在双倍速率同步动态随机存储器中,然后调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。本发明能够高效的实现低位宽数据矩阵的转置操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为向量处理器的一般体系结构示意图;
图2为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置方法实施例的方法流程图;
图3为本发明公开的一种低打包操作示意图;
图4为本发明公开的一种高打包操作示意图;
图5为本发明公开的一种以取模方式交错存储的示意图;
图6为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置系统实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置方法实施例的流程图,所述方法可以包括以下步骤:
S201、将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
当需要对面向向量处理器的低位宽数据矩阵进行向量化转置时,首先将低位宽数据矩阵存储在DDR(双倍速率同步动态随机存储器)中。其中,低位宽数据矩阵
Figure 463805DEST_PATH_IMAGE001
的维度为
Figure 148864DEST_PATH_IMAGE002
S202、调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;
具体的,调用直接存储器访问操作,将低位宽数据矩阵
Figure 890424DEST_PATH_IMAGE001
的子矩阵
Figure 711750DEST_PATH_IMAGE003
加载到片上AM(阵列存储器)空间中,变为
Figure 519929DEST_PATH_IMAGE004
,其中
Figure 551339DEST_PATH_IMAGE005
Figure 971956DEST_PATH_IMAGE006
Figure 975684DEST_PATH_IMAGE007
Figure 948188DEST_PATH_IMAGE008
的大小均由AM的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
S203、在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
具体的,可以包括以下步骤:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述AM空间中的低位宽数据矩阵的大小为
Figure 342260DEST_PATH_IMAGE009
的子块矩阵
Figure 864771DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
例如,以FP32矩阵和L=8为例,使用向量加载指令,将FP32 4x16的数据一次性加载到4个向量寄存器VR0、VR1、VR2和VR3中的结果如表1所示。
表1 将FP32 4x32的数据一次性加载到4个向量寄存器VR0、VR1、VR2和VR3中的结果
Figure 785322DEST_PATH_IMAGE017
步骤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中的结果
Figure 804094DEST_PATH_IMAGE018
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
例如,以FP32矩阵和L=8为例,对VR2和VR3中的数据进行低打包操作与高打包操作,结果分别存储在VR5和VR7中的结果如表3所示。
表3 对VR2和VR3中的数据进行低打包操作与高打包操作,结果分别存储在VR5和VR7中的结果
Figure 544517DEST_PATH_IMAGE019
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回AM空间
Figure 369253DEST_PATH_IMAGE011
,如图5所示。
例如,以FP32矩阵和L=8为例,对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果如表4所示。
表4 对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果
Figure 19678DEST_PATH_IMAGE020
步骤9、将AM空间中位置
Figure 832519DEST_PATH_IMAGE011
大小为
Figure 529080DEST_PATH_IMAGE012
的数据加载到向量寄存器VR0和向量寄存器VR1中;
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR0和VR1中的结果如表5所示。
表5 将存回AM空间的数据加载到寄存器VR0和VR1中的结果
Figure 829611DEST_PATH_IMAGE021
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回AM空间
Figure 459176DEST_PATH_IMAGE011
例如,以FP32矩阵和L=8为例,对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果如表6所示。
表6 对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果
Figure 882067DEST_PATH_IMAGE022
步骤11、将AM空间中位置
Figure 472448DEST_PATH_IMAGE011
大小为
Figure 202769DEST_PATH_IMAGE012
的数据加载到向量寄存器VR2和向量寄存器VR3中;
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR2和VR3中的结果如表7所示。
表7 将存回AM空间的数据加载到寄存器VR2和VR3中的结果
Figure 827785DEST_PATH_IMAGE023
步骤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空间中的数据的结果
Figure 421578DEST_PATH_IMAGE024
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第3-4个向量处理部件,将VR0-VR3中第3-4个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表9所示。
表9 通过设置向量单元的Mask状态来开启第3-4个向量处理部件,将VR0-VR3中第3-4个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果
Figure 623889DEST_PATH_IMAGE025
例如,以FP32矩阵和L=8为例,通过设置向量单元的Mask状态来开启第5-6个向量处理部件,将VR0-VR3中第5-6个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果如表10所示。
表10 通过设置向量单元的Mask状态来开启第5-6个向量处理部件,将VR0-VR3中第5-6个向量处理部件对应的数据存储回AM空间中,完成后AM空间中的数据的结果
Figure 644DEST_PATH_IMAGE026
例如,以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空间中的数据的结果
Figure 870380DEST_PATH_IMAGE027
步骤14、令k = k + 2;
步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;
步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;
步骤17、令j = j + 1;
步骤18、判断j是否小于
Figure 307177DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,则执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 698582DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,则执行步骤21;
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 3661DEST_PATH_IMAGE015
的子矩阵
Figure 868849DEST_PATH_IMAGE016
从所述AM空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 601182DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置两个步骤,直到完成
Figure 715768DEST_PATH_IMAGE001
所有子矩阵的转置。
综上所述,本发明提供的面向向量处理器的低位宽数据矩阵向量化转置方法,能够处理任意维度大小的低位宽数据矩阵的转置操作,基于DMA和向量单元完成,所需DMA操作数量显著降低,降低了转置开销;基于向量Load/Store以及向量打包单元,实现矩阵转置的向量化操作,有效利用AM空间的带宽,显著提升了低位宽数据转置的性能。
如图6所示,为本发明公开的一种面向向量处理器的低位宽数据矩阵向量化转置系统实施例的结构示意图,所述系统可以包括:
存储模块601,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
当需要对面向向量处理器的低位宽数据矩阵进行向量化转置时,首先将低位宽数据矩阵存储在DDR(双倍速率同步动态随机存储器)中。其中,低位宽数据矩阵
Figure 699905DEST_PATH_IMAGE001
的维度为
Figure 45698DEST_PATH_IMAGE002
加载模块602,用于调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间;
具体的,调用直接存储器访问操作,将低位宽数据矩阵
Figure 824298DEST_PATH_IMAGE001
的子矩阵
Figure 426181DEST_PATH_IMAGE003
加载到片上AM(阵列存储器)空间中,变为
Figure 338642DEST_PATH_IMAGE004
,其中
Figure 647263DEST_PATH_IMAGE005
Figure 721399DEST_PATH_IMAGE006
Figure 574692DEST_PATH_IMAGE007
Figure 635052DEST_PATH_IMAGE008
的大小均由AM的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
转置处理模块603,用于在阵列存储器空间中,对加载到片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵。
具体的,可以包括以下步骤:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述AM空间中的低位宽数据矩阵的大小为
Figure 453972DEST_PATH_IMAGE009
的子块矩阵
Figure 902271DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
例如,以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所示。
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回AM空间
Figure 416429DEST_PATH_IMAGE011
,如图5所示。
例如,以FP32矩阵和L=8为例,对将VR4和VR5中的数据以地址取模方式交错地存回AM空间的结果如表4所示。
步骤9、将AM空间中位置
Figure 405113DEST_PATH_IMAGE011
大小为
Figure 517688DEST_PATH_IMAGE012
的数据加载到向量寄存器VR0和向量寄存器VR1中;
例如,以FP32矩阵和L=8为例,将存回AM空间的数据加载到寄存器VR0和VR1中的结果如表5所示。
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回AM空间
Figure 74571DEST_PATH_IMAGE011
例如,以FP32矩阵和L=8为例,对将VR6和VR7中的数据以地址取模方式交错地存回AM空间的结果如表6所示。
步骤11、将AM空间中位置
Figure 138342DEST_PATH_IMAGE011
大小为
Figure 196297DEST_PATH_IMAGE012
的数据加载到向量寄存器VR2和向量寄存器VR3中;
例如,以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;
步骤18、判断j是否小于
Figure 661914DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 389698DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,执行步骤21;
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 439300DEST_PATH_IMAGE015
的子矩阵
Figure 300946DEST_PATH_IMAGE016
从所述AM空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 621069DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置两个步骤,直到完成
Figure 519755DEST_PATH_IMAGE001
所有子矩阵的转置。
综上所述,本发明提供的面向向量处理器的低位宽数据矩阵向量化转置系统,能够处理任意维度大小的低位宽数据矩阵的转置操作,基于DMA和向量单元完成,所需DMA操作数量显著降低,降低了转置开销;基于向量Load/Store以及向量打包单元,实现矩阵转置的向量化操作,有效利用AM空间的带宽,显著提升了低位宽数据转置的性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (4)

1.一种面向向量处理器的低位宽数据矩阵向量化转置方法,其特征在于,包括:
将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述低位宽数据矩阵
Figure 398404DEST_PATH_IMAGE001
的维度为
Figure 941381DEST_PATH_IMAGE002
其中,所述调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间,包括:
调用直接存储器访问操作,将所述低位宽数据矩阵
Figure 532024DEST_PATH_IMAGE001
的子矩阵
Figure 543449DEST_PATH_IMAGE003
加载到片上阵列存储器空间中,变为
Figure 70027DEST_PATH_IMAGE004
,其中
Figure 783905DEST_PATH_IMAGE005
Figure 891538DEST_PATH_IMAGE006
Figure 614643DEST_PATH_IMAGE007
Figure 727218DEST_PATH_IMAGE008
的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
2.根据权利要求1所述的方法,其特征在于,所述在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵,包括:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为
Figure 877577DEST_PATH_IMAGE009
的子块矩阵
Figure 206927DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间
Figure 936985DEST_PATH_IMAGE011
步骤9、将阵列存储器空间中位置
Figure 166716DEST_PATH_IMAGE011
大小为
Figure 222397DEST_PATH_IMAGE012
的数据加载到向量寄存器VR0和向量寄存器VR1中;
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间
Figure 507885DEST_PATH_IMAGE011
步骤11、将阵列存储器空间中位置
Figure 572793DEST_PATH_IMAGE011
大小为
Figure 424074DEST_PATH_IMAGE012
的数据加载到向量寄存器VR2和向量寄存器VR3中;
步骤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;
步骤18、判断j是否小于
Figure 152121DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,则执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 456063DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,则执行步骤21;
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 59083DEST_PATH_IMAGE015
的子矩阵
Figure 280984DEST_PATH_IMAGE016
从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 944047DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成
Figure 469706DEST_PATH_IMAGE001
所有子矩阵的转置。
3.一种面向向量处理器的低位宽数据矩阵向量化转置系统,其特征在于,包括:
存储模块,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;
加载模块,用于调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;
转置处理模块,用于在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;
其中,所述低位宽数据矩阵
Figure 876416DEST_PATH_IMAGE001
的维度为
Figure 938176DEST_PATH_IMAGE002
其中,所述加载模块具体用于:
调用直接存储器访问操作,将所述低位宽数据矩阵
Figure 506560DEST_PATH_IMAGE001
的子矩阵
Figure 785095DEST_PATH_IMAGE003
加载到片上阵列存储器空间中,变为
Figure 729917DEST_PATH_IMAGE004
,其中
Figure 174411DEST_PATH_IMAGE005
Figure 648118DEST_PATH_IMAGE006
Figure 148370DEST_PATH_IMAGE007
Figure 896883DEST_PATH_IMAGE008
的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
4.根据权利要求3所述的系统,其特征在于,所述转置处理模块具体用于:
步骤1、初始化i=0,其中,i表示M维上的块index;
步骤2、初始化j=0,其中,j表示N维上的块index;
步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为
Figure 667655DEST_PATH_IMAGE009
的子块矩阵
Figure 843421DEST_PATH_IMAGE010
的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;
步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;
步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;
步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;
步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;
步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间
Figure 830969DEST_PATH_IMAGE011
步骤9、将阵列存储器空间中位置
Figure 117594DEST_PATH_IMAGE011
大小为
Figure DEST_PATH_IMAGE017
的数据加载到向量寄存器VR0和向量寄存器VR1中;
步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间
Figure 808119DEST_PATH_IMAGE011
步骤11、将阵列存储器空间中位置
Figure 154787DEST_PATH_IMAGE011
大小为
Figure 364051DEST_PATH_IMAGE017
的数据加载到向量寄存器VR2和向量寄存器VR3中;
步骤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;
步骤18、判断j是否小于
Figure 188788DEST_PATH_IMAGE013
,若是,则返回步骤3,若否,则执行步骤19;
步骤19、令i = i + 1;
步骤20、判断i是否小于
Figure 668573DEST_PATH_IMAGE014
,若是,则返回步骤2,若否,则执行步骤21;
步骤21、调用直接存储器访问操作,将所述转置后的矩阵
Figure 451721DEST_PATH_IMAGE015
的子矩阵
Figure 413861DEST_PATH_IMAGE016
从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;
步骤22、判断
Figure 42288DEST_PATH_IMAGE001
的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成
Figure 904809DEST_PATH_IMAGE001
所有子矩阵的转置。
CN202111184815.6A 2021-10-12 2021-10-12 面向向量处理器的低位宽数据矩阵向量化转置方法及系统 Active CN113626769B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 英特尔公司 用于访问矩阵操作数的多变量跨步读取操作

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
王庆林: "面向飞腾多核处理器的Winograd快速卷积算法优化", 《计算机研究与发展》 *
王蕊: "基于卷积神经网络的嵌入式图像识别系统与优化", 《中国优秀硕士学位论文全文数据库》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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