一种面向可编程代数处理器的矩阵乘法计算装置及方法制造方法及图纸

技术编号:10188239 阅读:208 留言:0更新日期:2014-07-04 20:40
本发明专利技术公开了一种矩阵乘法计算装置及方法,所述装置包括多粒度并行存储器、数据缓存装置、数据广播缓存装置和向量运算装置。本发明专利技术采用可编程配置的DSP芯片,并结合高效的向量化矩阵乘法方案,针对实际应用中存在的矩阵尺寸小、运算量大的矩阵乘法进行并行优化处理,具有运算速度快,并行粒度高和访存次数少的优点。

【技术实现步骤摘要】
一种面向可编程代数处理器的矩阵乘法计算装置及方法
本专利技术涉及数据处理
,更具体地,涉及一种基于可编程代数处理器的矩阵乘法计算装置及方法。
技术介绍
矩阵乘法是科学计算中一种基本操作,其广泛用于信号处理、图像处理、雷达、声纳、通信等复杂计算领域中,并且由于其计算复杂度为O(n3),使得矩阵乘法往往成为算法计算过程中最为耗时的操作,进而影响整个算法的性能。矩阵乘法操作又分为大矩阵乘法和小矩阵乘法,大矩阵乘法由于其行列数值非常巨大,导致运算量呈指数级增加,近些年受到广泛关注,一种通用的处理方法为将大矩阵进行分块处理,以加快其运算效率;小矩阵乘法由于其单个乘法的计算量并不是很大,往往被人们所忽视,但随着无线通信领域、雷达信号处理领域,数字图像处理等计算密集型领域的广泛发展,海量信息必须在固定时间内进行处理,而其中大规模的小矩阵乘法随着矩阵数量的急剧增加,逐渐成为非常耗时的计算操作。例如在无线通信领域中的预编码过程,存在着多种模式的大规模小矩阵乘法,并且其有非常严格的时间约束。具体说来,多天线技术包括传输分集、空间复用和波束赋形技术。这三种技术简单来说都包含大规模小矩阵相乘,以空间复用为例,其分为闭环空间复用和开环空间复用,其计算公式如下:闭环空间复用:开环空间复用:其中:W(i)为码本,根据天线数不同存在着不同的码本,例如,在两天线情况下存在如下码本:四天线情况下具体码本由得出,un及Wn从下表得出:八天线码本相对更为复杂一些,这里就不一一列举。然后这些小矩阵码本再和每层的信号进行矩阵乘法,最终得出不同天线上的发射信号,由于信号量非常巨大,导致该过程也变得异常费时。基于非码本的预编码操作,同样是小矩阵码本和信号矩阵相乘,只是码本获得方式不同而已。总体来说,对于无线通信领域,特别是LTE/LTE-A中,存在码本矩阵行列为(1,1),(2,1),(2,2),(4,1),(4,2),(4,3),(4,4),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8)15种情况和信号矩阵行列为(1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1)8种情况,并且码本矩阵和信号矩阵相乘的次数非常多。对于该类矩阵乘法由于其矩阵行列比较小,无法使用分块方法进行计算,而直接行列做乘累加操作又相对耗时,因此有必要提出一种高效地解决上述问题的大规模小矩阵相乘的方法与装置。
技术实现思路
(一)要解决的技术问题本专利技术所要解决的技术问题是现有的矩阵相乘方法与装置对于大规模小矩阵的相乘执行效率不高的问题。(二)技术方案(三)有益效果本专利技术对矩阵算法进行了优化,通过“数据缓存、广播及流水”机制,结合一个运算模式多样的运算部件,使得一系列小矩阵乘法能够充分的并行执行,能够提高大规模小矩阵的运算效率。附图说明图1为本专利技术的矩阵乘法装置图;图2为本专利技术中A系列矩阵在多粒度并行存储器中的数据分布图;图3为本专利技术中B系列矩阵在多粒度并行存储器中的数据分布图;图4为本专利技术实施例的矩阵乘法的计算示意图;图5为本专利技术中广播操作示意图。具体实施方式本专利技术针对现有的情况,提出了一种高效地计算矩阵乘法的方法和装置,特别适合于大规模小矩阵乘法。本专利技术所提出的大规模小矩阵乘法向量化装置包含:多粒度并行存储器10、数据缓存装置20、数据广播缓存装置30、向量运算装置40。其中:所述多粒度并行存储器10用于存储多个要进行乘法运算的矩阵、广播索引以及矩阵乘法之后的结果。所述广播索引用于对矩阵中的每个数据进行广播操作。该存储器的读写位宽与数据缓存装置的寄存器堆201位宽、数据广播缓存装置中相关寄存器位宽以及所述向量运算装置40的运算尺寸一致,记为P。所述数据缓存装置20用于将矩阵乘法中的不需要广播的矩阵从多粒度并行存储器10中取出,存入到寄存器堆201中。所述数据缓存装置20由寄存器堆201组成。所述数据广播缓存装置30用于将矩阵乘法中需广播的矩阵数据以及广播索引从所述多粒度并行存储器10中取出,分别放入到数据缓存实体302和广播索引寄存器303中,依据广播索引寄存器303中的广播索引对B系列矩阵数据进行广播操作。所述广播操作是指将一个数据依据广播索引复制多份放入到寄存器的相应位置中,如图5所示。所述数据广播装置30包括数据广播控制单元301和数据缓存实体302和广播索引寄存器303,其中数据广播控制单元301用于控制具体的数据广播操作。所述向量运算装置40,用于将从所述数据缓存装置20中读取得到的要进行乘法运算的矩阵和从所述数据广播缓存装置30中读取并广播后的要进行乘法运算的矩阵进行向量运算,并将结果写入多粒度存储单元101中。所述向量运算单元40包含乘法运算单元401和累加运算单元402,可同时执行P个字节的向量运算操作。本专利技术的另一方面是提出一种用于大规模小矩阵乘法的向量化计算方法,用于进行矩阵乘法Ai×Bi,其中Ai表示维度为L×M的A系列矩阵,Bi表示维度为M×N的B系列矩阵,i表示矩阵的序号,且i为正整数。根据本专利技术的计算装置的存储器端口位宽和运算尺寸,一次可同时执行BS对矩阵相乘,其中BS为存储器端口位宽所能容纳的最大数据个数。这里需要说明的是,A系列矩阵和B系列矩阵在内存中按下列规则存储。其中A系列矩阵以行优先存储在多粒度并行存储器10的一个Bank内,如图2所示;B系列矩阵以列优先存储在多粒度并行存储器10的一个Bank内,如图3所示。本专利技术根据A系列矩阵和B系列矩阵的特点,分为三种情况:一、A系列矩列和B系列矩阵个数都不唯一;二、A系列矩阵个数唯一,B系列矩阵个数不唯一;三、A系列矩阵个数不唯一,B系列矩阵个数唯一。第一种情况,本专利技术的方法包括如下步骤:步骤S1:分别从多粒度并行存储器10中按行读取L×M行的A系列矩阵以及按行读取M×N行的B系列矩阵到数据缓存装置20中,A系列矩阵放置在寄存器堆201中的Ck寄存器中,B系列矩阵放置在寄存器堆201中的寄存器中Dl,其中k∈[1,L*M],l∈[1,M*N];步骤S2:令k1=0,k2=0;步骤S3:取Ck中第k1×M+1到(k1+1)×M行数据和Dl中第k2×M+1到(k2+1)×M行数据,其相应行分别进行点乘操作,然后将结果进行累加操作,得到结果E,最后将E写回到多粒度并行存储器10中,如图4所示;步骤S4:k2加1,重复步骤S3,直到k2等于N为止;步骤S5:k1加1,重复步骤S3~S4,直到k1等于L为止;步骤S6:读取下一个L×M行的A系列矩阵和M×N行的B系列矩阵到数据缓存装置20中,重复步骤S2~S5,直到所有矩阵计算完毕。第二种情况包括如下步骤:步骤P1:从多粒度并行存储器10中按列读取L×M行1列A矩阵数据到数据广播缓存装置30中,并且按行读取M×N行B系列矩阵数据到数据缓存装置20中,表示为Dl,其中l∈[1,M*N];步骤P2:对数据广播缓存装置30中的每一个数据进行类似于图5所示广播操作,即每一个数据都复制BS份存储在寄存器Ck中,其中k∈[1,L*M];步骤P3:令k1=0,k2=0;步骤P4:取Ck中第k1×M+1到(k1+1)×M行数据和Dl中第k2×M+1到(k2+1)×M行数据,其本文档来自技高网
...
一种面向可编程代数处理器的矩阵乘法计算装置及方法

