一种矩阵转置的方法

文档序号:6602476阅读:419来源:国知局
专利名称:一种矩阵转置的方法
技术领域
本发明涉及微处理器技术领域,尤其涉及一种矩阵转置的方法。
背景技术
随着处理器技术的进步,用户通常期望和需要他们的计算机的性能越来越高,因此处理器的数据并行能力变的尤其重要。矩阵运算广泛存在于图像和信号处理领域,转置运算在其中应用很多。现有的矩阵转置技术方案的内容是1)将待转置矩阵划分为多个小矩阵;2)将小矩阵元素输入到矢量处理器中;3)在矢量处理器中通过元素位移和交换完成小矩阵转置;4)根据转置规则吧数据送至进行变换后的内存地址中;5)将全部小矩阵组合为转置后的矩阵。这种矩阵转置技术方案由于在矢量处理器中通过元素位移和交换完成小矩阵转置,故转置处理速度比较慢,转置需要较多的处理时间。

发明内容
本发明的目的在于提出一种矩阵转置的方法,能够有效地提高矩阵转置的执行速度。为达此目的,本发明采用以下技术方案一种矩阵转置的方法,包括以下步骤A、将待转置矩阵划分为不少于1个的子矩阵;B、按顺序从一个子矩阵中每次取出一行数据;C、将取出的数据逐个放入与子矩阵列数相同数量的矢量寄存器中的、与取出的数据在子矩阵中的行数相同的列中;D、重复步骤B和步骤C,直到子矩阵中的所有行数据都放入到矢量寄存器中,再转至步骤E;E、计算子矩阵在转置后矩阵中对应的位置;F、按顺序逐个读取矢量寄存器的数据,放入到转置后矩阵中对应的位置,直到所有矢量寄存器的数据都放入到转置后矩阵中对应的位置;G、重复步骤B到步骤F,直到待转置矩阵中的数据都放入到转置后矩阵中对应的位置。步骤A中,子矩阵是8乘8矩阵。8乘8矩阵中未占满的位置补零。子矩阵与待转置矩阵等同。采用了本发明的技术方案,对于一个矩阵转置操作,由于去除了在矢量处理器中的元素位移和交换处理过程,有效的提高了矩阵转置的执行速度。


图1是本发明具体实施方式
中矩阵转置流程图。
具体实施例方式下面结合附图并通过具体实施方式
来进一步说明本发明的技术方案。图1是本发明具体实施方式
中矩阵转置流程图。如图1所示,该矩阵转置流程包括以下步骤步骤101、将待转置矩阵根据矢量寄存器划分为1个或者多个的子矩阵,子矩阵可以是8乘8矩阵,8乘8矩阵中未占满的位置补零。步骤102、按照子矩阵在待转置矩阵中的顺序,从第一个子矩阵中按照行序取出第一行的8个数据。步骤103、将取出的8个数据逐个放入8个矢量寄存器中的第一列中,即子矩阵第一行的第一个数据放入第一个矢量寄存器的第一列中,子矩阵第一行的第二个数据放入第二个矢量寄存器的第一列中,如此类推。步骤104、判断第一个子矩阵中的所有行数据是否都放入到矢量寄存器中,如果否,则转至步骤102,重复步骤102和步骤103,只不过是将子矩阵的第二行8个数据放入8 个矢量寄存器的第二列,如此类推;如果是,则转至步骤105。步骤105、计算该子矩阵在转置后矩阵中对应的位置。步骤106、按矢量寄存器的顺序逐个读取矢量寄存器的数据,即先读取一个矢量寄存器中存储的该子矩阵的一列8个数据放入到转置后矩阵中对应的位置,再读取下一个矢量寄存器中存储的该子矩阵的一列8个数据放入到转置后矩阵中对应的位置,直到所有矢量寄存器的数据都放入到转置后矩阵中对应的位置。步骤107、判断是否所有的子矩阵数据都放入到转置后矩阵中,如果否,则转至步骤102,重复步骤102到步骤106去转置第二个子矩阵,如此类推;如果是,则转至步骤108。步骤108、矩阵转置完成,结束流程。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种矩阵转置的方法,其特征在于,包括以下步骤A、将待转置矩阵划分为不少于1个的子矩阵;B、按顺序从一个子矩阵中每次取出一行数据;C、将取出的数据逐个放入与子矩阵列数相同数量的矢量寄存器中的、与取出的数据在子矩阵中的行数相同的列中;D、重复步骤B和步骤C,直到子矩阵中的所有行数据都放入到矢量寄存器中,再转至步骤E;E、计算子矩阵在转置后矩阵中对应的位置;F、按顺序逐个读取矢量寄存器的数据,放入到转置后矩阵中对应的位置,直到所有矢量寄存器的数据都放入到转置后矩阵中对应的位置;G、重复步骤B到步骤F,直到待转置矩阵中的数据都放入到转置后矩阵中对应的位置。
2.根据权利要求1所述的一种矩阵转置的方法,其特征在于,步骤A中,子矩阵是8乘 8矩阵。
3.根据权利要求2所述的一种矩阵转置的方法,其特征在于,8乘8矩阵中未占满的位置补零。
4.根据权利要求1所述的一种矩阵转置的方法,其特征在于,子矩阵与待转置矩阵等同。
全文摘要
本发明公开了一种矩阵转置的方法,将待转置矩阵划分为不少于1个的子矩阵;按顺序从一个子矩阵中每次取出一行数据;将取出的数据逐个放入与子矩阵列数相同数量的矢量寄存器中的、与取出的数据在子矩阵中的行数相同的列中,直到子矩阵中的所有行数据都放入到矢量寄存器中;将计算子矩阵在转置后矩阵中对应的位置;按顺序逐个读取矢量寄存器的数据,放入到转置后矩阵中对应的位置,直到所有矢量寄存器的数据都放入到转置后矩阵中对应的位置,重复上述步骤直到待转置矩阵中的数据都放入到转置后矩阵中对应的位置。采用了本发明的技术方案,能够有效地提高矩阵转置的执行速度。
文档编号G06F17/16GK102253925SQ20101017434
公开日2011年11月23日 申请日期2010年5月18日 优先权日2010年5月18日
发明者何苗平, 孙瑞玮 申请人:江苏芯动神州科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1