本发明专利技术实施例提供自共轭矩阵的下三角部分存储装置和并行读取方法,所述装置包括:存储模块选择电路,用于选择待存取的自共轭矩阵下三角部分各元素对应的存储模块;地址生成电路,用于计算待存取的自共轭矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;并行的m个存储模块,用于存储待存取的自共轭矩阵下三角部分各元素所对应的数据;数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;取共轭模块,用于对经过混洗后的数据进行旁路操作和取共轭操作。本发明专利技术实施例只需对自共轭矩阵的下三角部分进行存储,并支持并行读取并恢复自共轭矩阵的任意行向量和列向量,能充分利用硬件的并行计算单元,提高矩阵运算算法效率。
【技术实现步骤摘要】
自共轭矩阵的下三角部分存储装置和并行读取方法
本专利技术实施例涉及矩阵运算
,更具体地,涉及自共轭矩阵的下三角部分存储装置和并行读取方法。
技术介绍
自共轭矩阵(HermitianMatrix)是共轭对称的方阵,在数字信号处理领域有着广泛的使用。例如,许多信号检测算法需要利用实数自相关矩阵得到信号的二阶统计特征。自共轭矩阵的求解复杂度随着矩阵阶数增加而平方增加,为了减小计算复杂度,可以根据自共轭矩阵的复数共轭对称特性,只计算自共轭矩阵的下三角部分,自共轭矩阵的上三角部分可以根据复数共轭对称特性由下三角部分求出。并且如果能够合理的安排自共轭矩阵元素在存储器中的位置,使得在不影响数据并行存取需求的条件下,存储器只需要保存下三角部分元素的值,那么就可以节省接近一半的数据存储空间。但是,自共轭矩阵运算,如自共轭矩阵乘法和自共轭矩阵与向量乘,通常需要并行读取自共轭矩阵的行向量或列向量。这些行列向量通常既包含下三角部分矩阵的元素又包含上三角部分矩阵的元素。对于只保存了下三角部分元素的自共轭矩阵,由于下三角矩阵无法包含需要读取的行列向量的全部元素,需要根据复数共轭对称特性对矩阵运算进行特殊的优化才能完成运算功能。现有技术给出了多种矩阵运算优化的方案,具体包括:中国专利CN107590106A公开了一种应用于对称矩阵与向量乘法的计算方法,利用矩阵分块和对角矩阵数据扩展的方法进行矩阵向量乘法;第二种方法是根据BLAS(BasicLinearAlgebraSubprograms)库中的自共轭矩阵乘法算法,从算法的最内层循环进行循环展开,并映射到硬件的并行处理单元上;第三种方法是将自共轭矩阵分解为上三角矩阵和根据共轭对称特性生成的下三角矩阵,分别进行矩阵乘法,再将结果矩阵相加。以上方法均可以应用于自共轭矩阵运算。但是应用第一种方法将上(下)三角矩阵进行数据扩展成为自共轭矩阵的过程需要额外的数据搬移和时间开销。第二种方法通过对原始算法进行并行优化实现了矩阵运算,但是由于最内层循环的循环次数可变且通常较小,导致数据存取的并行度不高,从而降低了硬件利用效率和算法效率。第三种方法虽然有效地减少了计算复杂度,但是仍然受限于并行数据存取的速度,导致硬件利用率和算法的效率不高。
技术实现思路
为了解决现有技术中存在的受限于三角矩阵的行列向量数据存取的并行度不高,导致硬件利用率和矩阵运算算法效率不高的问题,本专利技术实施例提供自共轭矩阵的下三角部分存储装置和并行读取方法。根据本专利技术实施例的一个方面,提供一种自共轭矩阵的下三角部分存储装置,包括:存储模块选择电路,用于确定待存取的自共轭矩阵下三角部分各元素对应的存储模块;地址生成电路,用于计算所述待存取的自共轭矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;并行的m个存储模块,用于存储所述待存取的自共轭矩阵下三角部分各元素所对应的数据;数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;取共轭模块,用于对经过混洗后的数据进行旁路操作和取共轭操作;其中,m为所述自共轭矩阵的下三角部分存储装置的硬件并行度。根据本专利技术实施例的另一个方面,提供一种基于第一方面所提供的自共轭矩阵的下三角部分存储装置的并行读取方法,包括:根据自共轭矩阵的共轭对称特性,将待读取的N阶自共轭矩阵的任一行或列元素转换为所述N阶自共轭矩阵下三角部分中所包含的N个元素;利用所述存储模块选择电路确定所述N个元素各自对应的存储模块,利用所述地址生成电路确定所述N个元素在各自对应的存储模块中的逻辑地址,根据所述逻辑地址,从存储模块中并行读取所述N个元素所对应的数据;在所述数据混洗模块中对读取出的所述N个元素所对应的数据进行数据混洗操作;在所述取共轭模块中对经过混洗后的所述数据进行旁路操作和/或取共轭操作;其中,N为正整数。本专利技术实施例提出的一种自共轭矩阵的下三角部分存储装置和并行读取方法,只需要对自共轭矩阵的下三角部分进行存储,能够充分利用SIMD硬件的并行计算单元,并且支持并行读取并恢复自共轭矩阵的任意行向量和列向量,从而可以将自共轭矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。附图说明图1为根据本专利技术一实施例提供的自共轭矩阵的下三角部分存储装置的结构示意图;图2为根据本专利技术另一实施例提供的基于自共轭矩阵的下三角部分存储装置的并行读取方法的流程示意图;图3为根据本专利技术另一实施例提供的只保存下三角部分元素的自共轭矩阵按行读取的实现示意图;图4为根据本专利技术另一实施例提供的只保存下三角部分元素的自共轭矩阵按列读取的实现示意图;图5为根据本专利技术另一实施例提供的采用另一种存储地址计算公式的只保存下三角部分元素的自共轭矩阵按行读取的实现示意图;图6为根据本专利技术另一实施例提供的只保存下三角部分元素的自共轭矩阵按行读取的实现示意图;图7为根据本专利技术另一实施例提供的只保存下三角部分元素的自共轭矩阵按行读取的实现示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本专利技术保护的范围。为了能够并行读取自共轭矩阵的行列向量的全部元素,提高并行处理单元利用效率,需要开发并行无冲突存取机制,使数据存取的并行度尽可能的达到计算单元的硬件并行度,那么就可以将自共轭矩阵运算的算法效率提升到通用矩阵运算的算法效率层次。自共轭矩阵是相对其主对角线以复数共轭对称的矩阵。自共轭矩阵主对角线上的元素必须是实数,实对称阵是自共轭矩阵的特例。根据自共轭矩阵的复数共轭对称特性,有N阶自共轭矩阵的第i行第j列的元素的共轭与第j行第i列的元素相等,因此可以根据复数共轭对称特性,只存储自共轭矩阵的下三角部分元素,而上三角部分元素可以通过对与之对称的下三角部分元素进行取共轭而得到。如图1所示,为本专利技术一实施例提供的一种自共轭矩阵的下三角部分存储装置的结构示意图,包括:存储模块选择电路101、地址生成电路102、并行的m个存储模块103、数据混洗模块104和取共轭模块105。其中,存储模块选择电路101,用于计算待存取的自共轭矩阵下三角部分各元素对应的存储模块;其功能实现方式包括但不限于:直接硬件计算自共轭矩阵下三角部分各元素对应的存储模块bank,通过硬件查表的方式确定自共轭矩阵下三角部分各元素对应的存储模块bank,通过软件计算存储模块bank并将计算结果通过指令传递给硬件。地址生成电路102,用于计算所述待存取的自共轭矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;其功能实现方式包括但不限于:直接硬件计算自共轭矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr;通过硬件查表的方式确定自共轭矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr,通过软件计算自共轭矩阵下三角部分各元素在其对应的存储模块bank中的逻辑地址addr并将计算结果通过指令传递给硬件。并行的m个存储模块103,用于存储所述待存取的自共轭矩阵下三角部分各元素所对应的数据,其中,m为所述存储装置的硬件并行度本文档来自技高网...
【技术保护点】
1.一种自共轭矩阵的下三角部分存储装置,其特征在于,包括:存储模块选择电路,用于选择待存取的自共轭矩阵下三角部分各元素对应的存储模块;地址生成电路,用于计算所述待存取的自共轭矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;并行的m个存储模块,用于存储所述待存取的自共轭矩阵下三角部分各元素所对应的数据;数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;取共轭模块,用于对经过混洗后的数据进行旁路操作和取共轭操作;其中,m为所述自共轭矩阵的下三角部分存储装置的硬件并行度。
【技术特征摘要】
1.一种自共轭矩阵的下三角部分存储装置,其特征在于,包括:存储模块选择电路,用于选择待存取的自共轭矩阵下三角部分各元素对应的存储模块;地址生成电路,用于计算所述待存取的自共轭矩阵下三角部分各元素在其对应的存储模块中的逻辑地址;并行的m个存储模块,用于存储所述待存取的自共轭矩阵下三角部分各元素所对应的数据;数据混洗模块,用于对从所述存储模块中读取出的数据进行混洗操作;取共轭模块,用于对经过混洗后的数据进行旁路操作和取共轭操作;其中,m为所述自共轭矩阵的下三角部分存储装置的硬件并行度。2.根据权利要求1所述的装置,其特征在于,所述存储模块选择电路具体用于:根据公式(1)计算所述待存取的自共轭矩阵下三角部分各元素对应的存储模块;其中,所述公式(1)为:bank=(i+j+a)modm(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任一所述...
【专利技术属性】
技术研发人员:刘大可,刘劭晗,
申请(专利权)人:海南大学,
类型:发明
国别省市:海南,46
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。