[发明专利]基于FPGA的高级综合实现拟牛顿算法加速的方法在审
申请号: | 201611035499.5 | 申请日: | 2016-11-19 |
公开(公告)号: | CN106775905A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 刘强;马磊 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 天津市北洋有限责任专利代理事务所12201 | 代理人: | 程小艳 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 高级 综合 实现 牛顿 算法 加速 方法 | ||
技术领域
本发明涉及拟牛顿算法(Quasi-Newton,QN)加速技术,具体涉及一种基于现场可编程门阵列(Field Programmable Gate Arrays,FPGA)的高层次综合(High Level Synthesis,HLS)工具优化加速拟牛顿算法的方法。
背景技术
拟牛顿算法是一种求解非线性优化最有效的方法,被广泛应用于各种领域,如:随机优化,集成电路布局和电力系统的加载频率控制。这些应用的关键性因素是在有限的时间内获得最优的解决方案。然而拟牛顿算法由于内部含有大量的迭代算法导致耗时严重。所以,对拟牛顿算法的加速是一个重要的研究方向。
随着FPGA的快速发展,现在的FPGA平台拥有更多的资源,操作频率能够达到上百MHz。FPGA器件具有可重配置,高并行度,设计灵活(相对与专用集成电路)的特性(见文献[1]),更适合应用于嵌入式场合,FPGA被认为是加速计算量大的应用的最佳选择,例如人工神经网络和图谱计算(见文献[2]及[3])。与其他普适性的计算架构相比,FPGA允许定制化的计算架构和针对特定应用算法的内存子系统。在FPGA内部进行复杂的时序设计一般需要状态机进行开发,这需要花费较多的时间进行分析与设计,而且软件工程师在利用高层次语言C,C++进行开发与硬件工程师利用RTL设计语言设计电路的背景知识存在一定的差距。这导致了FPGA的开发比传统的单片机开发有很大的不同,开发比较困难(见文献[4])。
高层次综合是一种将高层次语言有效地转化为满足设计约束的寄存器传输级(Register Transfer Level,RTL)描述的工具。HLS提高了硬件设计的抽象层次,具有以下突出优点(见文献[5]):1)硬件工程师可以减少设计时间,缩短产品上市周期;2)软件工程师能完成硬件系统设计;3)沟通了软件设计和硬件设计两个领域,展现了一种软硬件联合设计的方法,HLS被认为是下一代半导体工业中的核心角色,在企业界和学术界受到越来越多的关注。
发明内容
本发明的目的在于克服上述现有技术的不足,从加速拟牛顿算法出发,利用高层次综合实现拟牛顿算法,通过FPGA实现对拟牛顿算法加速,降低了FPGA的开发难度。
本发明的技术方案:基于FPGA的高级综合实现拟牛顿算法加速的方法,包括以下步骤:
(1)、分析拟牛顿算法的功能,划分出拟牛顿算法的主要计算模块;
(2)、利用高级语言C,C++实现上述步骤(1)中的各个模块,并且验证算法功能的正确性;
(3)、将上述步骤(2)功能验证正确的拟牛顿算法作为输入文件,利用高层次综合工具,将高级语言转化为RTL级语言,验证生成的RTL代码;
(4)、将生成的RTL代码制作成比特流文件,下载配置到FPGA的可配置逻辑部分。
所述步骤(1)分析拟牛顿算法的功能,将算法划分成三个主要计算模块,分别是梯度计算模块Compute_grad,矩阵更新模块QN_formula和线性搜索模块Line_search;矩阵更新模块以BFGS方式更新矩阵并决定搜索方向,线性搜索模块采用黄金分割法在搜索方向上确定搜索步长,梯度计算模块完成目标函数梯度的计算;另外目标函数Object_function是拟牛顿算法需要求解的目标函数;片外存储单元Off-chip DRAM是用来存储计算工程中需要的计算信息;计算控制单元Computation Scheduling controller是来安排上述几个模块的操作顺序及内存与相对应模块的数据传递。
所述步骤(2)设计的算法考虑到拟牛顿算法的通用性,将不同的算法结构参数化。
所述步骤(2)利用visual studio 2013运行实现的算法,以验证算法功能的正确性。
所述步骤(3)利用高层次综合工具的优化方法来对算法进行优化,优化结果满足设计约束,不仅RTL代码正确,而且运行速度达到预期,其中优化包括代码转换和指令优化,并利用高级综合工具自带的软硬件联合仿真验证生成的RTL代码的正确性。
所述步骤(4)FPGA型号为Net-FPGA SUME(xc7vx690t),对算法的资源利用和运行时间分别作性能测试。
本发明相对于现有技术有以下有益效果:本发明通过高层次综合工具将C,C++设计的拟牛顿算法转化为RTL代码,并在Net-FPGA SUME(xc7vx690t)开发板上综合实现。本发明可达到的有益效果为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611035499.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对程序预编译的方法及装置
- 下一篇:业务流程处理方法及装置