向量与矩阵的FPGA并行快速乘法器模块制造技术

技术编号:24544024 阅读:104 留言:0更新日期:2020-06-17 15:36
提供一种向量与矩阵的FPGA并行快速乘法器模块,消除了现有方法计算时需要重复寻址的问题,有效减少了访存次数和访存时间,提高了计算速度,实现了向量与矩阵的并行乘法运算,并提供该向量与矩阵乘法器的实现方法。本实用新型专利技术的技术方案:结构如下:该结构由n+1个FIFO队列结构存储器、n个乘法器、n个累加器、n个缓存器和n个控制器组成。每个存储器均有1个输入端口,1个输出端口;每个乘法器均有2个输入端口,1个输出端口;每个累加器均有2个输入端口,1个输出端口;每个缓存器均有1个输入端口,1个输出端口;每个控制器均有1个输入端口,2个输出端口。

FPGA parallel fast multiplier module of vector and matrix

【技术实现步骤摘要】
向量与矩阵的FPGA并行快速乘法器模块
本专利技术属于信息通信领域,具体涉及一种向量与矩阵的FPGA并行快速乘法器。
技术介绍
向量与矩阵的乘法运算是现代信号处理中最基本的运算,并在诸如图像处理领域的特征提取、稀疏信号处理、机器学习领域数据压缩以及自动控制中的过程控制中都得到广泛应用。向量与矩阵的乘法运算是一种耗时长,计算复杂度较高,消耗内存大的运算,其计算性能直接影响系统的整体性能。近年来,随着FPGA技术的飞速发展,FPGA将采集、控制、处理、传输等功能集于一块芯片内,缩短了开发周期,并行计算使得可编程灵活性大大增加,现有的FPGA随着工艺以及精度的提高,更广泛的应用于计算密集型的应用场合。基于FPGA的设计原理和架构,FPGA通过设计多个并行计算模块,可以快速有效地实现并行处理,提高计算速度。但是,目前基于FPGA的向量与矩阵乘法运算设计方面,多采用串行的设计方法,该类方法存在延迟时间长,可扩展性差以及带宽随维度成倍增加等限制。因此,现有的处理方式控制复杂而且不能对实时数据进行流水式操作,计算复杂度较高,消耗内存大,且不易实现。
技术实现思路
本专利技术的目的在于针对现有方法的不足,提供一种向量与矩阵的FPGA并行快速乘法器,消除了现有方法计算时需要重复寻址的问题,有效减少了访存次数和访存时间,提高了计算速度,实现了向量与矩阵的并行乘法运算,并提供该向量与矩阵乘法器的实现方法。本专利技术的技术方案:结构如下:该结构由n+1个FIFO(先进先出)队列结构存储器(存储器(0)、存储器(1),存储器(2)…存储器(n))、n个乘法器(M1,M2,…Mn)、n个累加器(A1,A2,…An)、n个缓存器(Buf1、Buf2、…Bufn)和n个控制器(控制器1、控制器2、…控制器n)组成。每个存储器均有1个输入端口,1个输出端口;每个乘法器均有2个输入端口,1个输出端口;每个累加器均有2个输入端口,1个输出端口;每个缓存器均有1个输入端口,1个输出端口;每个控制器均有1个输入端口,2个输出端口。各个部件的连接关系如下:存储器(0)的输出端口与乘法器M1,M2,…Mn的一个输入端口分别相连,存储器(1)的输出端口与乘法器M1的另一个输入端口连接,乘法器M1的输出端口与累加器A1的一个输入端口相连,累加器A1的另一个输入端口与控制器1的输出端口1连接,累加器A1的输出端口与缓存器Buf1的输入端口连接,缓存器Buf1的输出端口与控制器1的输入端口连接,控制器1的输出端口2为最终结果输出端口out1;存储器(0)的输出端口与乘法器M1,M2,…Mn的一个输入端口分别相连,存储器(2)的输出端口与乘法器M2的另一个输入端口连接,乘法器M2的输出端口与累加器A2的一个输入端口相连,累加器A2的另一个输入端口与控制器2的输出端口1连接,累加器A2的输出端口与缓存器Buf2的输入端口连接,缓存器Buf2的输出端口与控制器2的输入端口连接,控制器2的输出端口2为最终结果输出端口out2;……存储器(0)的输出端口与乘法器M1,M2,…Mn的一个输入端口分别相连,存储器(n)的输出端口与乘法器Mn的另一个输入端口连接,乘法器Mn的输出端口与累加器An的一个输入端口相连,累加器An的另一个输入端口与控制器n的输出端口连接,累加器An的输出端口与缓存器Bufn的输入端口连接,缓存器Bufn的输出端口与控制器n的输入端口连接,控制器n的输出端口2为最终结果输出端口outn;运算步骤为:S1将m维向量X存入存储器(0),即存储器(0)中存入的值为x1,x2,…xm;为了存储方便,将矩阵W转置为n*m维矩阵,然后将n行向量分别存入存储器(1),存储器(2)…存储器(n);即存储器(1)中存入的值为w11,w21,…wm1,存储器(2)中存入的值为w12,w22,…wm2,以此类推,存储器(n)中存入的值为w1n,w2n,…wmn;S2取出存储器(0)中的第1个元素x1及存储器(1),存储器(2),…存储器(n)中的第1个元素w11,w12,…,w1n;将x1分别送入M1,M2,…Mn乘法器,w11,w12,…w1n依次送入M1,M2,…Mn乘法器,实现x1与w11,w12,…w1n的n路并行乘法计算,然后将乘积结果送入相应的累加器A1,A2,…An;S3取出存储器(0)中的第2个元素x2及存储器(1),存储器(2)…存储器(n)中的第2个元素w21,w22,…w2n;将x2分别送入M1,M2,…Mn乘法器,w21,w22,…w2n依次送入M1,M2,…Mn乘法器,实现x2与w21,w22,…w2n的n路并行乘法计算,然后将乘积结果送入相应的累加器A1,A2,…An;S4取出存储器(0)中的第i(m>i≥3)个元素xi及存储器(1),存储器(2)…存储器(n)中的第i个元素wi1,wi2,…,win;将xi分别送入M1,M2,…,Mn乘法器,wi1,wi2,…win依次送入M1,M2,…Mn乘法器,实现xi与wi1,wi2,…win的n路并行乘法计算,然后将乘积结果送入相应的累加器A1,A2,…An;S5若i<m,则i+1,重复步骤S4;否则,进入步骤S6;S6累加器A1,A2,…An将输出结果分别存储在缓存器Buf1,Buf2,…,Bufn中。控制器1,控制器2,…,控制器n判断向量X与矩阵W的运算是否结束,如果没有结束,将Buf1,Buf2,…,Bufn中的结果送入累加器A1,A2,…An;如果结束,则将Buf1,Buf2,…,Bufn中的结果输出,即为向量X与矩阵W相乘的结果[out1,out2,…outn].附图说明图1为结构示意图具体实施方式如图1所示,为了描述更清楚,在附图中加入了控制器模块,从而方便控制乘法是否计算完成,如果没有完成则将buf结果送入累加器A1,如果计算完成,则输出结果Out。本专利技术的技术方案:向量与矩阵的FPGA并行快速乘法器原理如下:一个向量X=(x1,x2,x3,……,xm),如果X*W,若用传统的计算方法,则需要做如下运算:1)取x1,取w11,计算x1*w11;2)取x2,取w21,计算x2*w21;3)取x3,取w31,计算x3*w31;……4)取xm,取wm1,计算xm*wm1;5)计算∑xi*wi1,得到X*W1,即完成了向量X与矩阵W第一列的乘积运算。完成向量与矩阵一列的乘积运算需要访存2m次,以此类推,m维向量X与m*n维矩阵W做乘积运算,则需要2m*n=2mn次访存且并行效果非常差。如果将W进行转置,则可以进行如下运算:取X中第一个向量x1作为公共向量,取WT中的第一列则可以用n路并行乘法来计算,得到取X中第二个向量x2作为公共向量,取WT中的第二列则可以用n路并行乘法来计算,得到……取X中第m个向量xm作为公共向量,取WT中的第m列则可以用本文档来自技高网...

