付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于fpga的双精度并行双精度浮点矩阵乘法器
矩阵教育法是数字数据处理领域的基本工作,通常用于计算不同的电路。例如,在数字通信领域执行dcm变换、高速fft变换和数据处理中的3-d变换使用大型矩阵矩阵法。由于矩阵矩阵计算的复杂性(通常为o(n3)),计算性能直接影响整个系统的性能。然而,传统的矩阵矩阵法通常用于数据处理矩阵,这严重限制了计算的速度。为了提高矩阵矩阵的计算性能,可以通过提高工作频率和算法的融合来提高矩阵矩阵的计算性能。现场编程门矩阵(f)具有强大的计算性能和逻辑分析能力,尤其是结合发射式的硬件结构和出色的浮点计算性能。它是目前的研究热点。目前,采用FPGA实现矩阵乘法计算的研究已经取得一些成果.在定点矩阵乘法方面,Amira等在FPGA上实现了8位定点的矩阵乘法器,但是该设计所需要的带宽与矩阵规模成比例增加,限制了该设计的可扩展性;Jang等设计的矩阵乘法器只需要固定的带宽,但是所需要的存储单元大小与矩阵规模成正比.在浮点矩阵乘法方面,Campell等设计了一个并行结构矩阵乘法器,该设计中的各个计算单元之间不需要通讯,具有可扩展性,但其所需的存储空间随矩阵维数的增加而增大,并且计算效率不高;田翔等设计了一个实时双精度矩阵乘法器,并在FPGA上完成了方案的实现,但是其计算单元的工作频率不高,限制了计算性能的提升.本文设计并在FPGA上实现了一个计算性能较高、可扩展性良好的并行双精度浮点矩阵乘法器.为提高工作频率,乘法器中的计算单元采用流水线结构,并运用C-slow时序重排技术解决了环路流水线上“数据相关冲突”的问题,提高了计算效率.此外,本设计所需要的带宽和存储单元大小都是固定的,故可扩展性好.1j.对于矩阵乘法C=A×B,其中A、B和C分别是M×L、L×N和M×N维矩阵,其计算方法如式(1):cij=L∑k=1aik×bkj;1≤i≤Μ,1≤j≤Ν.(1)cij=∑k=1Laik×bkj;1≤i≤M,1≤j≤N.(1)式(1)的计算复杂度为2×M×N×L,即O(n3).为降低算法复杂度,本文设计了一个包含P个处理单元(processingelement,PE)的并行双精度浮点矩阵乘法器,其中PE采用流水线结构,并运用C-slow时序重排技术解决环路流水线上“数据相关冲突”的问题,提高了计算效率.设计中所有操作数均为符合IEEE754标准的64bit双精度浮点数.1.1pla和cfbPE是构成浮点矩阵乘法器的基本单元.每个PE包含一个浮点乘法器、一个浮点加法器和用于存储计算结果的存储单元(Shiftregister),其结构如图1所示.图1中信号分为2类:数据信号和控制信号.其中a、b、MULTI_RESULT、ADD_RESULT、Q_FB和output都是64bit数据信号,其他都是控制信号,具体功能描述见表1.PE工作时,MULTI_OP_ND置高表示乘法器的输入(a,b)有效,此时启动乘法器,当浮点乘法器计算完毕时,MULTI_RDY输出高电平表示MULTI_RESULT有效;当ADD_OP_ND变为高电平时启动浮点加法器,当浮点加法器计算完毕时,ADD_RDY输出高电平表示乘加过程结束.此外,MULTI_RDY和ADD_RDY还作为Shiftregister的控制信号,控制Shiftregister移位.当一组元素计算完毕之后,将输入信号RD_EN置为高电平,读取Shiftregister中存储的结算结果;当需要计算新的元素时,将NEW_OP置为高电平,Shiftregister的寄存器全部清零,便可以进行新一轮的乘加运算.1.2opnd作前后分析为了提高计算吞吐率,整个PE采用流水线结构.与一般的结构相比,流水线结构能达到更高的时钟频率,但是输出结果与输入之间会有时钟延迟,延迟的时钟周期数等于流水线的级数.流水线的级数(Latency)越高,乘法器与加法器的工作频率就越高.对于无反馈回路的流水线结构来说,输出结果相对输入之间的延迟不会影响整个系统的顺序执行.但是当流水线结构中存在反馈回路时,若不妥善解决延迟问题,流水线上就会出现“数据相关冲突”.以PE的数据通道为例,图1中加法器端口2的输入数据来自于上一次乘积累加操作的结果,这便构成了一个反馈回路,只有保证MULTI_RESULT到达加法器端口1的时间与上次乘累加的结果(Q_FB)到达端口2的时间一致,才能确保PE的正确运行.否则,必然导致流水线时序紊乱,无法完成给定的计算任务,这就是所谓的“数据相关冲突”.下面通过剖析图2来阐述这个问题.如图2所示,MULTI_RDY比MULTI_OP_ND延迟T1;ADD_RDY比ADD_OP_ND(即图2中的MULTI_RDY)延迟T2.设CLK的周期为T,浮点乘法器和浮点加法器的Latency值分别为u和v,则T1=uT,T2=vT.设某个计算元素c的前后2组输入数据分别是a1、b1和a2、b2.开始计算时Shiftregister的寄存器被全部清零,A1=a1b1+0,A1经过一个寄存器延迟得到Q1;同样,M2=a2b2.由图2可以看出,只有当a2、b2和a1、b1之间保持v+1个时钟周期的延迟时(T2+T=(v+1)T),才能保证M2和Q1同时到达浮点加法器2个输入端口,进而得到正确的累加结果:A2=Q1+M2.否则,就会导致M2和Q1到达浮点加法器输入端口的时间不一致,发生“数据相关冲突”,无法得到正确的计算结果.上述分析表明,只有保证计算cij的任意2组输入(aik、bkj和ai,k+1、bk+1,j)之间保持v+1个时钟周期的延迟,PE才能正常工作.然而,这样一条流水线上只有一个计算任务时,时序会出现大量的空闲时间(如图2所示),空闲的比例为Τ2Τ+Τ2T2T+T2.为了提高时间利用率,本文采用C-slow模式来解决上述“数据相关冲突”的问题.C-slow是一种解决环路流水线问题的时序重排技术,不同于传统流水线上只执行一个任务的模式,它将多个计算任务交叉编排在一起,按次序打入流水线.要实现C-slow模式,需要对输入数据进行预处理,将输入数据重新编排,使得a、b端口的数据分别满足式(2)、(3):d_inA[k⋅(v+1)⋅Τ+sΤ+Τ0]=ai+s,k,(2)d_inB[k⋅(v+1)⋅Τ+sΤ+Τ0]=bk,j,(3)d_inA[k⋅(v+1)⋅T+sT+T0]=ai+s,k,(2)d_inB[k⋅(v+1)⋅T+sT+T0]=bk,j,(3)式中:T0为计算的起始时间,d_inA[t]、d_inB[t]分别表示t时刻a、b端口的输入数据,1≤k≤L,0≤s≤v.由式(2)、(3)可知,上述操作的目的是把求解cij,ci+1,j,…,ci+v,j这v+1个计算任务交叉编排在一条流水线上执行.同时,上述操作能保证对于cij的计算任务而言,前后2组输入数据保持v+1个时钟周期的延迟,而且不同cij的输入数据不发生重叠.所以,这样一条流水线上能完成v+1计算任务的交叉执行,即一个PE单元花费L(T2+T)时间能完成cij,ci+1,j,…,ci+v,j的v+1个元素的求解过程.从而,图1所示的shiftregister需要v+1个寄存器来存储计算结果,即n=v+1.1.3并行矩阵乘法器根据矩阵乘法的简单并行算法,在FPGA芯片上实现P个PE单元,这些PE单元按照图3所示的1×P阵列形式排列.PE单元之间不存在信息交互,它们独立地完成各自的计算任务.由式(2)和(3)可知,每个PE单元进行计算时要用到A的n行和B的某1列数据,整个PE阵列一次计算需要用到A的n行和B的P列数据.将输入矩阵A、B分别按行和按列进行分块:A=[AT1AT2…ATM]T,B=[B1B2…BN],其中Ai表示A的第i行,Bj表示B的第j列.将A的n行和B的P列作为图3所示系统的输入,图中预处理模块1和预处理模块2的功能分别对Ai和Bj进行处理,使得它们分别满足式(2)和(3)中d_inA[t]、d_inB[t]的要求并将其送入各个PE单元的a、b端口进行计算.通过这种PE的阵列结构,可以完成任意维数的矩阵乘法运算.假设A和B分别为M×L、L×N维矩阵,对于任意的M、N和L值,可以通过下述算法计算C=A×B的结果:从以上算法可以看出,使用并行矩阵乘法器进行计算时,循环的次数是传统串行算法的1/P,即计算复杂度降低为O(n3/P).同时由于该并行矩阵乘法器中的各个PE单元是相互独立的,因此可以方便地扩展到多片FPGA上实现并行计算.2并行矩阵乘法器下面以在FPGA上实现的并行矩阵乘法器来对上述设计的性能进行分析.本文选用XilinxVirtex-5LX155芯片实现该设计.PE中的浮点乘法器和浮点加法器使用Xilinx公司提供的floating-pointIP核生成.通过对运行速度及该器件中DSP48E单元、CLB单元等资源进行综合考虑,对并行矩阵乘法器进行如下设置:1)IP核生成浮点乘法器时,DSP48E的使用等级设置为MediumUsage(即单个浮点乘法器使用9个DSP48E单元),Latency的值设定为15;2)IP核生成浮点加法器时,DSP48E的使用等级设置为NoUsage,Latency的值设定为9;3)设定矩阵乘法器中PE单元的个数P=10.本设计中所使用的FPGA开发环境和仿真环境分别为XilinxISEDesignSuite13.1和MentorGraphicsModelsimSE6.5a.2.1矩阵乘法器的充放电频率仿真理想情况下,每个PE单元在一个时钟周期内可以完成1次双精度浮点乘法操作和1次双精度浮点加法操作,因此整个矩阵乘法器的计算性能可计算为ΡERFpeak=2×Ρ×f.(4)PERFpeak=2×P×f.(4)式中:PERFpeak表示矩阵乘法器的峰值计算性能(每秒百万次浮点操作),P为矩阵乘法器中PE单元的个数,f为矩阵乘法器工作的时钟频率.FPGA内部资源的使用情况见表2.根据布局布线后仿真的结果,该矩阵乘法器在未做优化的情况下工作频率能达到250MHz.由此可知该矩阵乘法器的峰值计算性能可达到5000MFLOPS.2.2平均计算性能分析并行矩阵乘法器的平均计算性能可以通过计算2个矩阵相乘所需的总时间来求得,如式(5)所示.ΡERF=F/t.(5)PERF=F/t.(5)式中:PERF表示并行矩阵乘法器的平均计算性能,F表示2个矩阵相乘总共需要完成的双精度浮点操作次数,t为计算时间.本文分别以2个128bit×128bit的矩阵相乘和2个256bit×256bit的矩阵相乘的实例来分析该设计的平均计算性能,如表3所示.由表2、3可以看出,本文设计的并行矩阵乘法器的峰值计算性能可达到5000MFLOPS,平均计算性能可以保证在峰值计算性能的85%左右.而田翔等的设计A未采用流水线结构,工作频率只有60MHz,即使在一片FPGA上集成了25个PE单元,它的峰值计算性能只能达到3000MFLOPS.而且,设计A的平均浮点计算性能只能保持在峰值计算性能的50%左右.由此可见,本文设计在计算性能上有大幅度提高.在矩阵乘法计算中,若FPGA的I/O带宽小于一定值,并行矩阵乘法器中的PE单元就会出现等待状态,此时,带宽便成为制约计算性能的因素.当I/O带宽达到或者高于这个值后,每个PE单元的计算性能则成为制约并行矩阵乘法器计算性能的主要因素.在本文的设计中,PE的计算性能主要由工作频率决定,在工作频率为250MHz的情况下,只要I/O带宽达到4GB/s,便不会对整个系统的计算性能产生影响.3pe单元的设计及并行矩阵乘法器结构的进一步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47529-2026自助仓储运营管理规范
- GB 47501-2026旋转电机安全技术规范
- 医学26年:免疫吸附适应症把握 查房课件
- 硫酸泄漏应急演练方案纸推及总结
- 2025中小学高级教师任职资格评审讲课答辩题目(附答案)
- 高速收费员能力练习题及答案
- 施工现场扬尘噪声在线监测运维方案
- 2025年通信专业技术人员职业水平考试中级实务模拟题与答案
- 农田设计质量保证措施技术方案
- 流动人口留守儿童动态监测机制
- 班子成员2026年学习教育个人查摆问题对照发言材料
- 2026中航机载系统共性技术有限公司暑期实习生(校招提前批)招募笔试历年参考题库附带答案详解
- 医药采购培训课件
- 阴道镜门诊工作制度
- 2025-2030中国激光脱毛产品市场未来趋势与营销战略规划研究报告
- 压力性损伤的家属教育
- 铁建公司保密制度
- 太西煤地质特征课件解析
- 漂亮的羽毛课件
- 景区卫生环境管理制度
- AI在室内设计中的应用:技术革新与行业变革
评论
0/150
提交评论