[发明专利]面向向量处理器的大矩阵相乘的向量化实现方法有效
申请号: | 201110338108.8 | 申请日: | 2011-10-31 |
公开(公告)号: | CN102411558A | 公开(公告)日: | 2012-04-11 |
发明(设计)人: | 刘仲;陈书明;陈跃跃;曾咏涛;刘衡竹;陈海燕;龚国辉;彭元喜;陈胜刚 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市开福区砚瓦池正街47号*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 向量 处理器 矩阵 相乘 量化 实现 方法 | ||
技术领域
本发明主要涉及向量处理器以及数据处理领域,尤其涉及一种大矩阵相乘的向量化实现方法。
背景技术
在许多科学计算任务和应用中都会涉及到矩阵乘法运算,如图像处理,通信系统中的信号编解码等,对于规模较大的矩阵相乘计算任务,由于涉及到大量的乘法和加法运算,需要占用大量的计算时间。如何在处理器上简单而高效的实现矩阵乘法运算一直是业界的研究热点。
在传统的标量处理器上,研究人员已经提出了多种有效的矩阵相乘实现方法,以减少数据在运算过程中的排序操作对完成整个矩阵相乘的运算的影响。但是,随着高清视频编解码、3G无线通信、雷达信号处理等高密集、实时运算应用的不断涌现,单芯片难以满足这类应用的高密度实时计算需求,向量处理器得到了广泛应用。如图1所示,为一个向量处理器的典型结构,其具有处理器和程序存储器和数据存储器(两者均可以为任意的可访问存储器,包括外部高速缓冲存储器、外部RAM等)。向量处理器的处理器分为标量处理部件和向量处理部件两个部分,通常向量处理部件内有K个并行处理单元(PE),这些处理单元都有各自的运算部件和寄存器,处理单元间能通过规约指令进行的数据交互,如并行处理单元之间的数据相加、比较等。标量处理单元主要负责流控和逻辑判断指令的处理,而向量处理单元主要负责密集型的数据计算。向量处理单元运算所用的数据由向量数据存储单元提供。一般地,如图2所示,向量数据存储单元的BANK(存储体)的个数与向量处理单元的处理单元个数K是一致的。
申请号为“200380107095.7”的专利文献,公开了英特尔公司提出的一个专利使用SIMD寄存器的小矩阵有效乘法,将被乘数矩阵A的对角线载入处理器的不同寄存器中,并将乘数矩阵B载入至少一个在纵向按序排列的寄存器中。通过移动一个元素,有选择地将寄存器中的乘数矩阵B的每列中的乘法和加法元素同已移动的一列中的上个元素一起移动至该列的前端。将被乘数矩阵A的对角线乘以乘数矩阵B的列,它们的结果被加到结果矩阵C的列的结果和上。该方法在矩阵规模较小的情况下是能获得比较好的效果,但是随着矩阵规模的逐渐增大,难以取得好的性能表现。因此,如何在向量处理器上实现高效的大矩阵乘法运算是当前面临的一个困难。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,本发明提供一种原理简单、操作方便、能充分利用向量处理器的多级并行性特点且易于实现的面向向量处理器的大矩阵相乘的向量化实现方法。
为解决上述技术问题,本发明采用以下技术方案:
一种面向向量处理器的大矩阵相乘的向量化实现方法,包括以下步骤:
(1)输入被乘数矩阵A和乘数矩阵B;通过DMA控制器将被乘数矩阵A和乘数矩阵B分别搬运到向量存储单元中;在搬运过程中,将乘数矩阵B进行重排序,即将乘数矩阵B中的第1~n行依次排序为第1~n列;
(2)将被乘数矩阵A一行中的元素和乘数矩阵B中一列中的元素分别加载到K个并行处理单元中,并一一对应相乘;将相乘的结果在一指定的并行处理单元中归约求和;将求和结果作为一个结果矩阵元素存储到向量存储单元中;
(3)顺移到被乘数矩阵A的下一行和乘数矩阵B的下一列,重复步骤(2)直至完成所有数据帧的计算,得到由结果矩阵元素组成的结果矩阵C。
作为本发明的进一步改进:
所述搬运过程中,被乘数矩阵A的每一行组织成一个数据帧,乘数矩阵B的每一列组织成一个数据帧,当所述数据帧的元素个数不等于向量处理器中并行处理单元的个数K的倍数时,在数据帧尾部补0使得每个数据帧的元素个数等于并行处理单元的个数K的倍数。
与现有技术相比,本发明的优点在于:
本发明的面向向量处理器的大矩阵相乘的向量化实现方法,通过在DMA控制器搬运数据的过程中实现乘数矩阵B的数据重排序,同时还充分利用向量处理器中的向量部件多个并行处理单元能同时进行相同运算操作的特点来进行大量的同类型操作,从而大大的提高了计算矩阵乘法的效率,且步骤简单,易于实现。
附图说明
图1是典型的向量处理器结构示意图。
图2是图1的向量处理器中的向量数据存储单元的结构示意图。
图3是本发明的总流程示意图。
图4是本发明实施例1中用DMA控制器实现乘数矩阵B元素重排序示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110338108.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:利用入湖河水漂浮栽培薄荷的方法
- 下一篇:一种北方日光节能温室