CN106776044A - 硬件加速方法及系统、硬件加速器执行方法及系统 - Google Patents

硬件加速方法及系统、硬件加速器执行方法及系统 Download PDF

Info

Publication number
CN106776044A
CN106776044A CN201710016921.0A CN201710016921A CN106776044A CN 106776044 A CN106776044 A CN 106776044A CN 201710016921 A CN201710016921 A CN 201710016921A CN 106776044 A CN106776044 A CN 106776044A
Authority
CN
China
Prior art keywords
hardware
calculate node
node
time
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710016921.0A
Other languages
English (en)
Other versions
CN106776044B (zh
Inventor
牛昕宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shanghai Kun Cloud Mdt Infotech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Kun Cloud Mdt Infotech Ltd filed Critical Shanghai Kun Cloud Mdt Infotech Ltd
Priority to CN201710016921.0A priority Critical patent/CN106776044B/zh
Publication of CN106776044A publication Critical patent/CN106776044A/zh
Application granted granted Critical
Publication of CN106776044B publication Critical patent/CN106776044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供硬件加速方法及系统,包括:获取节点的计算任务量及其含有的计算模块的并行计算信息,计算完成计算任务量的时间;以节点在约束条件下计算时间最短的原则,优化节点定制硬件模块;当检测到存在资源空闲的节点时,将定制硬件模块的相关配置载入其中,形成重构的硬件计算节点,该节点通过其接口将计算结果传递至其他节点来完成拓展。本发明还提供执行采用上述方法的加速器的方法及系统,包括:监控硬件加速器中各个节点的使用情况;当监测到出现资源空闲的节点时,估测拓展重构成本与重构后获得性能收益,若性能收益大于重构成本,则启动计算拓展,将目标计算节点拓展到资源空闲的节点中。本发明最大限度地利用节点计算,提供高计算性能。

Description

硬件加速方法及系统、硬件加速器执行方法及系统
技术领域
本发明涉及硬件加速领域,特别是涉及硬件加速方法及系统、硬件加速器执行方法及系统。
背景技术
逻辑可编程阵列(FPGA)是一种在生产后可编程的集成电路芯片。芯片中电路提供可编程节点,可根据用户设定重新定义电路逻辑。相比于传统处理芯片CPU,FPGA可提供针对特定问题的高度优化电路,提升百倍级别计算性能;相比于传统集成电路芯片ASIC,FPGA可提供更灵活的计算方案。
近年来,云计算等大型服务器架构发展迅速,用以支持更高性能的应用。与此同时,受限于芯片功耗,计算应用对于性能的需求增速大大超过大型计算的性能提升速率。高性能应用生产专用ASIC芯片可以提供更高的计算性能,然而专业ASIC芯片的长研发生产周期及高研发费用无法支持服务器应用的迅速迭代。
FPGA结合了软件的迅速开发迭代及硬件的高性能特性。可重构应用基于FPGA芯片内部可重构逻辑开发定制硬件,并可通过FPGA芯片重构流程编写芯片硬件逻辑。定制硬件更新可通过改写FPGA内部配置文件,无需重新流片,可同时满足大型服务器对于快速应用迭代及高性能需求。采用FPGA的大型服务器包含多个计算节点。不同于通用CPU服务器,硬件资源共享可通过软件实现,每个硬件计算节点同一时间智能支持一种定制化硬件。大型服务器中的计算应用随时占用和释放计算资源,为基于定制硬件的服务器资源共享带来了挑战。
图1展示了一个典型的计算案例:ABCD为4个硬件计算节点,其中A节点在0秒开始为空闲,B、C、D分别在2、3、4秒被应用释放,变为空闲资源。图1支持的三种应用分别是:单节点应用(OneNode)、四节点应用(FourNode)以及动态应用(Dynamic),在本计算案例中假设应用的性能随采用的计算节点线性降低。ABD每个计算节点每秒处理应用中一个计算任务,C节点含有更多的计算资源,每秒处理两个计算任务,而应用中包含8个计算任务。在该案例中,单节点应用只使用一个节点支持计算,在应用开始时(0秒),只有A节点空闲,执行8个计算任务需要8秒时间;四节点应用需要4个空闲计算节点,在0到4秒间,由于没有4个空闲节点,应用无法执行,直至第4秒开始,4个节点都空闲后,应用占用4个计算节点开始执行,并使用1.6秒时间执行完所有的计算任务,总共耗时5.6秒;动态应用使用所有的空闲资源,并随着空闲应用的增加而逐步延展,如图1所示,在0到2秒,A节点被占用,执行了两个计算任务,在2秒,应用延展到B节点,AB节点在一秒内计算了两个计算任务,在3秒,应用延展到C节点,ABC节点在1秒内完成剩余的4个计算任务(C节点每秒可以执行2个计算任务),应用执行时间为4秒,达到最小值,所有计算资源没有空闲时间。
可见,动态应用可以最大限度地利用基于FPGA的硬件计算节点,从而提供最高的计算性能。由此,本申请提出一种动态可延展硬件加速技术,有利于动态应用的开发、优化、及执行。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供硬件加速方法及系统、硬件加速器执行方法及系统,用于解决现有技术中ASIC芯片因研发生产周期长、研发费高用无法很好地支持服务器应用的迅速迭代的问题。
为实现上述目的及其他相关目的,本发明提供一种硬件加速方法,所述硬件包括多个通信连接的硬件计算节点,每个所述硬件计算节点的计算任务由至少一个计算模块完成,所述方法包括:获取每个所述硬件计算节点的计算任务量,及其含有的计算模块的并行计算信息,据以计算每个所述硬件计算节点完成各自的计算任务量的计算时间;按照每个所述硬件计算节点在各自的约束条件下计算时间最短的原则,将每个所述硬件计算节点优化成各定制硬件模块,其中,各自的所述约束条件由硬件计算节点的资源配置确定;当检测到存在资源空闲的硬件计算节点时,将一所述定制硬件模块的相关配置信息载入其中,从而形成重构的硬件计算节点,所述重构的硬件计算节点通过其接口将计算结果传递至其他硬件计算节点来完成计算拓展。
为实现上述目的及其他相关目的,本发明提供一种硬件加速器的执行方法,所述硬件加速器采用了如上任一所述的硬件加速方法,所述执行方法包括:实时监控所述硬件加速器中各个硬件计算节点的使用情况;当监测到出现资源空闲的硬件计算节点时,利用性能模型估测拓展重构成本,若所述拓展重构成本大于零,则启动计算拓展,从而将目标计算节点拓展到资源空闲的硬件计算节点。
为实现上述目的及其他相关目的,本发明提供一种硬件加速系统,所述硬件包括多个通信连接的硬件计算节点,每个所述硬件计算节点的计算任务由至少一个计算模块完成,所述系统包括:计算单元,用于获取每个所述硬件计算节点的计算任务量,及其含有的计算模块的并行计算信息,据以计算每个所述硬件计算节点完成各自的计算任务量的计算时间;优化单元,用于按照每个所述硬件计算节点在各自的约束条件下计算时间最短的原则,将每个所述硬件计算节点优化成各定制硬件模块,其中,各自的所述约束条件由硬件计算节点的资源配置确定;拓展单元,用于当检测到存在资源空闲的硬件计算节点时,将一所述定制硬件模块的相关配置信息载入其中,从而形成重构的硬件计算节点,所述重构的硬件计算节点通过其接口将计算结果传递至其他硬件计算节点来完成计算拓展。
为实现上述目的及其他相关目的,本发明提供一种硬件加速器的执行系统,所述硬件加速器包括如上所述的硬件加速系统,所述执行系统包括:状态监控模块,用于实时监控所述硬件加速器中各个硬件计算节点的使用情况;性能评估模块,用于当监测到出现资源空闲的硬件计算节点时,利用性能模型估测拓展重构成本;延展优化模块,用于在所述拓展重构成本大于零时,将目标计算节点拓展到资源空闲的硬件计算节点。
如上所述,本发明的硬件加速方法及系统、硬件加速器执行方法及系统,在提供高计算性能的基础上,可同时满足大型服务器对于快速应用迭代及高性能的需求,并具有更高的能耗比。
附图说明
图1显示为现有技术中执行计算任务的三种应用设计方式示意图。
图2显示为本发明一实施例的硬件加速方法示意图。
图3a~3c显示为本发明一实施例的硬件计算节点中的计算模块示意图。
图4a~4d显示为本发明一实施例的重构节点之间异步通信举例示意图。
图5显示为本发明一实施例的硬件加速系统模块图。
图6显示为本发明一实施例的硬件加速器的执行系统模块图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图2,为了在多用户环境下为硬件加速集群提供最优计算性能,本发明提供一种动态可延展硬件加速方法,包括:
步骤S201:硬件计算节点优化。单个计算节点的计算架构如图3a所示,将计算核心内容转换为以流水方式连接的计算模块(所有循环都复用同一计算模块)等。单个计算节点的优化目标为最大化计算节点的计算能力。对于给定计算量S*dsi,其中,dsi为节点i需处理的数据点个数,S为每个数据点所包含的数据量,最大化计算能力可表达为最小化整体计算时间T,如公式(1)所示:
其中,pi为节点i中可支持的并行计算模块,dpi为每个计算模块的内部并行度(单个计算模块的每个时钟处理的数据量),freqi为计算模块的时钟频率。
另外,单节点优化受限于:硬件节点i中的硬件资源以及并行计算模块的资源消耗,其资源限制条件可表达为公式(2)~(4):
li*pi*dpi+Ilogic≤Alogic (2)
m*dm+Imem≤Amem (3)
bwi≤BWi(4)
其中,l表示计算模块中支持单个数据所需的逻辑资源,m表示计算模块中支持单个数据所需的存储资源,dm表示计算单元中所包含数据个数,Alogic、Amem分别表示单个硬件节点中所含有的逻辑资源和存储资源,Ilogic、Imem分别表示数据接口所消耗的逻辑和存储资源,bw表示单节点内所有计算模块所需的内存带宽,BW为节点可支持的内存带宽。
逻辑资源消耗li的模型可用公式(5)表示:
li=∑op∈⊙#(op)*Lop*Bop,wlen,dr op={+,-,*,÷} (5)其中,#(op)表示单个硬件模块中(op)操作的个数,其中,op包含加减乘除四个操作,Lop为每个操作的基础逻辑资源消耗,Bop为每个操作的精度系数(精度系数基于操作类型op、数据宽度wlen,以及数据表达方式dr决定最终逻辑资源消耗)。如图3a所示,硬件模块中的操作单元彼此独立运行,总体的逻辑资源消耗可通过累加每个操作的资源消耗获得。
与之类似,存储资源通过累加所需存储片上数据获得。
带宽资源消耗bwi的模型可用公式(6)表示:
bwi=∑((mema,d,c+1-(mema,d,c+1∩mema,d,c)))*wlen*freqi (6)
如图3b~3c(i分别为1、2),每个时钟读取数据流取决于片上内存mem每个时钟所需的新数据,其中a表示数据整列序号,d表示计算模块序列,c表示时钟序列。mema,d,c+1∩mema,d,c表示下一时钟周期c+1与本时钟周期c重复的片上数据,mema,d,c+1-(mema,d,c+1∩mema,d,c)表示下一时钟周期片上内存需要更新的数据量,带宽资源可计算为每个时钟周期所需更新的数据量,乘以每个数据的宽度wlen,以及时钟频率freqi。
通过资源模型,即公式(5)和(6),以及单节点优化模型,即公式(1)~(4),对于每个节点,可建立目标应用的定制化硬件模块,并充分利用片上资源保证最大并行度。
步骤S202:单节点拓展。针对目标应用,单节点优化保证服务器中的硬件资源得到最大程度利用。为支持动态可延展应用,每个节点的优化硬件模块嵌入支持节点间通信的硬件模块及接口。每个单独硬件节点支持两个通信接口,可以与邻近硬件节点实时通信。当服务器中出现空闲资源后,动态可延展应用重构空闲资源,将优化后硬件配置下载入空闲资源,通过通信接口将重构后新节点的计算结果连接至附近节点,完成应用延展。
步骤S203:多节点通信优化。延展后的节点间通信采用异步通信模式进行数据交互。如图4a计算示例所示,目标应用包括2个循环,每个循环包含200个数据计算,其中a[99]的计算需要邻近三个数据点的数据。在同一节点X内,其在迭代次数0中a[99]的计算结果会在迭代次数1中使用。当多个硬件节点参与计算后,数据分配至不同硬件节点。如本图所示例子,若a[99]所需三个相邻数据点有一个被分配至不同硬件节点。多个硬件节点间需要相互通信用以访问计算所需数据。
如图4b所示,延展后的目标应用拥有XY两个硬件节点,其中斜线节点与黑色节点分别代表具有数据依赖关系的两个数据点。
如图4c所示,在计算节点X中,后一循环的黑色节点a[100]由前一循环的Y节点的计算结果(同样标为黑色节点)更新,箭头代表数据更新顺序。与之对应,前一循环的X节点中的数据计算a[99]结果也输出至后一循环的Y中的黑色节点相邻节点a[99]。
如图4d所示,在增加额外的计算节点(即重构的空闲计算节点)后,200个数据量按照每个节点计算能力分配。其中Y硬件节点的初始计算时间延后4个数据点。当X中的a[99]计算完成后可直接传输至Y节点,不会因为过早传输覆盖Y中计算数据。与此同时,Y中的a[100]的计算发生在迭代次数1中X节点使用a[100]之前,可在保证正确计算前提下不影响计算性能。数据量分配如公式(7)所示:
其中,wli(n)表示分配后计算节点i的计算量,pj*dpj表示节点i的计算量,表示拓展后应用所拥有的全部计算量。
相邻节点由于数据依赖性,在下一计算循环开始前需要更新数据计算结果。如图4c所示,X节点中的a[99]需要传输给Y节点,Y节点中的a[100]需要传输给X节点。异步通信方式保证数据通信操作可以与计算操作并行进行,可以支持目标应用延展至大量计算节点,保证线性性能提升。在图4c的例中,X节点中的a[99]与Y节点中的a[100]在循环次数0计算,并在循环次数1在对应数据使用前传输至Y节点中的a[99]与X节点中的a[100]。对于计算无影响,不降低计算性能。
为支持多节点异步通信,硬件节点间的通信模型如公式(8)所示:
其中,taij表示节点i传输到节点j的数据抵达时间,tcj为j节点本地的调度延时,tdi为数据抵达目标节点后数据更新延时,pj*dpj为节点j的计算速度,为j节点使用上个循环使用i传输的计算结果的时间,为j节点下个循环需要i传输的计算结果的时间,taij需要保证在两个时间之间,从而保证异步通信及时到达,不会影响计算结果。图4c显示本例完成通信调度后的计算顺序,其中,Y节点本地调度延时加大(增加一个初始计算延时),保证数据可以及时到达。
步骤S204:动态延展优化。动态延展路程如以下算法所示,其主要分为三个步骤优化延展后性能,保证最大化利用现有计算资源:
1)根据延展后计算节点计算能力计算每个节点分配数据量,及对应的数据传输抵达时间
2)根据下循环所需要的最晚传输结果时间调节本地调度tc:每个节点内的数据到达时间与该节点允许的最晚数据到达时间对比,如果到达时间大于最晚到达时间,则增加tci,以保证数据不会过晚到达。计算完每个节点的本地调度tc后,更新所有节点在增加tc后的数据到达时间。
3)根据上循环所需要的最早传输结果时间调节本地调度td:更新tc后,每个节点的数据到达时间与最早数据到达时间相比,如果小于最早到达时间,则增加tdj直至数据最终更新时间(到达时间ta+tdj)大于最早数据到达时间。
请参阅图5,与上述硬件加速方法实施例原理相似的是,本发明提供一种硬件加速系统500,主要包括:计算单元501、优化单元502、拓展单元503。由于前述实施例中的技术特征可以应用于本系统实施例,因而不再重复赘述。
计算单元501获取每个所述硬件计算节点的计算任务量,及其含有的计算模块的并行计算信息,据以计算每个所述硬件计算节点完成各自的计算任务量的计算时间;优化单元502按照每个所述硬件计算节点在各自的约束条件下计算时间最短的原则,将每个所述硬件计算节点优化成各定制硬件模块,其中,各自的所述约束条件由硬件计算节点的资源配置确定;拓展单元503当检测到存在资源空闲的硬件计算节点时,将一所述定制硬件模块的相关配置信息载入其中,从而形成重构的硬件计算节点,所述重构的硬件计算节点通过其接口将计算结果传递至其他硬件计算节点来完成计算拓展。
除此之外,本发明还提供一种基于可延展加速器技术的执行方法,通过各个软件模块组成的系统执行实现,如图6所示,包括:
1)状态监控模块601实时监控硬件加速集群资源的使用情况,当监测到存在处于空闲状态的硬件计算节点时,通知性能评估模块602。
2)性能评估模块602根据可重构应用优化,建立应用性能模型(9):
其中,rtb(r,v)表示目标应用从状态r延展至状态v(即重构后)的性能提升,用于计算由于计算资源提升带来的应用执行时间降低,即将动态重构后的应用性能收益,rc(r,v)用于估算拓展重构成本。随后,判断rtb(r,v)是否大于零,若是,则通知延展优化模块503进行动态扩展。
需要说明的是,拓展目标节点至新的计算节点包含三个步骤:
①在状态r,从现有计算节点读取计算结果;
②重构新的计算节点,转换至状态v;
③将分配的计算量wli(v)写入新的计算节点。
与之对应,拓展重构成本包含数据读写时间及重构时间,由于步骤①、②可以并行执行,两个步骤中耗时较长的步骤计入总重构成本为将分配的计算量写入新的计算节点的时间,则拓展重构成本如公式(10)所示,其中,Ci为i硬件节点的重构时间。
3)延展优化模块603启动目标应用延展,优化目标应用,读取重构的硬件计算节点的单节点优化硬件配置,并通知系统延展模块604。
4)系统延展模块604根据步骤S201-步骤S203计算调度参数,更新通信模型(公式8),配置新计算节点,完成目标应用延展。
综上所述,本发明的硬件加速方法及系统、硬件加速器执行方法及系统,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (12)

