CN109635236B - 对称矩阵的下三角部分存储装置和并行读取方法 - Google Patents

对称矩阵的下三角部分存储装置和并行读取方法 Download PDF

Info

Publication number
CN109635236B
CN109635236B CN201811315309.4A CN201811315309A CN109635236B CN 109635236 B CN109635236 B CN 109635236B CN 201811315309 A CN201811315309 A CN 201811315309A CN 109635236 B CN109635236 B CN 109635236B
Authority
CN
China
Prior art keywords
symmetric matrix
elements
lower triangular
triangular part
formula
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.)
Active
Application number
CN201811315309.4A
Other languages
English (en)
Other versions
CN109635236A (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.)
Jixin communication technology (Nanjing) Co.,Ltd.
Original Assignee
Hainan University
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 Hainan University filed Critical Hainan University
Priority to CN201811315309.4A priority Critical patent/CN109635236B/zh
Publication of CN109635236A publication Critical patent/CN109635236A/zh
Application granted granted Critical
Publication of CN109635236B publication Critical patent/CN109635236B/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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

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)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例提供对称矩阵的下三角部分存储装置和并行读取方法,所述装置包括:存储模块选择电路,用于选择待存取的对称矩阵下三角部分各元素对应的存储模块;地址生成电路,用于计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;并行的m个存储模块,用于存储所述待存取的对称矩阵下三角部分各元素所对应的数据;数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作。本发明实施例只需要对对称矩阵的下三角部分进行存储,并且支持并行读取并恢复对称矩阵的任意行向量和列向量,能够充分利用硬件的并行计算单元,提高矩阵运算算法效率。

Description

