CN116361609A - 一种二维矩阵运算的降维数据处理方法及硬件构架 - Google Patents
一种二维矩阵运算的降维数据处理方法及硬件构架 Download PDFInfo
- Publication number
- CN116361609A CN116361609A CN202310324872.2A CN202310324872A CN116361609A CN 116361609 A CN116361609 A CN 116361609A CN 202310324872 A CN202310324872 A CN 202310324872A CN 116361609 A CN116361609 A CN 116361609A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping
- register
- source
- dimensional
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 title claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 230000008707 rearrangement Effects 0.000 claims abstract description 19
- 239000013598 vector Substances 0.000 claims abstract description 17
- 238000003672 processing method Methods 0.000 claims description 7
- 238000009825 accumulation Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种二维矩阵运算的降维数据处理方法及硬件构架,包括N行N列二维矩阵运算单元、指令槽、重排寄存器;根据并行指令,将选中的带有寄存器源的运算矩阵进行映射降维,得到对应的一维向量,用于存放运算所需数据;译码器提供该一维向量的数据索引,将从通用寄存器堆中读取出的运算所需数据,存入一维向量的对应位置;最后将一维向量中的数据广播到对应行/列的运算单元,供后续运算使用。通过本发明提出的降维数据处理方法及硬件构架,使得后续寄存器译码信号和数据走线数量降低N倍,从而减少了硬件逻辑单元数量,降低了电路面积和功耗,减小了电路线布线难度。
Description
技术领域
本发明涉及DSP芯片设计技术领域,尤其是一种二维矩阵运算的降维数据处理方法及硬件构架。
背景技术
数字信号处理(DSP)技术,因其具有高速数据处理能力以及强大的指令系统,使其能够快速、实时地实现各种数字信号处理运算,而获得广泛应用。
在DSP芯片设计过程中,矩阵运算单元是芯片高算力的来源,也是DSP芯片设计的重点和难点。目前,对于N行N列的矩阵运算单元,现有的寄存器堆数据源选择方案是通过译码器一一对应的数据译码方式来实现。若每个运算单元需要一个寄存器数据源,则需要N*N个寄存器译码信号和N*N个寄存器数据位宽的电路走线;若每个运算单元需要两个寄存器数据源,则需要的寄存器译码信号和寄存器数据位宽的电路走线量会再多一倍,存在电路逻辑单元数量多、面积大、功耗高、布线难的缺点。
发明内容
针对上述技术问题,本发明提出一种二维矩阵运算的降维数据处理方法及硬件构架。
本发明保护一种二维矩阵运算的降维数据处理方法,对于N行N列的二维运算单元阵列,根据并行指令,将选中的带有寄存器源的运算矩阵进行映射降维,得到对应的一维向量,用于存放运算所需数据;译码器提供该一维向量的数据索引,将从通用寄存器堆中读取出的运算所需数据,存入一维向量的对应位置;最后将一维向量中的数据广播到对应行/列的运算单元,供后续运算使用。
进一步的,指令依次由指令类型代码、目的寻址代码、源1寻址代码、源2寻址代码构成;
目的寻址代码为ACC[r,#p,c,#q],表示运算后的结果存入累加寄存器,选中的运算矩阵为从矩阵左上角坐标(r,c)起至右下角坐标(r+p-1,c+q-1)止,其中r+p≤N且c+q≤N;
源1、源2至少有一个来自通用寄存器,其寻址代码为R[s,#t],表示选中的运算单元的计算数据来自通用寄存器堆,寄存器堆译码索引从s开始,连续t个,译码索引号分别为s、s+1、…、s+t-1,其中t<=N,s+t≤K,K为通用寄存器堆的寄存器数量。
进一步的,映射降维为横向映射或纵向映射;若进行横向映射,则最后将一维向量中的数据广播到对应行的运算单元;若进行纵向映射,则最后将一维向量中的数据广播到对应列的运算单元。
本发明还保护一种二维矩阵运算的降维数据处理硬件构架,基于上述降维数据处理方法,包括N行N列二维矩阵运算单元、指令槽、重排寄存器;指令槽,用于存放指令,每个指令槽存放一个指令,其数量根据芯片设计需求确定;重排寄存器,用于存放映射降维后的运算所需数据,若映射降维为横向映射,重排寄存器中的数据广播到运算矩阵的对应行,若映射降维为纵向映射,重排寄存器中的数据广播到运算矩阵的对应列;源1、源2各匹配一个重排寄存器。
通过本发明提出的降维数据处理方法及硬件构架,使得后续寄存器译码信号和数据走线数量降低N倍,从而减少了硬件逻辑单元数量,降低了电路面积和功耗,减小了电路线布线难度。
附图说明
图1为N行N列的二维运算单元阵列示意图;
图2为PE电路结构图;
图3为矩阵乘法运算指令示意图;
图4为纵向映射降维示意图;
图5为纵向映射降维时的位置冲突示意图;
图6为源操作数获取及广播示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
本实施例结合图示,对本发明提供的二维矩阵运算的降维数据处理方法进行展开阐述。
图1为N行N列的二维运算单元阵列示意图,其中每个方形格表示一个运算单元PE,图2为PE电路结构图,由于PE电路结构属于现有技术,并非本发明的主要内容,在此不予赘述。
为了便于区分每个PE的位置,二维运算单元阵列中的每个PE单元有其坐标,为指令的定义提供了坐标支持,例如坐标(2,0)表示第2行、第0列的PE。
图3给出的指令示例是根据降维数据处理而设计的,依次由指令类型代码、目的寻址代码、源1寻址代码、源2寻址代码构成。
指令类型mat.mul.w表示该指令是32位数据的矩阵乘法运算。
目的寻址代码为ACC[r,#p,c,#q],表示运算后的结果存入累加寄存器,选中的运算矩阵为从矩阵左上角坐标(r,c)起至右下角坐标(r+p-1,c+q-1)止,其中r+p≤N且c+q≤N。
源1寻址代码为R[s1,#t],表示选中的运算单元的计算数据来自通用寄存器堆,寄存器堆译码索引从s1开始,连续t个,译码索引号分别为s1、s1+1、…、s+t-1,其中t<=N,s1+t≤K,K为通用寄存器堆的寄存器数量。
源2寻址代码为R[s2,#t],表示选中的运算单元的计算数据来自通用寄存器堆,寄存器堆译码索引从s2开始,连续t个,译码索引号分别为s2、s2+1、…、s+t-1,其中t<=N,s2+t≤K,K为通用寄存器堆的寄存器数量。
两条指令中间以双竖线分隔,表示两条指令并行执行,例如mat.mul.wACC[2,#2,0,#3],R[s1,#3],R[s2,#3]||mat.mul.wACC[1,#2,4,#2],R[s1',#2],R[s2',#2],就是并行执行的两条指令,其中,指令1选中的运算矩阵为从第2行第0列起的两行三列,指令2选中的运算矩阵为从第1行第4列起的两行两列,如图4所示。
指令1执行的操作是,将通用寄存器s1其连续3个数与通用寄存器s2起连续3个数逐一相乘,相乘的结果存入选中的累加寄存器中;指令2执行的操作是,将通用寄存器s1'其连续2个数与通用寄存器s2'起连续2个数逐一相乘,相乘的结果存入选中的累加寄存器中。
对选中的PE矩阵进行纵向映射降维,得到对应的一维向量,图4中以源1寄存器数据为例,得到一组源1的重排寄存器,用于为选中的PE矩阵运算提供源1寄存器数据。源2寄存器数据通过同样的方式获取。
当然,在纵向映射过程中,并行指令之间运算矩阵选择不能出现位置冲突,位置冲突示意参照图5,图5对应的并行指令为mat.mul.w ACC[2,#2,0,#3],R[s1,#3],R[s2,#3]||mat.mul.wACC[1,#1,2,#4],R[s1',#4],R[s2',#4]。指令1选中的运算矩阵为从第2行第0列起的两行三列,指令2选中的运算矩阵为从第1行第2列起的一行四列,在第2列产生位置冲突。若是发生位置冲突,则表示并行指令不满足指令约束要求,写指令时需避免位置冲突的发生。
本发明提出的降维数据处理,针对是来自通用寄存器的源操作数,因此源操作数采用寄存器寻址。译码器从指令中解析出数据索引,根据该索引从通用寄存器堆中读取出的运算所需数据,存入重排寄存器;最后将重排寄存器中的数据广播到对应列的运算单元(参照图6),即一列运算单元共用同一个数据。图6示意为三个指令并行执行。
在矩阵乘法运算过程中,源1操作数与源2操作数分别输入对应PE,完成乘法操作,运算结果累加至ACC,实现乘累加运算。
本实施例主要以纵向映射为例进行说明,横向映射原理完全一致。当t=p≠q时,选择横向映射;当t=q≠p时,选择纵向映射;当t=p=q时,在不存在位置冲突的情况下,两者均可。由于同时实现纵向映射和横向映射,硬件开销较大,单独的纵向映射或横向映射即可满足应用需求。
实施例2
基于实施例1的二维矩阵运算的降维数据处理硬件构架,括N行N列二维矩阵运算单元、指令槽、重排寄存器。
指令槽,用于存放指令,每个指令槽存放一个指令,其数量根据芯片设计需求确定。
重排寄存器,用于存放映射降维后的运算所需数据,若映射降维为横向映射,重排寄存器中的数据广播到运算矩阵的对应行,若映射降维为纵向映射,重排寄存器中的数据广播到运算矩阵的对应列;源1、源2各匹配一个重排寄存器。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
Claims (4)
1.一种二维矩阵运算的降维数据处理方法,其特征在于,对于N行N列的二维运算单元阵列,根据并行指令,将选中的带有寄存器源的运算矩阵进行映射降维,得到对应的一维向量,用于存放运算所需数据;译码器提供该一维向量的数据索引,将从通用寄存器堆中读取出的运算所需数据,存入一维向量的对应位置;最后将一维向量中的数据广播到对应行/列的运算单元,供后续运算使用。
2.根据权利要求1所述的二维矩阵运算的降维数据处理方法,其特征在于,指令依次由指令类型代码、目的寻址代码、源1寻址代码、源2寻址代码构成;
目的寻址代码为ACC[r,#p,c,#q],表示运算后的结果存入累加寄存器,选中的运算矩阵为从矩阵左上角坐标(r,c)起至右下角坐标(r+p-1,c+q-1)止,其中r+p≤N且c+q≤N;
源1、源2至少有一个来自通用寄存器,其寻址代码为R[s,#t],表示选中的运算单元的计算数据来自通用寄存器堆,寄存器堆译码索引从s开始,连续t个,译码索引号分别为s、s+1、…、s+t-1,其中t<=N,s+t≤K,K为通用寄存器堆的寄存器数量。
3.根据权利要求2所述的二维矩阵运算的降维数据处理方法,其特征在于,映射降维为横向映射或纵向映射;若进行横向映射,则最后将一维向量中的数据广播到对应行的运算单元;若进行纵向映射,则最后将一维向量中的数据广播到对应列的运算单元。
4.一种基于权利要求1所述二维矩阵运算的降维数据处理方法的硬件构架,其特征在于,包括N行N列二维矩阵运算单元、指令槽、重排寄存器;
指令槽,用于存放指令,每个指令槽存放一个指令,其数量根据芯片设计需求确定;
重排寄存器,用于存放映射降维后的运算所需数据,若映射降维为横向映射,重排寄存器中的数据广播到运算矩阵的对应行,若映射降维为纵向映射,重排寄存器中的数据广播到运算矩阵的对应列;源1、源2各匹配一个重排寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310324872.2A CN116361609A (zh) | 2023-03-30 | 2023-03-30 | 一种二维矩阵运算的降维数据处理方法及硬件构架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310324872.2A CN116361609A (zh) | 2023-03-30 | 2023-03-30 | 一种二维矩阵运算的降维数据处理方法及硬件构架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116361609A true CN116361609A (zh) | 2023-06-30 |
Family
ID=86917672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310324872.2A Pending CN116361609A (zh) | 2023-03-30 | 2023-03-30 | 一种二维矩阵运算的降维数据处理方法及硬件构架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116361609A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861149A (zh) * | 2023-09-05 | 2023-10-10 | 之江实验室 | 卷积运算的优化方法、装置及处理器 |
-
2023
- 2023-03-30 CN CN202310324872.2A patent/CN116361609A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861149A (zh) * | 2023-09-05 | 2023-10-10 | 之江实验室 | 卷积运算的优化方法、装置及处理器 |
CN116861149B (zh) * | 2023-09-05 | 2024-01-09 | 之江实验室 | 卷积运算的优化方法、装置及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8539201B2 (en) | Transposing array data on SIMD multi-core processor architectures | |
US6175892B1 (en) | Registers and methods for accessing registers for use in a single instruction multiple data system | |
EP0450658A2 (en) | Parallel pipelined instruction processing system for very long instruction word | |
US20110264723A1 (en) | System and method for successive matrix transposes | |
CN112784973B (zh) | 卷积运算电路、装置以及方法 | |
KR100503094B1 (ko) | 넓은 메모리 밴드위스를 갖는 디지털 신호 처리 장치 및그 메모리 맵핑 방법 | |
EP3931688B1 (en) | Data processing | |
CN116361609A (zh) | 一种二维矩阵运算的降维数据处理方法及硬件构架 | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112579042B (zh) | 计算装置及方法、芯片、电子设备及计算机可读存储介质 | |
CN101399978B (zh) | 硬件解码器中参考帧数据的读取方法及其装置 | |
JP3333779B2 (ja) | 行列演算装置 | |
KR20090005312A (ko) | 고속 pe 간 데이터 재배치 기능을 갖는 프로세서 어레이 시스템 | |
US20020156992A1 (en) | Information processing device and computer system | |
JP2005189966A (ja) | 画像処理装置 | |
KR100516214B1 (ko) | 명령어 병렬처리를 위한 디지털 신호처리기 및 그처리방법 | |
JPH07210545A (ja) | 並列処理プロセッサ | |
CN112579971B (zh) | 矩阵运算电路、矩阵运算装置及矩阵运算方法 | |
JP2005267362A (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
CN110147222B (zh) | 运算装置及方法 | |
CN100504847C (zh) | 实现反向离散余弦转换的方法及装置 | |
JP2655243B2 (ja) | 複合化ベクトル並列計算機 | |
JP2855899B2 (ja) | 機能メモリ | |
CN118429177A (zh) | 共享内存访问方法、单元、图形处理器及通用图形处理器 | |
CN116136894A (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 |