1.一种硬件加速方法,其特征在于,所述硬件包括多个通信连接的硬件计算节点,每个所述硬件计算节点的计算任务由至少一个计算模块完成,所述方法包括:
获取每个所述硬件计算节点的计算任务量,及其含有的计算模块的并行计算信息,据以计算每个所述硬件计算节点完成各自的计算任务量的计算时间;
按照每个所述硬件计算节点在各自的约束条件下计算时间最短的原则,将每个所述硬件计算节点优化成各定制硬件模块,其中,各自的所述约束条件由硬件计算节点的资源配置确定;
当检测到存在资源空闲的硬件计算节点时,将一所述定制硬件模块的相关配置信息载入其中,从而形成重构的硬件计算节点,所述重构的硬件计算节点通过其接口将计算结果传递至其他硬件计算节点来完成计算拓展。
2.根据权利要求1所述硬件加速方法,其特征在于,重构的硬件计算节点之间采用异步通信的方式进行数据交互。
3.根据权利要求2所述硬件加速方法,其特征在于,所述计算任务包括循环计算,且在重构后为每个硬件计算节点重新分配wli的计算任务量,所述异步通信的方式通过以下数学模型实现:
loc i p j * dp j + tc j < ta i &RightArrow; j + tc i + td i < loc i + wl i p j * dp j + tc j
其中,tai→j表示硬件计算节点i传输到硬件计算节点j的数据抵达时间,tcj为硬件计算节点j本地的调度延时,pj*dpj为硬件计算节点j的计算速度,为硬件计算节点j使用上个循环使用硬件计算节点i传输计算结果的时间,为硬件计算节点j下个循环需要硬件计算节点i传输的计算结果的时间。
4.根据权利要求3所述硬件加速方法,其特征在于,还包括:
根据下个循环所需要的最晚传输结果时间调节各硬件计算节点的本地调度延时;
根据上个循环所需要的最早传输结果时间调节各硬件计算节点的本地调度td。
5.根据权利要求1所述硬件加速方法,其特征在于,所述约束条件包括以下方式中的一种或多种组合:
方式1)每个时钟处理数据所消耗的逻辑资源和接口消耗的逻辑资源之和不超过所述硬件计算节点所含有的总逻辑资源;
方式2)每个时钟处理数据所消耗的存储资源和接口消耗的存储资源之和不超过所述硬件计算节点所含有的总存储资源;
方式3)所述硬件计算节点在计算过程中所消耗的带宽资源不大于预设值。
6.根据权利要求5所述的硬件加速方法,其特征在于,所述消耗的带宽资源通过以下公式获得:
∑((mema,d,c+1-(mema,d,c+1∩mema,d,c)))*wlen*freqi
其中,a表示数据整列序号,d表示计算模块序列,c表示时钟序列,mema,d,c+1∩mema,d,c表示下一时钟周期与本时钟周期重复的数据,mema,d,c+1-(mema,d,c+1∩mema,d,c)表示下一时钟周期需要更新的数据,wlen表示每个数据的宽度,freqi表示计算模块的时钟频率。
7.一种硬件加速器的执行方法,其特征在于,所述硬件加速器采用了如权利要求1至6中任一所述的硬件加速方法,所述执行方法包括:
实时监控所述硬件加速器中各个硬件计算节点的使用情况;
当监测到出现资源空闲的硬件计算节点时,利用性能模型估测拓展重构成本以及重构后获得性能收益,若所述性能收益大于拓展重构成本,则启动计算拓展,从而将目标计算节点拓展到资源空闲的硬件计算节点。
8.根据权利要求7所述的硬件加速器的执行方法,其特征在于,所述将目标计算节点拓展到资源空闲的硬件计算节点,包括:
在状态r,读取所述目标计算节点的计算结果;
形成重构的硬件计算节点,转换至状态v;
将分配的计算量wli(v)写入重构的硬件计算节点。
9.根据权利要求7所述的硬件加速器的执行方法,其特征在于,所述性能模型为:
r t b ( r , v ) = wl i ( r ) - wl i ( v ) p i * dp i * freq i - r c ( r , v )
其中,rtb(r,v)表示从状态r拓展至状态v的性能提升,表示由于计算资源的提升所带来的计算时间的降低,rc(r,v)表示估算的拓展重构成本,如果性能提升rtb(r,v)大于零,则进行动态扩展。
10.根据权利要求9所述的硬件加速器的执行方法,其特征在于,所述拓展重构成本包括:数据读写时间、及重构时间,将读取计算结果和形成重构硬件计算节点中耗时较长的步骤计入总重构成本Ci为硬件节点i的重构时间,表示将分配的计算任务量写入重构的硬件计算节点的时间,据以得到所述拓展重构成本
r c ( r , v ) = max ( C i , wl i ( r ) p i * dp i * freq i ) + wl i ( v ) p i * dp i * freq i
与拓展重构成本相减,即可得到总体重构后性能提升。
11.一种硬件加速系统,其特征在于,所述硬件包括多个通信连接的硬件计算节点,每个所述硬件计算节点的计算任务由至少一个计算模块完成,所述系统包括:
计算单元,用于获取每个所述硬件计算节点的计算任务量,及其含有的计算模块的并行计算信息,据以计算每个所述硬件计算节点完成各自的计算任务量的计算时间;
优化单元,用于按照每个所述硬件计算节点在各自的约束条件下计算时间最短的原则,将每个所述硬件计算节点优化成各定制硬件模块,其中,各自的所述约束条件由硬件计算节点的资源配置确定;
拓展单元,用于当检测到存在资源空闲的硬件计算节点时,将一所述定制硬件模块的相关配置信息载入其中,从而形成重构的硬件计算节点,所述重构的硬件计算节点通过其接口将计算结果传递至其他硬件计算节点来完成计算拓展。
12.一种硬件加速器的执行系统,其特征在于,所述硬件加速器包括如权利要求11所述的硬件加速系统,所述执行系统包括:
状态监控模块,用于实时监控所述硬件加速器中各个硬件计算节点的使用情况;
性能评估模块,用于当监测到出现资源空闲的硬件计算节点时,利用性能模型估测拓展重构成本与动态拓展重构后的性能收益;
延展优化模块,用于在所述性能收益大于拓展重构成本时,将目标计算节点拓展到资源空闲的硬件计算节点。
CN201710016921.0A 2017-01-11 2017-01-11 基于数据流的硬件加速方法及系统 Active CN106776044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710016921.0A CN106776044B (zh) 2017-01-11 2017-01-11 基于数据流的硬件加速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710016921.0A CN106776044B (zh) 2017-01-11 2017-01-11 基于数据流的硬件加速方法及系统

