发明名称 为程序定制的可重构加速器实现方法
摘要 本发明公开了一种为程序定制的可重构加速器实现方法。是通过为传统通用计算机系统增加FPGA,在FPGA上实现为程序定制的可重构加速器对程序进行加速,其主要功能是对程序进行剖析,以函数为粒度采样程序的运行时统计信息,获取程序中计算密集的热点函数,并在FPGA上将热点函数实现为可重构加速器,并将程序中热点函数的调用修改为对应可重构加速器的调用,加速热点函数的执行。本发明使用可重构加速器实现程序的热点函数,提高程序总体加速比;使用FPGA实现可重构加速器,在达到近似应用定制集成电路的性能的同时,保持了通用处理器的灵活性。
申请公布号 CN101441564A 申请公布日期 2009.05.27
申请号 CN200810162905.3 申请日期 2008.12.04
申请人 浙江大学 发明人 陈天洲;严力科;陈度;王罡;王勇刚
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 林怀禹
主权项 1、一种为程序定制的可重构加速器实现方法,其特征在于:1)可重构加速器辅助计算:可重构加速器接受程序的调用,负责处理程序中计算密集的部分,在可重构加速器的计算过程中,程序挂起等待可重构加速器返回;2)程序定制可重构加速器实现过程:①程序剖析:程序剖析过程包括2个步骤:I. 确定函数热点确定函数热点是一个动态剖析过程,确定程序中占用执行时间最多的部分函数;利用剖析器对运行时的程序进行跟踪,以函数为粒度对运行时程序进行采样,然后以函数为基本单元对采样数据的统计,得出各函数的调用次数和执行时间,由执行时间从多到少进行排序,其中执行时间最多的函数,就是程序的热点函数,可以作为实现为可重构加速器的候选函数;II. 分析数据依赖数据依赖分析是一个静态分析过程,对热点函数进行数据依赖分析确定函数的并行度;如果循环迭代之间的不存在数据依赖,那么循环的不同迭代就能并行展开,从而充分利用FPGA的物理高并发性;如果热点函数通过预测评估获得性能提升,那么就实现为可重构加速器,以加速程序的执行;②软硬件划分:确定实现为可重构加速器的函数之后,实际上已经完成了划分,软硬件划分步骤主要负责定义程序与可重构加速器之间的接口和参数;由于程序调用可重构加速器需要额外代价,应该在可重构加速器中增加数据缓存,将多次调用合并使通信集中以消除多次调用的额外代价,增加每次调用的执行时间,减少程序调用可重构加速器的次数;③热点函数在FPGA上的实现:根据②中定义的程序与可重构加速器之间的接口和参数,实现可重构加速器的硬件接口,并增加缓存,支持在软件上减少可重构加速器的调用次数;通过增加缓存,将多次调用可重构加速器的输入数据通过一次调用传输到可重构加速器的缓存,减少总体的通信代价;利用可重构逻辑并行实现与热点函数相同的功能,并满足提高频率和减少执行周期的目的;提高可重构加速器的频率和减少执行周期,都能直接提高可重构加速器的性能;④修改程序调用加速器;实现步骤:最后,需要在程序中调用FPGA上的加速器:I. 在程序中可重构加速器加速的热点前增加代码,完成可重构加速器输入数据的准备;II. 通过可重构加速器软件接口调用执行可重构加速器,程序挂起,等待可重构加速器返回结果;III. 接收可重构加速器的返回结果,整理返回给程序,程序再继续执行。
地址 310027浙江省杭州市西湖区浙大路38号