对称矩阵的下三角部分存储装置和并行读取方法
技术领域
本发明实施例涉及矩阵运算技术领域,更具体地,涉及对称矩阵的下三角部分存储装置和并行读取方法。
背景技术
对称矩阵(Symmetric Matrix)是对称的方阵,在数字信号处理领域有着广泛的使用。例如,许多信号检测算法需要利用实数自相关矩阵得到信号的二阶统计特征。对称矩阵的求解复杂度随着矩阵阶数增加而平方增加,为了减小计算复杂度,可以根据对称矩阵的对称特性,只计算对称矩阵的下三角部分,对称矩阵的上三角部分可以根据对称特性由下三角部分求出。并且如果能够合理的安排对称矩阵元素在存储器中的位置,使得在不影响数据并行存取需求的条件下,存储器只需要保存下三角部分元素的值,那么就可以节省接近一半的数据存储空间。
但是,对称矩阵运算,如对称矩阵乘法和对称矩阵与向量乘,通常需要并行读取对称矩阵的行向量或列向量。这些行列向量通常既包含下三角部分矩阵的元素又包含上三角部分矩阵的元素。对于只保存了下三角部分元素的对称矩阵,由于下三角矩阵无法包含需要读取的行列向量的全部元素,需要根据对称特性对矩阵运算进行特殊的优化才能完成运算功能。现有技术给出了多种矩阵运算优化的方案,具体包括:中国专利CN107590106A公开了一种应用于对称矩阵与向量乘法的计算方法,利用矩阵分块和对角矩阵数据扩展的方法进行矩阵向量乘法;第二种方法是根据BLAS(Basic Linear Algebra Subprograms)库中的对称矩阵乘法算法,从算法的最内层循环进行循环展开,并映射到硬件的并行处理单元上;第三种方法是将对称矩阵分解为上三角矩阵和根据对称特性生成的下三角矩阵,分别进行矩阵乘法,再将结果矩阵相加。
以上方法均可以应用于对称矩阵运算。但是第一种方法将上(下)三角矩阵进行数据扩展成为对称矩阵的过程需要额外的数据搬移和时间开销。第二种方法通过对原始算法进行并行优化实现了矩阵运算,但是由于最内层循环的循环次数可变且通常较小,导致数据存取的并行度不高,从而降低了硬件利用效率和算法效率。第三种方法虽然有效地减少了计算复杂度,但是仍然受限于并行数据存取的速度,导致硬件利用率和算法的效率不高。
发明内容
为了解决现有技术中存在的受限于三角矩阵的行列向量数据存取的并行度不高,导致硬件利用率和矩阵运算算法效率不高的问题,本发明实施例提供对称矩阵的下三角部分存储装置和并行读取方法。
根据本发明实施例的一个方面,提供一种对称矩阵的下三角部分存储装置,包括:
存储模块选择电路,用于确定待存取的对称矩阵下三角部分各元素对应的存储模块;
地址生成电路,用于计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;
并行的m个存储模块,用于存储所述待存取的对称矩阵下三角部分各元素所对应的数据;
数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;
其中,m为所述对称矩阵的下三角部分存储装置的硬件并行度。
根据本发明实施例的另一个方面,提供一种基于第一方面所提供的对称矩阵的下三角部分存储装置的并行读取方法,包括:
根据对称矩阵的对称特性,将待读取的N阶对称矩阵的任一行或列元素转换为所述N阶对称矩阵下三角部分中所包含的N个元素;
利用所述存储模块选择电路确定所述N个元素各自对应的存储模块,利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,根据所述逻辑地址,从存储模块中并行读取所述N个元素所对应的数据;
在所述数据混洗模块中对读取出的所述N个元素所对应的数据进行数据混洗操作;
其中,N为正整数。
本发明实施例提出的对称矩阵的下三角部分存储装置和并行读取方法,只需要对对称矩阵的下三角部分进行存储,能够充分利用SIMD硬件的并行计算单元,并且支持并行读取并恢复对称矩阵的任意行向量和列向量,从而可以将对称矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。
附图说明
图1为根据本发明一实施例提供的对称矩阵的下三角部分存储装置的结构示意图;
图2为根据本发明另一实施例提供的基于对称矩阵的下三角部分存储装置的并行读取方法的流程示意图;
图3为根据本发明另一实施例提供的只保存下三角部分元素的对称矩阵按行读取的实现示意图;
图4为根据本发明另一实施例提供的只保存下三角部分元素的对称矩阵按列读取的实现示意图;
图5为根据本发明另一实施例提供的采用另一种存储地址计算公式的只保存下三角部分元素的对称矩阵按行读取的实现示意图;
图6为根据本发明另一实施例提供的只保存下三角部分元素的对称矩阵按行读取的实现示意图;
图7为根据本发明另一实施例提供的只保存下三角部分元素的对称矩阵按行读取的实现示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
为了能够并行读取对称矩阵的行列向量的全部元素,提高并行处理单元利用效率,需要开发并行无冲突存取机制,使数据存取的并行度尽可能的达到计算单元的硬件并行度,那么就可以将对称矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。
对称矩阵是对称的方阵,根据对称矩阵的对称特性,N阶对称矩阵X的第i行第j列的元素与第j行第i列的元素相等,因此可以根据对称特性,只存储对称矩阵的下三角部分元素,而上三角部分元素可以通过对称的下三角部分对应元素得到。
如图1所示,为本发明一实施例提供的对称矩阵的下三角部分存储装置的结构示意图,包括:存储模块选择电路101、地址生成电路102、并行的m个存储模块103和数据混洗模块104。
其中,存储模块选择电路101,用于计算待存取的对称矩阵下三角部分各元素对应的存储模块;
其功能实现方式包括但不限于:直接硬件计算对称矩阵下三角部分各元素对应的存储模块bank,通过硬件查表的方式确定对称矩阵下三角部分各元素对应的存储模块bank,通过软件计算存储模块bank并将计算结果通过指令传递给硬件。
地址生成电路102,用于计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;
其功能实现方式包括但不限于:直接硬件计算对称矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr;通过硬件查表的方式确定对称矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr,通过软件计算对称矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr并将计算结果通过指令传递给硬件。
并行的m个存储模块103,用于存储所述待存取的对称矩阵下三角部分各元素所对应的数据,其中,m为所述存储装置的硬件并行度;
值得说明的是,若要存储对称矩阵下三角部分的各元素,需要利用存储模块选择电路101和地址生成电路102确定各元素存储的具体位置,这个具体位置根据存储模块bank值和逻辑地址addr值共同唯一确定,称这个具体位置为存储单元,然后将待存储的对称矩阵下三角部分各元素存储到相应的存储单元。N阶对称矩阵的下三角元素的存储只需要(N+1)N/2(N为奇数)或(N+2)N/2(N为偶数)个存储单元。
为了使存储装置硬件单元的利用率最高,对称矩阵的阶数N可以等于存储装置的硬件并行度m或者为存储装置的硬件并行度m的整数倍,即有N=k*m,k=1,2,3,…。当待存取的对称矩阵的阶数N等于硬件并行度m时,可以一次性地存取对称矩阵的一行或一列向量的全部元素;当待存取的对称矩阵的阶数N大于硬件并行度m且为存储装置的硬件并行度m的整数倍时,每次最多只能并行存取m个元素,因此,对称矩阵的一个行向量或列向量需要分多次进行存取。
数据混洗模块104,用于对从所述存储模块中读取出的数据进行混洗操作;
数据混洗操作包括但不限于对数据进行重排序,从存储模块中并行读取出的数据通常是乱序的,按照数据所在的行和列进行重排序之后才能用于进行后续的矩阵运算操作。
本发明实施例提出的对称矩阵的下三角部分存储装置,只需要对对称矩阵的下三角部分进行存储,能够充分利用SIMD硬件的并行计算单元,并且支持并行读取并恢复对称矩阵的任意行向量和列向量,从而可以将对称矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。
基于上述实施例,所述存储模块选择电路具体用于:
根据公式(1)分别计算所述待存取的对称矩阵下三角部分各元素对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
上式中,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。
公式(1)即为bank计算公式。
基于上述实施例,所述地址生成电路具体用于:
根据公式(2)分别计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其中,所述公式(2)为:
Figure BDA0001856106900000061
上式中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号
Figure BDA0001856106900000062
为向上取整操作,符号
Figure BDA0001856106900000063
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
所述地址生成电路计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址的公式还可以为:
Figure BDA0001856106900000064
上式中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号
Figure BDA0001856106900000071
为向上取整操作,符号
Figure BDA0001856106900000072
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
公式(2)和公式(3)即为addr计算公式。
在上述实施例的基础上,如图2所示,为本发明另一实施例提供的基于对称矩阵的下三角部分存储装置的并行读取方法的流程示意图,包括:
201、根据对称矩阵的对称特性,将待读取的N阶对称矩阵的任一行或列元素转换为所述N阶对称矩阵下三角部分中所包含的N个元素;其中,N为正整数。
根据对称矩阵的对称特性,有N阶对称矩阵的第i行第j列的元素的共轭与第j行第i列的元素相等,因此根据对称特性,可以从只存储对称矩阵的下三角部分元素的存储装置中恢复N阶对称矩阵上三角部分的元素。
若需要读取N阶对称矩阵的任一行或列,则根据对称特性将该行或列元素中属于该对称矩阵上三角部分的元素转换为下三角部分元素,例如,若要并行取第j=3列{x03,x13,x23,x33,x43}五个元素,则将上三角部分元素{x03,x13,x23}转换为相对称的属于下三角部分的元素,即{x30,x31,x32}。这一步骤将待读取的N阶对称矩阵的任一行或列元素转换为N阶对称矩阵下三角部分中所包含的N个元素{x30,x31,x32,x33,x43}。
202、利用所述存储模块选择电路确定所述N个元素各自对应的存储模块,利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,根据所述逻辑地址,从存储模块中并行读取所述N个元素所对应的数据;
利用存储模块选择电路确定所述N个元素各自对应的存储模块,即利用bank计算公式通过计算获得N个元素各自对应的存储模块bank;利用地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,即利用addr计算公式获得N个元素在各自对应的存储模块bank中的逻辑地址addr;然后根据bank和addr,找到N个元素各自对应的存储单元,并行读出所述N各元素所对应的数据。
203、在所述数据混洗模块中对读取出的所述N个元素所对应的数据进行数据混洗操作;
数据混洗操作包括但不限于对数据进行重排序,从存储模块中并行读取出的数据通常是乱序的,按照数据所在的行和列进行重排序之后才能用于进行后续的矩阵运算操作。
本发明实施例提出的基于对称矩阵的下三角部分存储装置的并行读取方法,支持从只保存下三角部分元素的对称矩阵中并行读取并恢复对称矩阵的任意行向量和列向量,能够充分利用SIMD硬件的并行计算单元,从而可以将对称矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。
基于上述实施例,所述利用所述存储模块选择电路确定所述N个元素各自对应的存储模块的步骤,具体为:
根据公式(1)计算所述N个元素各自对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
上式中,i,j分别表示所述N个元素中任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。通常,a的取值为零。
基于上述实施例,所述利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址的步骤,具体为:
根据公式(2)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(2)为:
Figure BDA0001856106900000091
上式中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号
Figure BDA0001856106900000092
为向上取整操作,符号
Figure BDA0001856106900000093
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。通常,b的取值也为零。
计算N个元素在各自对应的存储模块中的逻辑地址的步骤,还包括:
根据公式(3)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(3)为:
Figure BDA0001856106900000094
上式中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号
Figure BDA0001856106900000095
为向上取整操作,符号
Figure BDA0001856106900000096
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
基于上述实施例,当对称矩阵的阶数N等于存储装置的硬件并行度m时,可以一次性地读取对称矩阵的一行或一列向量的全部元素。当对称矩阵的阶数N为m的整数倍时,由于每次最多只能并行读取m个元素,因此,对称矩阵的一个行向量或列向量需要分多次进行读取。
下面结合实例对本发明实施例所提供的并行读取方法作进一步解释。为了简化说明,存储模块选择电路和地址生成电路中的常量a和常量b的取值均为0。
如图3所示,为本发明一实施例只保存下三角部分元素的对称矩阵按行读取的实现示意图(N=5,m=5)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=5。根据公式(1)可得数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(2)可得数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000101
对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000102
对5阶对称矩阵取第i=3行,如图3(a)所示,并行读取对称矩阵的行向量{x30,x31,x32,x33,x34}。图3(b)示出对称矩阵行向量在其下三角部分的投影,即可以根据对称矩阵的对称特性,将其转换为取对称矩阵下三角部分中的{x30,x31,x32,x33,x43}五个元素。根据bank和addr的计算公式,如图3(c)所示,将对称矩阵的下三角部分的元素映射到所述存储模块中。可以看出,需要并行读取的五个数据{x30,x31,x32,x33,x43}分别存储在不同的存储模块中,可以实现无冲突读取。然后对读取出的五个元素进行数据混洗。本发明实施例给出了对称矩阵的阶数为奇数且与存储装置的硬件并行度相等的情况下,读取对称矩阵行向量的方法。
如图4所示,为本发明另一实施例只保存下三角部分元素的对称矩阵按列读取的实现示意图(N=5,m=5)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=5。根据公式(1)可得数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(2)可得数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000111
对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000112
对5阶对称矩阵取第j=3列,如图4(a)所示,即为并行取{x03,x13,x23,x33,x43}五个元素。如图4(b)所示,可以根据对称矩阵的对称特性,将其转换为取对称矩阵下三角部分中的{x30,x31,x32,x33,x43}五个元素。根据bank和addr的计算公式,如图4(c)所示,将对称矩阵的下三角部分元素映射到所述存储模块中。可以看出,需要并行读取的五个数据{x30,x31,x32,x33,x43}分别存储在不同的存储模块中,可以实现无冲突读取。然后对读取出的五个元素进行数据混洗。本发明实施例给出了对称矩阵的阶数为奇数且与存储装置的硬件并行度相等的情况下,读取对称矩阵列向量的方法。
如图5所示,为本发明另一实施例采用另一种addr计算公式的只保存下三角部分元素的对称矩阵按行读取的实现示意图(N=5,m=5)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=5。根据公式(1)可得,数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(3)可得数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000121
对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000122
对5阶对称矩阵取第i=3行,如图5(a)所示,即为并行取{x30,x31,x32,x33,x34}五个元素。如图5(b)所示,可以根据对称矩阵的对称特性,将其转换为取对称矩阵下三角部分中的{x30,x31,x32,x33,x43}五个元素。根据bank和addr的计算公式,如图5(c)所示,将对称矩阵的下三角部分元素映射到所述存储模块中。可以看出,需要并行读取的五个数据{x30,x31,x32,x33,x43}分别存储在不同的存储模块中,可以实现无冲突读取。然后对读取出的五个元素进行数据混洗。本发明实施例给出了对称矩阵的存储装置采用另一地址计算公式(3)时,矩阵阶数为奇数且与存储装置的硬件并行度相等的情况下,读取对称矩阵行向量的方法。对称矩阵的存储装置采用另一地址计算公式(3)时,矩阵阶数为奇数且与存储装置的硬件并行度相等的情况下,读取对称矩阵列向量的方法与图4所示的实施例类似,在此不再赘述。
如图6所示,为本发明实施例只保存下三角部分元素的对称矩阵按行读取的实现示意图(N=6,m=6)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=6。根据公式(1)可得数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(2)可得数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000131
那么,对于6阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 6,数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000132
对6阶对称矩阵取第i=4行,如图6(a)所示,即为并行取{x40,x41,x42,x43,x44,x45}六个元素。如图6(b)所示,可以根据对称矩阵的对称特性,将其转换为取对称矩阵下三角部分中的{x40,x41,x42,x43,x44,x54}六个元素。根据bank和addr的计算公式,如图6(c)所示,将对称矩阵的下三角部分元素映射到所述存储模块中。可以看出,需要并行读取的六个数据{x40,x41,x42,x43,x44,x54}分别存储在不同的存储模块中,可以实现无冲突读取。然后对读取出的六个元素进行数据混洗。本发明实施例给出了对称矩阵的阶数为偶数,且与存储装置的硬件并行度相等的情况下,读取对称矩阵行向量的方法。读取对称矩阵列向量的方法与前述实施例类似,在此不再赘述。也可以采用公式(3)计算addr,在此不再赘述。
如图7所示,为本发明实施例只保存下三角部分元素的对称矩阵按行读取的实现示意图(N=6,m=3)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=3。根据公式(1)可得,数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(2)可得数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000141
对于6阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 3,数据所在的存储模块的存储地址计算公式为
Figure BDA0001856106900000142
对6阶对称矩阵取第i=4行,如图7(a)所示,即为并行取{x40,x41,x42,x43,x44,x45}六个元素。如图7(b)所示,可以根据对称矩阵的对称特性,将其转换为取对称矩阵下三角部分中的{x40,x41,x42,x43,x44,x54}六个元素。根据bank和addr的计算公式,如图7(c)和图7(d)所示,将对称矩阵的下三角部分元素映射到所述存储模块中,可以看出,由于只有m=3个并行的存储模块,一个行向量的6个数据需要分两步进行读取。可以第一步首先读取{x40,x41,x42,},第二步再读取{x43,x44,x54},实现无冲突读取。然后对读取出的六个元素进行数据混洗。本发明实施例给出了对称矩阵的阶数N为存储装置的硬件并行度m的整数倍时,读取对称矩阵行向量的方法。读取对称矩阵列向量的方法类似,在此不再赘述。也可以采用公式(3)计算addr,在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
最后,本发明上述各实施例仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种对称矩阵的下三角部分存储装置,其特征在于,包括:
存储模块选择电路,用于选择待存取的对称矩阵下三角部分各元素对应的存储模块;
地址生成电路,用于计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;
并行的m个存储模块,用于存储所述待存取的对称矩阵下三角部分各元素所对应的数据;
数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;
其中,m为所述对称矩阵的下三角部分存储装置的硬件并行度;
其中,所述地址生成电路具体用于:
根据公式(2)分别计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其中,所述公式(2)为:
Figure FDA0002502463240000011
其中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号
Figure FDA0002502463240000012
为向上取整操作,符号
Figure FDA0002502463240000013
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址;
或者,所述地址生成电路具体用于:
根据公式(3)分别计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其中,所述公式(3)为:
Figure FDA0002502463240000021
其中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号
Figure FDA0002502463240000022
为向上取整操作,符号
Figure FDA0002502463240000023
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址;
其中,所述待存取的对称矩阵的阶数等于所述对称矩阵的下三角部分存储装置的硬件并行度m或为所述对称矩阵的下三角部分存储装置的硬件并行度m的整数倍。
2.根据权利要求1所述的装置,其特征在于,所述存储模块选择电路具体用于:
根据公式(1)计算所述待存取的对称矩阵下三角部分各元素对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
其中,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。
3.一种基于权利要求1-2任一所述对称矩阵的下三角部分存储装置的并行读取方法,其特征在于,包括:
根据对称矩阵的对称特性,将待读取的N阶对称矩阵的任一行或列元素转换为所述N阶对称矩阵下三角部分中所包含的N个元素;
利用所述存储模块选择电路确定所述N个元素各自对应的存储模块,利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,根据所述逻辑地址,从存储模块中并行读取所述N个元素所对应的数据;
在所述数据混洗模块中对读取出的所述N个元素所对应的数据进行数据混洗操作;
其中,N为正整数;
其中,所述利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址的步骤,具体为:
根据公式(2)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(2)为:
Figure FDA0002502463240000031
其中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号
Figure FDA0002502463240000032
为向上取整操作,符号
Figure FDA0002502463240000033
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址,m为所述对称矩阵的下三角部分存储装置的硬件并行度;
或者,所述利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址的步骤,具体为:
根据公式(3)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(3)为:
Figure FDA0002502463240000034
其中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号
Figure FDA0002502463240000041
为向上取整操作,符号
Figure FDA0002502463240000042
为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址,m为所述对称矩阵的下三角部分存储装置的硬件并行度;
其中,所述待读取的对称矩阵的阶数N等于所述对称矩阵的下三角部分存储装置的硬件并行度m或为所述对称矩阵的下三角部分存储装置的硬件并行度m的整数倍。
4.根据权利要求3所述的方法,其特征在于,所述利用所述存储模块选择电路确定所述N个元素各自对应的存储模块的步骤,具体为:
根据公式(1)计算所述N个元素各自对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
其中,i,j分别表示所述N个元素中任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。
CN201811315309.4A 2018-11-06 2018-11-06 对称矩阵的下三角部分存储装置和并行读取方法 Active CN109635236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811315309.4A CN109635236B (zh) 2018-11-06 2018-11-06 对称矩阵的下三角部分存储装置和并行读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811315309.4A CN109635236B (zh) 2018-11-06 2018-11-06 对称矩阵的下三角部分存储装置和并行读取方法

Publications (2)

Publication Number Publication Date
CN109635236A CN109635236A (zh) 2019-04-16
CN109635236B true CN109635236B (zh) 2020-08-21

Family

ID=66067319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811315309.4A Active CN109635236B (zh) 2018-11-06 2018-11-06 对称矩阵的下三角部分存储装置和并行读取方法

Country Status (1)

Country Link
CN (1) CN109635236B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377877B (zh) * 2019-07-26 2022-12-23 苏州浪潮智能科技有限公司 一种数据处理方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541774B (zh) * 2011-12-31 2015-02-04 中国科学院自动化研究所 多粒度并行存储系统与存储器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Also Published As

Publication number Publication date
CN109635236A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
Anderson et al. Communication-avoiding QR decomposition for GPUs
CN109597647B (zh) 数据处理方法及设备
CN111915001B (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US11816574B2 (en) Structured pruning for machine learning model
CN107748723B (zh) 支持无冲突跨步按块访问的存储方法及访存装置
US11194887B2 (en) Data processing device and method, and digital signal processing device
CN109614149B (zh) 对称矩阵的上三角部分存储装置和并行读取方法
US10884736B1 (en) Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing
US20110055306A1 (en) Optimal padding for the two-dimensional fast fourier transform
US9146696B2 (en) Multi-granularity parallel storage system and storage
US9171593B2 (en) Multi-granularity parallel storage system
CN109635236B (zh) 对称矩阵的下三角部分存储装置和并行读取方法
CN109558567B (zh) 自共轭矩阵的上三角部分存储装置和并行读取方法
CN109614582B (zh) 自共轭矩阵的下三角部分存储装置和并行读取方法
Ballard et al. Communication efficient Gaussian elimination with partial pivoting using a shape morphing data layout
CN109857982B (zh) 对称矩阵的三角部分存储装置和并行读取方法
US6640296B2 (en) Data processing method and device for parallel stride access
CN108920097B (zh) 一种基于交织存储的三维数据处理方法
WO2023065701A1 (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN109635235B (zh) 一种自共轭矩阵的三角部分存储装置和并行读取方法
WO2013097235A1 (zh) 并行位反序装置和方法
CN110018847B (zh) 可配置寄存器及基于可配置寄存器的数据存取方法
Stathis et al. A hierarchical sparse matrix storage format for vector processors
JP3417473B2 (ja) メモリアクセスシステム
US20220215070A1 (en) Information acquisition method and information processing device

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210127

Address after: Room 908, block C, Kechuang headquarters building, No. 320, pubin Road, Jiangpu street, Nanjing area, Jiangsu Free Trade Zone, Nanjing City, Jiangsu Province, 211800

Patentee after: Jixin communication technology (Nanjing) Co.,Ltd.

Address before: 570228 Hainan University, 58 Renmin Avenue, Meilan District, Haikou City, Hainan Province

Patentee before: HAINAN University