Publications (2)

Publication Number Publication Date
CN106776044A true CN106776044A (zh) 2017-05-31
CN106776044B CN106776044B (zh) 2020-02-04

Family

ID=58948851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710016921.0A Active CN106776044B (zh) 2017-01-11 2017-01-11 基于数据流的硬件加速方法及系统

Country Status (1)

Country Link
CN (1) CN106776044B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829512A (zh) * 2018-05-09 2018-11-16 济南浪潮高新科技投资发展有限公司 一种云中心硬件加速计算力的分配方法、系统和云中心
CN113254256A (zh) * 2020-02-10 2021-08-13 华为技术有限公司 数据重构方法、存储设备及存储介质
CN113535400A (zh) * 2021-07-19 2021-10-22 闻泰通讯股份有限公司 并行计算资源分配方法与装置、存储介质、终端设备
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360313A (zh) * 2011-09-29 2012-02-22 中国科学技术大学苏州研究院 片上异构多核计算平台的性能加速方法
US20120303698A1 (en) * 2004-03-23 2012-11-29 Salesforce.Com, Inc. Synchronous Interface to Asynchronous Processes
CN102929718A (zh) * 2012-09-17 2013-02-13 江苏九章计算机科技有限公司 一种基于任务调度的分布式gpu计算机系统
CN103905368A (zh) * 2014-03-14 2014-07-02 中国工程物理研究院电子工程研究所 一种适合于fpga实现的高速通信并行数字调制方法
CN104778079A (zh) * 2014-01-10 2015-07-15 国际商业机器公司 用于调度、执行的装置和方法以及分布式系统
CN106126319A (zh) * 2012-08-31 2016-11-16 华为技术有限公司 中央处理器资源分配方法和计算节点
US20160380875A1 (en) * 2012-10-05 2016-12-29 Google Inc. Identifying referral pages based on recorded url requests

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303698A1 (en) * 2004-03-23 2012-11-29 Salesforce.Com, Inc. Synchronous Interface to Asynchronous Processes
CN102360313A (zh) * 2011-09-29 2012-02-22 中国科学技术大学苏州研究院 片上异构多核计算平台的性能加速方法
CN106126319A (zh) * 2012-08-31 2016-11-16 华为技术有限公司 中央处理器资源分配方法和计算节点
CN102929718A (zh) * 2012-09-17 2013-02-13 江苏九章计算机科技有限公司 一种基于任务调度的分布式gpu计算机系统
US20160380875A1 (en) * 2012-10-05 2016-12-29 Google Inc. Identifying referral pages based on recorded url requests
CN104778079A (zh) * 2014-01-10 2015-07-15 国际商业机器公司 用于调度、执行的装置和方法以及分布式系统
CN103905368A (zh) * 2014-03-14 2014-07-02 中国工程物理研究院电子工程研究所 一种适合于fpga实现的高速通信并行数字调制方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829512A (zh) * 2018-05-09 2018-11-16 济南浪潮高新科技投资发展有限公司 一种云中心硬件加速计算力的分配方法、系统和云中心
CN108829512B (zh) * 2018-05-09 2021-08-24 山东浪潮科学研究院有限公司 一种云中心硬件加速计算力的分配方法、系统和云中心
CN113254256A (zh) * 2020-02-10 2021-08-13 华为技术有限公司 数据重构方法、存储设备及存储介质
CN113254256B (zh) * 2020-02-10 2023-08-22 华为技术有限公司 数据重构方法、存储设备及存储介质
CN113535400A (zh) * 2021-07-19 2021-10-22 闻泰通讯股份有限公司 并行计算资源分配方法与装置、存储介质、终端设备
WO2023000443A1 (zh) * 2021-07-19 2023-01-26 闻泰通讯股份有限公司 并行计算资源分配方法与装置、存储介质、终端设备
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质