【技术保护点】
一种矩阵乘法计算装置,其特征在于,该装置包括多粒度并行存储器(10)、数据缓存装置(20)、数据广播缓存装置(30)和向量运算装置(40)。所述的多粒度并行存储器(10)用于存储要进行乘法运算的矩阵、广播索引以及矩阵乘法之后的结果;所述数据缓存装置(20)用于暂存从多粒度并行存储器(10)中取出的要进行乘法运算的矩阵;所述数据广播缓存装置(30)用于将要进行数据广播操作的矩阵从多粒度并行存储器(10)中取出,并对所述矩阵的数据进行广播操作;所述向量运算装置(40)用于将从所述数据缓存装置(20)中读取得到的矩阵进行向量运算,或将从所述数据缓存装置(20)中读取得到的矩阵和从所述数据广播缓存装置(30)中读取的矩阵进行向量运算,并将结果写入所述多粒度存储器(10)中。

【技术特征摘要】
1.一种矩阵乘法计算装置,其特征在于,该装置包括多粒度并行存储器(10)、数据缓存装置(20)、数据广播缓存装置(30)和向量运算装置(40);所述的多粒度并行存储器(10)用于存储要进行乘法运算的矩阵、广播索引以及矩阵乘法之后的结果;所述数据缓存装置(20)用于暂存从多粒度并行存储器(10)中取出的要进行乘法运算的矩阵;所述数据广播缓存装置(30)用于将要进行数据广播操作的矩阵从多粒度并行存储器(10)中取出,并对所述矩阵的数据进行广播操作;所述数据广播缓存装置(30)包括数据广播控制单元(301)、数据缓存实体(302)和广播索引寄存器(303),其中数据广播控制单元(301)用于控制数据广播操作;所述向量运算装置(40)用于将从所述数据缓存装置(20)中读取得到的矩阵进行向量运算,或将从所述数据缓存装置(20)中读取得到的矩阵和从所述数据广播缓存装置(30)中读取的矩阵进行向量运算,并将结果写入所述多粒度存储器(10)中。2.如权利要求1所述的矩阵乘法计算装置,其特征在于,所述多粒度并行存储器的读写位宽、数据缓存装置(20)中寄存器堆(201)的位宽、数据广播缓存装置中相关寄存器位宽以及所述向量运算装置(40)的运算尺寸相等。3.如权利要求1所述的矩阵乘法计算装置,其特征在于,所述数据广播缓存装置对所述矩阵的数据依据广播索引寄存器(303)中的广播索引进行广播操作。4.如权利要求1所述的矩阵乘法计算装置,其特征在于,所述向量运算单元(40)包括乘法运算单元(401)和累加运算单元(402)。5.一种矩阵乘法计算方法,其特征在于,包括如下步骤:步骤S1:分别从多粒度并行存储器10中按行读取L×M行的A系列矩阵以及按行读取M×N行的B系列矩阵到数据缓存装置(20)中,A系列矩阵放置在寄存器堆(201)中的Ck寄存器中,B系列矩阵放置在寄存器堆(201)中的寄存器中Dl,其中k∈[1,L*M],l∈[1,M*N];步骤S2:令k1=0,k2=0;步骤S3:取Ck中第k1×M+1到(k1+1)×M行数据和Dl中第k2×M+1到(k2+1)×M行数据,其相应行分别进行点乘操作,然后将结果进行累加操作,得到结果E,最后将E写回到多粒度并行存储器(10)中;步骤S4:k2加1,重复步骤S3,直到k2等于N为止;步骤S5:k1加1,重复步骤S3~S4,直到k1等于L为止;步骤S6:读取下一个L×M行的A系列矩阵和M×N行的B...

【专利技术属性】
技术研发人员:郭晓龙王晓琴王伟康吴军宁林啸郭璟张森赵旭莹
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1