基于fpga的大规模矩阵q分解算法的研究与实现.docxVIP

基于fpga的大规模矩阵q分解算法的研究与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于fpga的大规模矩阵q分解算法的研究与实现 1 面向中小型企业的熔喷算法设计与实现 大规模区块链分解广泛应用于数据处理、计算机科学、计算流量、结构力学等领域。由于QR分解运算量巨大,传统方法是在大规模并行机上进行加速。目前还没有基于FPGA(Field Programmable Gate Array,简称FPGA)平台加速大规模矩阵QR方面的研究。 随着集成电路技术的发展,FPGA芯片的计算能力和片内存储资源迅速增长。同时,FPGA器件以其可编程性、细粒度并行能力、丰富的硬件资源、灵活的算法适应性和较低的功耗成为理想的可编程系统平台。 近年来,有很多面向中小规模QR分解的FPGA设计与实现,如4*4、64*64等。小规模QR分解,如4*4,一般采用二维Systolic阵列来实现。虽然二维阵列结构处理器可以提供很高的并行性,但其硬件代价很大,阵列中处理单元数量一般达到O(n2)。当矩阵规模较大时,由于芯片面积和功耗等因素的限制,很难实现二维结构的处理阵列。为了实现规模较大的QR分解,人们提出了各种折叠和影射方法,将二维结构阵列折叠成一维结构。QR处理器阵列应用折叠技术面临两个难题:三角阵列结构的设计和处理单元的设计。文献将边界和内部处理单元分别实现,文献将QR阵列中的边界和内部处理单元合并为一个处理单元。由折叠和映射方法得到线性阵列的处理单元数都为O(n),这对于中等规模系统的实现还是可以接受的。但是,当规模为1K*1K、4K*4K甚至更大时,要实现O(n)量级的处理单元数的线性阵列是很困难的。 本文在分析了基于快速Givens Rotation的QR (GR-QR)分解算法数据依赖关系,提出了操作级的细粒度QR分解并行算法,并在FPGA平台上实现了一种可扩展结构的QR分解阵列处理器。综合结果表明,StratixII EP2S130F1020C5 FPGA芯片最多可以集成15个GR-PE,并且频率可达101MHz。相对于2.0GHz Pentium双核CPU,该阵列处理器可取得19倍的加速比。 2 快速gr-cr算法的数据依赖关系 基于Givens Rotation的QR分解(GR-QR)是数值稳定性最好的算法之一。但是,对于规模为n*n的矩阵来说,GR-QR算法中乘加的运算量为O(5n3)。为了减少GR-QR算法的计算量,人们提出许多快速QR分解算法。例如,文献提出GR-QR的一种快速算法,使乘法的运算量减少了一半,该算法乘法和加法的运算量总共为O(10n3/3)。经过Givens Rotation变换后,原始矩阵A变换为上三角矩阵R,单位矩阵I变换为正交矩阵Q。为了便于描述基于GR-QR算法,我们将原始矩阵A和单位矩阵I合并为矩阵B,如图1所示。 数据相关是并行程序和并行体系结构设计的重要方面。本文主要关注GR-QR算法中外层循环片间的数据相关。这里,我们将更新因子计算称为程序块B1,而将更新操作称为程序块B2。图2详细描述了基于快速GR-QR算法数据依赖关系。其中,图2a是GR-QR算法的总体框架;图2b是第i层外层循环和第(i+1)层外层循环程序块之间的数据依赖关系;图2c以第i层循环中程序块B2(i,i+3)和第(i+1)层循环中程序块B1(i+1,i+3)为例进一步细化了外层循环间的数据依赖关系。由图2c可以看出,当第i层循环更新出程序块B1(i+1,i+3)所需的第一个数据就可以启动该程序块的执行。这也是细粒度并行程序设计的基础。 3 高速gr-111粒度的计算方法及其可扩展性分析 3.1 计算处理单元b 根据上一节中的数据依赖关系,本节采用并行化外层循环片策略对快速GR-QR算法进行并行实现。算法1采用单程序多数据流模型(Single Program Multiple Data,简称SPMD)描述基于快速GR-QR分解细粒度并行算法的执行过程。该算法包括初始化、计算、同步与数据存储和下次计算准备四个阶段。初始化阶段确定该处理单元的PID号,并根据PID号得到该处理单元计算上三角矩阵和正交矩阵的初始位置。计算阶段主要完成上三角矩阵R和正交矩阵Q一行的计算,并且在上一个处理单元更新的基础上完成矩阵B的更新操作。如语句S31和S34所示,第一个处理单元从DRAM存储器中读取数据,其它处理单元从上一个处理单元中接收数据。语句S36则表示最后一个处理单元将更新结果写回执DRAM存储器,而其余处理单元将其更新结果传给下一个处理单元。正如上一节中的数据依赖关系图所示,当每个处理单元接收到第一个有效数据就可以启动该处理单元,并且当完成一个更新操作就可将该更新结果传给下一个处理单元。因此,S34、S35和S36可以并行执行。在同步与数据存储阶段,当最后一个处理单元完成更新操作,即所有处理完成本次计算和更新操作。将上三角矩阵R

文档评论(0)

uyyyeuuryw + 关注
实名认证
文档贡献者

专业文档制作

1亿VIP精品文档

相关文档