Also Published As

Publication number Publication date
CN106776044B (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
Gai et al. Resource management in sustainable cyber-physical systems using heterogeneous cloud computing
CN110704360B (zh) 一种基于异构fpga数据流的图计算优化方法
CN106776044A (zh) 硬件加速方法及系统、硬件加速器执行方法及系统
CN107122244A (zh) 一种基于多gpu的图数据处理系统及方法
CN109447241A (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
US20190138373A1 (en) Multithreaded data flow processing within a reconfigurable fabric
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN109657794B (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
CN106997414B (zh) 一种基于反射内存网络的多学科协同仿真实现方法
US20230353458A1 (en) Neural network computing-oriented modeling method and apparatus for distributed data routing
CN111708641A (zh) 一种内存管理方法、装置、设备及计算机可读存储介质
CN114356578A (zh) 自然语言处理模型的并行计算方法、装置、设备及介质
CN111045803A (zh) 一种动态部分可重构片上系统软硬件划分与调度的最优化方法
CN115879543B (zh) 一种模型训练方法、装置、设备、介质及系统
CN115345285B (zh) 基于gpu的时序图神经网络训练方法、系统及电子设备
CN116303219A (zh) 一种网格文件的获取方法、装置及电子设备
WO2022247880A1 (zh) 一种对神经网络的算子进行融合的方法和相关产品
CN112396154A (zh) 一种基于卷积神经网络训练的并行方法
CN113572647B (zh) 一种基于强化学习的区块链-边缘计算联合系统
CN105975434B (zh) 面向异构系统的数据传输优化方法
CN109299725A (zh) 一种基于张量链并行实现高阶主特征值分解的预测系统和装置
Liu et al. A hybrid parallel genetic algorithm with dynamic migration strategy based on sunway many-core processor
Duan et al. Lightweight federated reinforcement learning for independent request scheduling in microgrids
Jin et al. Improving the speed and scalability of distributed simulations of sensor networks
Jagode et al. Custom assignment of MPI ranks for parallel multi-dimensional FFTs: Evaluation of BG/P versus BG/L

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190531

Address after: 518000 Room 11109, Flower Road Changfujin Mao Building, Fubao Street Bonded Area, Futian District, Shenzhen City, Guangdong Province

Applicant after: SHENZHEN CORERAIN TECHNOLOGIES Co.,Ltd.

Address before: Room 502, Building B, 2305 Zuchong Road, China (Shanghai) Free Trade Pilot Area, Pudong New Area, Shanghai, 201203

Applicant before: SHANGHAI KUNYUN INFORMATION TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Hardware acceleration method and system based on data stream

Effective date of registration: 20221202

Granted publication date: 20200204

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: SHENZHEN CORERAIN TECHNOLOGIES Co.,Ltd.

Registration number: Y2022980024537

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231219

Granted publication date: 20200204

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: SHENZHEN CORERAIN TECHNOLOGIES Co.,Ltd.

Registration number: Y2022980024537