【技术保护点】
1.一种向量与矩阵的FPGA并行快速乘法器模块,其特征在于,结构如下:/n该结构由n+1个FIFO即先进先出队列结构存储器、n个乘法器、n个累加器、n个缓存器和n个控制器组成;/n其中,每个存储器均有1个输入端口,1个输出端口;每个乘法器均有2个输入端口,1个输出端口;每个累加器均有2个输入端口,1个输出端口;每个缓存器均有1个输入端口,1个输出端口;每个控制器均有1个输入端口,2个输出端口;/n各个部件的连接关系如下:/n存储器(0)的输出端口与乘法器M

【技术特征摘要】
1.一种向量与矩阵的FPGA并行快速乘法器模块,其特征在于,结构如下:
该结构由n+1个FIFO即先进先出队列结构存储器、n个乘法器、n个累加器、n个缓存器和n个控制器组成;
其中,每个存储器均有1个输入端口,1个输出端口;每个乘法器均有2个输入端口,1个输出端口;每个累加器均有2个输入端口,1个输出端口;每个缓存器均有1个输入端口,1个输出端口;每个控制器均有1个输入端口,2个输出端口;
各个部件的连接关系如下:
存储器(0)的输出端口与乘法器M1,M2,…Mn的一个输入端口分别相连,存储器(1)的输出端口与乘法器M1的另一个输入端口连接,乘法器M1的输出端口与累加器A1的一个输入端口相连,累加器A1的另一个输入端口与控制器1的输出端口1连接,累加器A1的输出端口与缓存器Buf1的输入端口连接,缓存器Buf1的输出端口与控制器1的输入端口连接,控制器1的输出端口2为最终结...

【专利技术属性】
技术研发人员:杨旭辉祁昌禹马芳兰徐武德张红霞马宏伟杨国辉巩学芳郑礴韩根亮
申请(专利权)人:甘肃省科学院传感技术研究所
类型:新型
国别省市:甘肃;62

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

1