CN103440121A - 一种面向向量处理器的三角矩阵乘法向量化方法 - Google Patents
一种面向向量处理器的三角矩阵乘法向量化方法 Download PDFInfo
- Publication number
- CN103440121A CN103440121A CN2013103642797A CN201310364279A CN103440121A CN 103440121 A CN103440121 A CN 103440121A CN 2013103642797 A CN2013103642797 A CN 2013103642797A CN 201310364279 A CN201310364279 A CN 201310364279A CN 103440121 A CN103440121 A CN 103440121A
- Authority
- CN
- China
- Prior art keywords
- triangular matrix
- matrix
- submatrix
- vector
- multiplication
- 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
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种面向向量处理器的三角矩阵乘法向量化方法,其步骤为:步骤1:将被乘数三角矩阵T中的三角矩阵元素按行连续存储;步骤2:根据向量处理器的向量处理单元个数和向量处理单元的MAC部件个数对乘数矩阵B按列划分为若干个子矩阵Bi;步骤3:依次实现被乘数三角矩阵T与子矩阵Bi的乘法,计算结果存储在原子矩阵Bi的存储位置;步骤4:遍历完乘数矩阵的全部子矩阵Bi,判断是否还有未计算的子矩阵Bi,若有,更新i=i+1,转步骤3;若无,则执行步骤5;步骤5:三角矩阵乘法的计算完成。本发明具有原理简单、操作简便、能充分发挥向量处理器运算效率等优点。
Description
技术领域
本发明主要涉及到三角矩阵乘法计算领域,特指一种面向向量处理器的三角矩阵乘法向量化方法。
背景技术
基本线性代数函数库(Basic Linear Algebra Subprograms,BLAS)是各种科学计算广泛引用的核心数学库,也是许多数学软件的核心组件。目前,BLAS广泛应用于物理学、电子工程学、生物学、经济学、计算科学等科学与工程计算。其中,三角矩阵与矩阵乘法(Triangularmatrix-matrix multiplication)和三角矩阵求解(Triangular matrix solve)两类函数库是最常被调用的函数库之一。由于三角矩阵的转置和逆仍然是三角矩阵,这两类函数库最终可归结于三角矩阵乘法计算:C=TB,其中T为上三角矩阵或下三角矩阵,B为普通矩阵,C为结果矩阵。因为三角矩阵乘法是计算密集和访存密集的运算,对处理器的运算能力、访存带宽及延迟的要求非常高,因此,针对特定体系结构的特点对三角矩阵乘法进行优化设计,对提高程序的运行速度、发挥处理器的运算能力具有很重要的意义。
另一方面,随着大型稠密线性方程组求解、雷达信号处理、高清视频和数字图像处理等计算密集型应用的高性能计算需求日益增长,计算机体系结构出现显著变化,出现许多新型体系结构。向量处理器体系结构是其中的一种新颖体系结构。如图1所示,向量处理器一般包括标量处理部件(Scalar Processing Unit,SPU)和向量处理部件(Vector Processing Unit,VPU),SPU负责标量任务计算和流控;VPU负责向量计算,包括若干向量处理单元(VectorProcessing Element,VPE),每个VPE包含MAC、ALU、BP等多个功能部件。SPU和VPU之间提供数据传输和交换数据的通道,向量处理器提供广播指令将SPU的一个标量寄存器的数据广播到VPU的一个向量寄存器。向量数据访问单元支持向量数据的Load/Store,提供大容量的专用向量存储器。向量处理器具有强大的计算能力,能够大幅度提高程序的计算性能,但同时对软件开发提出了新的挑战,如何针对向量处理器多处理单元、多功能部件等体系结构特点,充分开发各个层次的并行性,将现有应用高效地向量化是当前面临的主要困难。
对于普通的矩阵乘法C=A*B,其中A为m*n阶矩阵,B为n*k阶矩阵,C为m*k阶矩阵。结果矩阵C按照公式(1)计算:
根据公式(1)计算结果矩阵C,在计算时间方面,每个C矩阵元素的计算需要n次乘法和n-1次加法,完成矩阵C的计算需要m*k*n次乘法和m*k*(n-1)次加法。在存储方面,若以矩阵元素为一个存储单位,则需要存储空间为(m*n+n*k+m*k)单位。与普通矩阵相比,三角矩阵有一半的矩阵元素为0,显然,简单的套用矩阵乘法实现三角矩阵乘法,在计算效率和存储效率方面都是低效的,需要针对三角矩阵计算和存储特点,以及所在处理器平台的体系结构特点制定更高效的计算方法。
目前,提高三角矩阵乘法计算性能的方法包括硬件方法和软件方法,如基于多FPGA的矩阵乘法并行计算***(申请号:200710069953.3),一种基于龙芯3A的单精度矩阵乘法优化方法(申请号:201110191133.8),具有减少的带宽要求的矩阵乘法(申请号:200710097456.4)等。硬件方法速度快,但是成本高,不够灵活。软件的方法往往计算效率较低,且大多是矩阵与矩阵的乘法,没有专门考虑三角矩阵与矩阵的乘法。与普通矩阵相比,三角矩阵有一半的矩阵元素为0,因此在计算和存储上套用普通的矩阵乘法不能有效提升三角矩阵的计算性能。并且,在面向向量处理器平台上的计算,一方面由于三角矩阵不像普通矩阵是方阵,难以实现规整化的数据对齐,不能平衡各个处理单元的计算负载;另一方面,向量数据访问单元支持的向量数据Load/Store,一般只支持按行的向量数据读取,不支持按列的向量数据读取,不能支持如专利“具有减少的带宽要求的矩阵乘法”(申请号:200710097456.4)支持的按列访问矩阵元素。如何在向量处理器上高效实现三角矩阵乘法的向量化计算,才能充分发挥向量处理器的计算能力是目前需要解决的技术难点,在公开文献中也没有面向向量处理器的三角矩阵乘法向量化方法。
因此,需要设计一种面向向量处理器的高效的三角矩阵乘法向量化方法,以便最优的发挥向量处理器的运算效率。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、能充分发挥向量处理器运算效率的面向向量处理器的三角矩阵乘法向量化方法,从而充分利用向量处理器多处理单元、多功能部件的体系结构特点,开发向量处理器的指令、数据、任务等各个层次的并行性,实现了向量处理器的计算负载平衡。
为解决上述技术问题,本发明采用以下技术方案:
一种面向向量处理器的三角矩阵乘法向量化方法,其步骤为:
步骤1:将被乘数三角矩阵T中的三角矩阵元素按行连续存储;设被乘数三角矩阵T为m*m阶矩阵,乘数矩阵B为m*k阶矩阵,计算三角矩阵T与乘数矩阵B的乘法,结果矩阵C=T*B,C为m*k阶矩阵;
步骤2:根据向量处理器的向量处理单元个数和向量处理单元的MAC部件个数对乘数矩阵B按列划分为若干个子矩阵Bi;
步骤3:依次实现被乘数三角矩阵T与子矩阵Bi的乘法,计算结果存储在原子矩阵Bi的存储位置;
步骤4:遍历完乘数矩阵的全部子矩阵Bi,判断是否还有未计算的子矩阵Bi,若有,更新i=i+1,转步骤3;若无,则执行步骤5;
步骤5:三角矩阵乘法的计算完成。
作为本发明的进一步改进:
所述步骤(2)中,设向量处理器的向量处理单元个数为p,向量处理单元的MAC部件个数为q;对乘数矩阵B按列划分为子矩阵,子矩阵的行数与B矩阵一致,均为m,子矩阵的列数固定为p*q,若k不是(p*q)的整数倍,则最后一个子矩阵的列数为k除以(p*q)的余数;记子矩阵的个数为s,子矩阵依次记为B0,B1,…,Bs-1;采用分块算法实现结果矩阵C的计算:(C0,C1,…,Cs-1)=T*(B0,B1,…,Bs-1),令i=0。
所述步骤(3)中,具体步骤为:
步骤3.1:设定初始参数,若三角矩阵T为上三角矩阵,则P指向三角矩阵T的第一行,Q和S分别指向子矩阵Bi的第一行;若三角矩阵T为下三角矩阵,则P指向三角矩阵T的最后一行,Q和S分别指向子矩阵Bi的最后一行;
步骤3.2:向量处理器的SPU用标量存取指令读取三角矩阵T的第P行中的连续q个元素到q个标量寄存器,并用向量处理器提供的广播指令分别广播到VPU的q个向量寄存器;
步骤3.3:向量处理器的VPU用向量存取指令读取子矩阵Bi的第S行的q*p个元素到与上述步骤3.2不同的q个向量寄存器;
步骤3.4:向量处理器的VPU对上述步骤3.2的q个向量寄存器和步骤3.3的q个向量寄存器分别执行乘法,乘法结果分别累加到与上述步骤3.2和3.3不同的q个向量寄存器;
步骤3.5:判断子矩阵Bi中是否还有另一行数据,若有,则子矩阵Bi中更新S为S的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况),转步骤3.2;
步骤3.6:将上述步骤3.4计算结果的q个向量寄存器保存到子矩阵Bi的第Q行;
步骤3.7:判断三角矩阵T中是否还有另一行数据,若有,则三角矩阵T中更新P为P的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况);子矩阵Bi中更新Q为Q的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况),子矩阵Bi中更新S为Q行,转步骤3.2;
步骤3.8;被乘数三角矩阵T与子矩阵Bi的乘法计算完成。
与现有技术相比,本发明的优点在于:
(1)本发明充分利用三角矩阵中有一半元素为0,0元素不需要与矩阵B中的对应行的数据相乘,这样的方法能够大幅减少计算量。
(2)本发明中被乘数矩阵T中的三角矩阵元素按行连续存储,不参与计算的0元素不需要存储;实现了原位计算,结果矩阵是保存在乘数矩阵B中,节省了存储空间。
(3)本发明中,每次向量计算都能够平衡各个处理单元的计算负载,充分发挥向量处理器的各个处理单元的计算能力。
(4)本发明中,避免了通常向量处理器不支持的矩阵列向量数据的访问和向量处理单元之间的浮点归约求和(浮点归约求和开销很大)。本发明实现了高效的三角矩阵乘法的向量化计算,从而大幅度提高了三角矩阵乘法的计算性能。
附图说明
图1是向量处理器的一般结构原理示意图。
图2是本发明方法的流程示意图。
图3是本发明方法的被乘数三角矩阵T与子矩阵Bi的乘法计算的流程示意图。
图4是本发明中被乘数上三角矩阵T与子矩阵Bi乘法在具体实施例中的运算示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图2所示,本发明面向向量处理器的三角矩阵乘法向量化方法,具体步骤为:
步骤1:将被乘数三角矩阵T中的三角矩阵元素按行连续存储;设被乘数三角矩阵T为m*m阶矩阵,乘数矩阵B为m*k阶矩阵,计算三角矩阵T与乘数矩阵B的乘法,结果矩阵C=T*B,C为m*k阶矩阵;
步骤2:根据向量处理器的向量处理单元个数和向量处理单元的MAC部件个数对乘数矩阵B按列划分为若干个子矩阵Bi;设向量处理器的向量处理单元个数为p,向量处理单元的MAC部件个数为q。对乘数矩阵B按列划分为子矩阵,子矩阵的行数与B矩阵一致,均为m,子矩阵的列数固定为p*q,若k不是(p*q)的整数倍,则最后一个子矩阵的列数为k除以(p*q)的余数。记子矩阵的个数为s,子矩阵依次记为B0,B1,…,Bs-1。采用分块算法实现结果矩阵C的计算:(C0,C1,…,Cs-1)=T*(B0,B1,…,Bs-1),令i=0;
步骤3:依次实现被乘数三角矩阵T与子矩阵Bi的乘法,计算结果存储在原子矩阵Bi的存储位置;计算被乘数三角矩阵T与子矩阵Bi的乘法:Ci=T*Bi,计算结果存储在原子矩阵Bi的存储位置;
步骤4:遍历完乘数矩阵的全部子矩阵Bi;判断是否还有未计算的子矩阵Bi,若有,更新i=i+1,转步骤3;若无,则执行步骤5;
步骤5:三角矩阵乘法的计算完成。
如图3所示,本实施例的上述步骤3中,被乘数三角矩阵T与子矩阵Bi的乘法计算:Ci=T*Bi,其详细步骤为:
步骤3.1:设定初始参数,若三角矩阵T为上三角矩阵,则P指向三角矩阵T的第一行,Q和S分别指向子矩阵Bi的第一行。若三角矩阵T为下三角矩阵,则P指向三角矩阵T的最后一行,Q和S分别指向子矩阵Bi的最后一行;
步骤3.2:向量处理器的SPU用标量存取指令读取三角矩阵T的第P行中的连续q个元素到q个标量寄存器,并用向量处理器提供的广播指令分别广播到VPU的q个向量寄存器;
步骤3.3:向量处理器的VPU用向量存取指令读取子矩阵Bi的第S行的q*p个元素到与上述步骤3.2不同的q个向量寄存器;
步骤3.4:向量处理器的VPU对上述步骤3.2的q个向量寄存器和步骤3.3的q个向量寄存器分别执行乘法,乘法结果分别累加到与上述步骤3.2和3.3不同的q个向量寄存器;
步骤3.5:判断子矩阵Bi中是否还有另一行数据,若有,则子矩阵Bi中更新S为S的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况),转步骤3.2;
步骤3.6:将上述步骤3.4计算结果的q个向量寄存器保存到子矩阵Bi的第Q行;
步骤3.7:判断三角矩阵T中是否还有另一行数据,若有,则三角矩阵T中更新P为P的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况)。子矩阵Bi中更新Q为Q的下一行(三角矩阵T为上三角矩阵情况)或上一行(三角矩阵T为下三角矩阵情况),子矩阵Bi中更新S为Q行,转步骤3.2;
步骤3.8;被乘数三角矩阵T与子矩阵Bi的乘法计算完成。
在上述方法中,被乘数矩阵T中的三角矩阵元素按行连续存储,不参与计算的0元素不需要存储;结果矩阵是保存在乘数矩阵B中,实现了原位计算。若设T为m*m阶矩阵,B为m*k阶矩阵,则存储空间为(m*(m+1)/2+m*k)元素,相比普通矩阵乘法减少了(m*(m-1)/2+m*k)元素。其原理是充分利用了三角矩阵中有一半元素为0,0元素不需要与矩阵B中的对应行的数据相乘。这样的方法既减少了计算量,又节省了存储空间,并且充分发挥了向量处理器的各个处理单元的计算能力,平衡了各个处理单元的计算负载,实现了高效的三角矩阵乘法的向量化计算,从而大幅度提高了三角矩阵乘法的计算性能。
如图4所示,为本发明中被乘数上三角矩阵T与子矩阵Bi乘法在具体实施例的运算示意图。
在本实例中,以一个上三角矩阵T与子矩阵Bi的乘法计算实例阐述本发明方法的实施过程。
如图4(a)所示,设向量处理器的VPE数目为4,VPE的MAC部件个数为1,被乘数上三角矩阵T的行数与列数等于4,子矩阵Bi的行数与列数等于4。实现被乘数上三角矩阵T与子矩阵Bi乘法的方法和步骤是:
(1)设定初始参数,因为实施例中三角矩阵T为上三角矩阵,设定P指向三角矩阵T的第一行,Q和S分别指向子矩阵Bi的第一行;即P=0,Q=0,S=0;
(2)如图4(b),向量处理器的SPU用标量存取指令读取三角矩阵T的第0行中的1个元素t00元素到标量寄存器,通过向量处理器的广播指令广播到1个向量寄存器(t00,t00,t00,t00)。向量处理器的VPU用向量存取指令读取子矩阵Bi的第0行的4个元素到1个向量寄存器(b00,b01,b02,b03)。向量处理器的VPU对上述2个向量寄存器执行乘法,乘法结果累加到1个向量寄存器。更新S=S+1,依次下去,当S遍历完0,1,2,3后,得到结果矩阵的第0行,并保存到子矩阵Bi的第0行B0。
(3)如图4(c),更新参数P、Q、S。即P=1,Q=1,S=1。向量处理器的SPU用标量存取指令读取三角矩阵T的第1行中的1个元素t11元素到标量寄存器,通过向量处理器的广播指令广播到1个向量寄存器(t11,t11,t11,t11)。向量处理器的VPU用向量存取指令读取子矩阵Bi的第1行的4个元素到1个向量寄存器(b10,b11,b12,b13)。向量处理器的VPU对上述2个向量寄存器执行乘法,乘法结果累加到1个向量寄存器。更新S=S+1,依次下去,当S遍历完1,2,3后,得到结果矩阵的第1行,并保存到子矩阵Bi的第1行B1。
(4)如图4(d),更新参数P、Q、S。即P=2,Q=2,S=2。向量处理器的SPU用标量存取指令读取三角矩阵T的第2行中的1个元素t22元素到标量寄存器,通过向量处理器的广播指令广播到1个向量寄存器(t22,t22,t22,t22)。向量处理器的VPU用向量存取指令读取子矩阵Bi的第2行的4个元素到1个向量寄存器(b20,b21,b22,b23)。向量处理器的VPU对上述2个向量寄存器执行乘法,乘法结果累加到1个向量寄存器。更新S=S+1,依次下去,当S遍历完2,3后,得到结果矩阵的第2行,并保存到子矩阵Bi的第2行B2。
(5)如图4(e),更新参数P、Q、S。即P=3,Q=2,S=3。向量处理器的SPU用标量存取指令读取三角矩阵T的第3行中的1个元素t33元素到标量寄存器,通过向量处理器的广播指令广播到1个向量寄存器(t33,t33,t33,t33)。向量处理器的VPU用向量存取指令读取子矩阵Bi的第3行的4个元素到1个向量寄存器(b30,b21,b32,b33)。向量处理器的VPU对上述2个向量寄存器执行乘法,乘法结果累加到1个向量寄存器。更新S=S+1,依次下去,当S遍历完3后,得到结果矩阵的第3行,并保存到子矩阵Bi的第3行B3。
(6)P遍历完三角矩阵的所有行0,1,2,3后,三角矩阵T与子矩阵Bi的乘法计算完成。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (3)
1.一种面向向量处理器的三角矩阵乘法向量化方法,其特征在于,步骤为:
步骤1:将被乘数三角矩阵T中的三角矩阵元素按行连续存储;设被乘数三角矩阵T为m*m阶矩阵,乘数矩阵B为m*k阶矩阵,计算三角矩阵T与乘数矩阵B的乘法,结果矩阵C=T*B,C为m*k阶矩阵;
步骤2:根据向量处理器的向量处理单元个数和向量处理单元的MAC部件个数对乘数矩阵B按列划分为若干个子矩阵Bi;
步骤3:依次实现被乘数三角矩阵T与子矩阵Bi的乘法,计算结果存储在原子矩阵Bi的存储位置;
步骤4:遍历完乘数矩阵的全部子矩阵Bi,判断是否还有未计算的子矩阵Bi,若有,更新i=i+1,转步骤3;若无,则执行步骤5;
步骤5:三角矩阵乘法的计算完成。
2.根据权利要求1所述的面向向量处理器的三角矩阵乘法向量化方法,其特征在于,所述步骤(2)中,设向量处理器的向量处理单元个数为p,向量处理单元的MAC部件个数为q;对乘数矩阵B按列划分为子矩阵,子矩阵的行数与B矩阵一致,均为m,子矩阵的列数固定为p*q,若k不是(p*q)的整数倍,则最后一个子矩阵的列数为k除以(p*q)的余数;记子矩阵的个数为s,子矩阵依次记为B0,B1,…,Bs-1;采用分块算法实现结果矩阵C的计算:(C0,C1,…,Cs-1)=T*(B0,B1,…,Bs-1),令i=0。
3.根据权利要求1所述的面向向量处理器的三角矩阵乘法向量化方法,其特征在于,所述步骤(3)中,具体步骤为:
步骤3.1:设定初始参数,若三角矩阵T为上三角矩阵,则P指向三角矩阵T的第一行,Q和S分别指向子矩阵Bi的第一行;若三角矩阵T为下三角矩阵,则P指向三角矩阵T的最后一行,Q和S分别指向子矩阵Bi的最后一行;
步骤3.2:向量处理器的SPU用标量存取指令读取三角矩阵T的第P行中的连续q个元素到q个标量寄存器,并用向量处理器提供的广播指令分别广播到VPU的q个向量寄存器;
步骤3.3:向量处理器的VPU用向量存取指令读取子矩阵Bi的第S行的q*p个元素到与上述步骤3.2不同的q个向量寄存器;
步骤3.4:向量处理器的VPU对上述步骤3.2的q个向量寄存器和步骤3.3的q个向量寄存器分别执行乘法,乘法结果分别累加到与上述步骤3.2和3.3不同的q个向量寄存器;
步骤3.5:判断子矩阵Bi中是否还有另一行数据,若有,则子矩阵Bi中更新S为S的下一行,即三角矩阵T为上三角矩阵情况;或上一行,即三角矩阵T为下三角矩阵情况;转步骤3.2;
步骤3.6:将上述步骤3.4计算结果的q个向量寄存器保存到子矩阵Bi的第Q行;
步骤3.7:判断三角矩阵T中是否还有另一行数据,若有,则三角矩阵T中更新P为P的下一行,即三角矩阵T为上三角矩阵情况;或上一行,即三角矩阵T为下三角矩阵情况;子矩阵Bi中更新Q为Q的下一行,即三角矩阵T为上三角矩阵情况;或上一行,即三角矩阵T为下三角矩阵情况,子矩阵Bi中更新S为Q行,转步骤3.2;
步骤3.8;被乘数三角矩阵T与子矩阵Bi的乘法计算完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364279.7A CN103440121B (zh) | 2013-08-20 | 2013-08-20 | 一种面向向量处理器的三角矩阵乘法向量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364279.7A CN103440121B (zh) | 2013-08-20 | 2013-08-20 | 一种面向向量处理器的三角矩阵乘法向量化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440121A true CN103440121A (zh) | 2013-12-11 |
CN103440121B CN103440121B (zh) | 2016-06-29 |
Family
ID=49693812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310364279.7A Active CN103440121B (zh) | 2013-08-20 | 2013-08-20 | 一种面向向量处理器的三角矩阵乘法向量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440121B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615584A (zh) * | 2015-02-06 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向gpdsp的大规模三角线性方程组求解向量化计算的方法 |
CN105373367A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
CN107590106A (zh) * | 2017-08-08 | 2018-01-16 | 北京中科睿芯科技有限公司 | 一种应用于对称矩阵与向量乘法的计算方法 |
CN108509384A (zh) * | 2017-02-24 | 2018-09-07 | 富士通株式会社 | 计算方法、信息处理装置、计算程序及信息处理*** |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN109558567A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 自共轭矩阵的上三角部分存储装置和并行读取方法 |
CN109614149A (zh) * | 2018-11-06 | 2019-04-12 | 海南大学 | 对称矩阵的上三角部分存储装置和并行读取方法 |
CN109661647A (zh) * | 2016-09-13 | 2019-04-19 | Arm有限公司 | 向量乘加指令 |
CN109710213A (zh) * | 2018-12-25 | 2019-05-03 | 广东浪潮大数据研究有限公司 | 一种稀疏矩阵加速计算方法、装置、设备及其*** |
CN110222308A (zh) * | 2017-08-31 | 2019-09-10 | 北京中科寒武纪科技有限公司 | 一种矩阵乘矩阵运算方法及装置 |
CN110362780A (zh) * | 2019-07-17 | 2019-10-22 | 北京航空航天大学 | 一种基于申威众核处理器的大数据张量典范分解计算方法 |
CN110807170A (zh) * | 2019-10-21 | 2020-02-18 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络Same卷积向量化实现方法 |
CN113094648A (zh) * | 2021-04-02 | 2021-07-09 | 算筹信息科技有限公司 | 外积累加求解三角矩阵与矩阵内积的方法 |
CN113641956A (zh) * | 2021-08-05 | 2021-11-12 | 中国科学院软件研究所 | 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 |
CN114168901A (zh) * | 2021-12-08 | 2022-03-11 | 江苏华创微***有限公司 | 一种矩阵类乘法向量化计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393554B1 (en) * | 1998-01-28 | 2002-05-21 | Advanced Micro Devices, Inc. | Method and apparatus for performing vector and scalar multiplication and calculating rounded products |
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
-
2013
- 2013-08-20 CN CN201310364279.7A patent/CN103440121B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393554B1 (en) * | 1998-01-28 | 2002-05-21 | Advanced Micro Devices, Inc. | Method and apparatus for performing vector and scalar multiplication and calculating rounded products |
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
CN101620524A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 支持矩阵整体读写操作的矩阵寄存器文件 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615584B (zh) * | 2015-02-06 | 2017-12-22 | 中国人民解放军国防科学技术大学 | 面向gpdsp的大规模三角线性方程组求解向量化计算的方法 |
CN104615584A (zh) * | 2015-02-06 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向gpdsp的大规模三角线性方程组求解向量化计算的方法 |
CN105373367B (zh) * | 2015-10-29 | 2018-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
CN105373367A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
CN109661647A (zh) * | 2016-09-13 | 2019-04-19 | Arm有限公司 | 向量乘加指令 |
CN109661647B (zh) * | 2016-09-13 | 2023-03-03 | Arm有限公司 | 数据处理装置和方法 |
CN108509384A (zh) * | 2017-02-24 | 2018-09-07 | 富士通株式会社 | 计算方法、信息处理装置、计算程序及信息处理*** |
CN108509384B (zh) * | 2017-02-24 | 2022-04-12 | 富士通株式会社 | 计算方法、信息处理装置、计算程序及信息处理*** |
CN107590106A (zh) * | 2017-08-08 | 2018-01-16 | 北京中科睿芯科技有限公司 | 一种应用于对称矩阵与向量乘法的计算方法 |
CN107590106B (zh) * | 2017-08-08 | 2020-07-28 | 北京中科睿芯科技有限公司 | 一种应用于对称矩阵与向量乘法的计算方法 |
CN110222308B (zh) * | 2017-08-31 | 2020-12-29 | 安徽寒武纪信息科技有限公司 | 一种矩阵乘矩阵运算方法及装置 |
CN110222308A (zh) * | 2017-08-31 | 2019-09-10 | 北京中科寒武纪科技有限公司 | 一种矩阵乘矩阵运算方法及装置 |
CN110231958A (zh) * | 2017-08-31 | 2019-09-13 | 北京中科寒武纪科技有限公司 | 一种矩阵乘向量运算方法及装置 |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN108985450B (zh) * | 2018-06-28 | 2019-10-29 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN109558567A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 自共轭矩阵的上三角部分存储装置和并行读取方法 |
CN109614149A (zh) * | 2018-11-06 | 2019-04-12 | 海南大学 | 对称矩阵的上三角部分存储装置和并行读取方法 |
CN109710213A (zh) * | 2018-12-25 | 2019-05-03 | 广东浪潮大数据研究有限公司 | 一种稀疏矩阵加速计算方法、装置、设备及其*** |
CN110362780B (zh) * | 2019-07-17 | 2021-03-23 | 北京航空航天大学 | 一种基于申威众核处理器的大数据张量典范分解计算方法 |
CN110362780A (zh) * | 2019-07-17 | 2019-10-22 | 北京航空航天大学 | 一种基于申威众核处理器的大数据张量典范分解计算方法 |
CN110807170A (zh) * | 2019-10-21 | 2020-02-18 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络Same卷积向量化实现方法 |
CN110807170B (zh) * | 2019-10-21 | 2023-06-27 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络Same卷积向量化实现方法 |
CN113094648A (zh) * | 2021-04-02 | 2021-07-09 | 算筹信息科技有限公司 | 外积累加求解三角矩阵与矩阵内积的方法 |
CN113641956A (zh) * | 2021-08-05 | 2021-11-12 | 中国科学院软件研究所 | 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 |
CN113641956B (zh) * | 2021-08-05 | 2023-05-30 | 中国科学院软件研究所 | 面向SW26010-Pro处理器的1、2级BLAS函数库的高性能实现方法 |
CN114168901A (zh) * | 2021-12-08 | 2022-03-11 | 江苏华创微***有限公司 | 一种矩阵类乘法向量化计算方法 |
CN114168901B (zh) * | 2021-12-08 | 2024-07-09 | 江苏华创微***有限公司 | 一种矩阵类乘法向量化计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103440121B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440121A (zh) | 一种面向向量处理器的三角矩阵乘法向量化方法 | |
CN111095241B (zh) | 加速数学引擎 | |
CN103294648B (zh) | 支持多mac运算部件向量处理器的分块矩阵乘法向量化方法 | |
Dou et al. | 64-bit floating-point FPGA matrix multiplication | |
CN102411558B (zh) | 面向向量处理器的大矩阵相乘的向量化实现方法 | |
CN102087740B (zh) | 用于通用计算的纹理单元 | |
CN102200964B (zh) | 基于并行处理的fft装置及其方法 | |
CN105528191A (zh) | 数据累加装置、方法及数字信号处理装置 | |
CN107341133B (zh) | 基于任意维数矩阵lu分解的可重构计算结构的调度方法 | |
CN110727911B (zh) | 一种矩阵的运算方法及装置、存储介质、终端 | |
Li et al. | VBSF: a new storage format for SIMD sparse matrix–vector multiplication on modern processors | |
CN103678257A (zh) | 基于fpga的正定矩阵浮点求逆器及其求逆方法 | |
CN102129420A (zh) | 基于Cholesky分解解决最小二乘问题的FPGA实现装置 | |
EP4318275A1 (en) | Matrix multiplier and method for controlling matrix multiplier | |
CN102360281B (zh) | 用于微处理器的多功能定点乘加单元mac运算装置 | |
CN104182207A (zh) | 处理器中的移动平均处理及处理器 | |
CN104063357A (zh) | 处理器以及处理方法 | |
CN115310037A (zh) | 矩阵乘法计算单元、加速单元、计算***和相关方法 | |
CN114065122A (zh) | 数据处理方法、设备和存储介质 | |
CN104615584A (zh) | 面向gpdsp的大规模三角线性方程组求解向量化计算的方法 | |
CN104615516B (zh) | 面向GPDSP的大规模高性能Linpack测试基准实现的方法 | |
CN101561797A (zh) | 在处理***上对矩阵进行奇异值、特征值分解的方法和装置 | |
CN104636315A (zh) | 面向gpdsp的矩阵lu分解向量化计算的方法 | |
CN202217276U (zh) | 基于并行处理的fft装置 | |
CN111126588A (zh) | 集成电路芯片装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |