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

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

Info

Publication number
CN109635236A
CN109635236A CN201811315309.4A CN201811315309A CN109635236A CN 109635236 A CN109635236 A CN 109635236A CN 201811315309 A CN201811315309 A CN 201811315309A CN 109635236 A CN109635236 A CN 109635236A
Authority
CN
China
Prior art keywords
memory module
symmetrical matrix
triangular portions
matrix
accessed
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
CN201811315309.4A
Other languages
English (en)
Other versions
CN109635236B (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

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)为:
上式中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
所述地址生成电路计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址的公式还可以为:
上式中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,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)为:
上式中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。通常,b的取值也为零。
计算N个元素在各自对应的存储模块中的逻辑地址的步骤,还包括:
根据公式(3)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(3)为:
上式中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
基于上述实施例,当对称矩阵的阶数N等于存储装置的硬件并行度m时,可以一次性地读取对称矩阵的一行或一列向量的全部元素。当对称矩阵的阶数N为m的整数倍时,由于每次最多只能并行读取m个元素,因此,对称矩阵的一个行向量或列向量需要分多次进行读取。
下面结合实例对本发明实施例所提供的并行读取方法作进一步解释。为了简化说明,存储模块选择电路和地址生成电路中的常量a和常量b的取值均为0。
如图3所示,为本发明一实施例只保存下三角部分元素的对称矩阵按行读取的实现示意图(N=5,m=5)。在本实施例中,对称矩阵的下三角部分存储装置的硬件并行度m=5。根据公式(1)可得数据所在的存储模块计算公式为bank=(i+j)mod m,根据公式(2)可得数据所在的存储模块的存储地址计算公式为对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为对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)可得数据所在的存储模块的存储地址计算公式为对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为对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)可得数据所在的存储模块的存储地址计算公式为对于5阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 5,数据所在的存储模块的存储地址计算公式为对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)可得数据所在的存储模块的存储地址计算公式为那么,对于6阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 6,数据所在的存储模块的存储地址计算公式为对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)可得数据所在的存储模块的存储地址计算公式为对于6阶对称矩阵的存储,数据所在的存储模块计算公式为bank=(i+j)mod 3,数据所在的存储模块的存储地址计算公式为对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 (10)

1.一种对称矩阵的下三角部分存储装置,其特征在于,包括:
存储模块选择电路,用于选择待存取的对称矩阵下三角部分各元素对应的存储模块;
地址生成电路,用于计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;
并行的m个存储模块,用于存储所述待存取的对称矩阵下三角部分各元素所对应的数据;
数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;
其中,m为所述对称矩阵的下三角部分存储装置的硬件并行度。
2.根据权利要求1所述的装置,其特征在于,所述存储模块选择电路具体用于:
根据公式(1)计算所述待存取的对称矩阵下三角部分各元素对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
其中,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。
3.根据权利要求1所述的装置,其特征在于,所述地址生成电路具体用于:
根据公式(2)分别计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其中,所述公式(2)为:
其中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
4.根据权利要求1所述的装置,其特征在于,所述地址生成电路具体用于:
根据公式(3)分别计算所述待存取的对称矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其中,所述公式(3)为:
其中,N为所述待存取的对称矩阵的阶数,i,j分别为所述待存取的对称矩阵下三角部分任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
5.根据权利要求1所述的装置,其特征在于,所述待存取的对称矩阵的阶数等于所述对称矩阵的下三角部分存储装置的硬件并行度m或为所述对称矩阵的下三角部分存储装置的硬件并行度m的整数倍。
6.一种基于权利要求1-5任一所述对称矩阵的下三角部分存储装置的并行读取方法,其特征在于,包括:
根据对称矩阵的对称特性,将待读取的N阶对称矩阵的任一行或列元素转换为所述N阶对称矩阵下三角部分中所包含的N个元素;
利用所述存储模块选择电路确定所述N个元素各自对应的存储模块,利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,根据所述逻辑地址,从存储模块中并行读取所述N个元素所对应的数据;
在所述数据混洗模块中对读取出的所述N个元素所对应的数据进行数据混洗操作;
其中,N为正整数。
7.根据权利要求6所述的方法,其特征在于,所述利用所述存储模块选择电路确定所述N个元素各自对应的存储模块的步骤,具体为:
根据公式(1)计算所述N个元素各自对应的存储模块;其中,所述公式(1)为:
bank=(i+j+a)mod m (1),
其中,i,j分别表示所述N个元素中任一元素所在的行和列,a为预设的标量常数,mod为取余数操作,bank为该元素对应的存储模块。
8.根据权利要求6所述的方法,其特征在于,所述利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址的步骤,具体为:
根据公式(2)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(2)为:
其中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
9.根据权利要求6所述的方法,其特征在于,所述利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址的步骤,具体为:
根据公式(3)计算所述N个元素在各自对应的存储模块中的逻辑地址;其中,所述公式(3)为:
其中,i,j分别为所述N个元素中任一元素所在的行和列,b为预设的标量常数,符号为向上取整操作,符号为向下取整操作,addr为该元素在其对应的存储模块中的逻辑地址。
10.根据权利要求6所述的方法,其特征在于,所述待读取的对称矩阵的阶数N等于所述对称矩阵的下三角部分存储装置的硬件并行度m或为所述对称矩阵的下三角部分存储装置的硬件并行度m的整数倍。
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 true CN109635236A (zh) 2019-04-16
CN109635236B 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)

Cited By (1)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541774A (zh) * 2011-12-31 2012-07-04 中国科学院自动化研究所 多粒度并行存储系统与存储器
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541774A (zh) * 2011-12-31 2012-07-04 中国科学院自动化研究所 多粒度并行存储系统与存储器
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑纬民 等: "《计算机系统结构 第2版》", 31 May 2003 *

Cited By (2)

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

Also Published As

Publication number Publication date
CN109635236B (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
JP6736646B2 (ja) 畳み込みニューラルネットワークにおいて畳み込み演算を実行する装置および方法
JP6771018B2 (ja) 二次元配列プロセッサの性能向上
Peterka et al. A configurable algorithm for parallel image-compositing applications
US8751556B2 (en) Processor for large graph algorithm computations and matrix operations
US11816574B2 (en) Structured pruning for machine learning model
Khoram et al. Accelerating graph analytics by co-optimizing storage and access on an FPGA-HMC platform
US11740868B2 (en) System and method for sorting data elements of slabs of registers using a parallelized processing pipeline
CN110163338B (zh) 具有运算阵列的芯片运算方法、装置、终端及芯片
CN103336758A (zh) 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法
WO2012076377A2 (en) Optimizing output vector data generation using a formatted matrix data structure
US9965343B2 (en) System and method for determining concurrency factors for dispatch size of parallel processor kernels
WO2023065701A1 (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN111353598A (zh) 一种神经网络压缩方法、电子设备及计算机可读介质
CN109614149A (zh) 对称矩阵的上三角部分存储装置和并行读取方法
EP4095719A1 (en) Sparse matrix multiplication in hardware
CN109635236A (zh) 对称矩阵的下三角部分存储装置和并行读取方法
EP4168943A1 (en) System and method for accelerating training of deep learning networks
CN109614582A (zh) 自共轭矩阵的下三角部分存储装置和并行读取方法
CN109558567A (zh) 自共轭矩阵的上三角部分存储装置和并行读取方法
Giles Jacobi iteration for a Laplace discretisation on a 3D structured grid
CN109857982A (zh) 对称矩阵的三角部分存储装置和并行读取方法
CN115328440A (zh) 一种基于2d脉动阵列的通用稀疏矩阵乘法实现方法及装置
CN109635235A (zh) 一种自共轭矩阵的三角部分存储装置和并行读取方法
CN111831207B (zh) 一种数据处理方法、装置及其设备
Adlerborn et al. Parallel variants of the multishift QZ algorithm with advanced deflation techniques

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