CN116932226B - 一种基于Chiplet的硬件加速方法和硬件加速器 - Google Patents
一种基于Chiplet的硬件加速方法和硬件加速器 Download PDFInfo
- Publication number
- CN116932226B CN116932226B CN202311181851.6A CN202311181851A CN116932226B CN 116932226 B CN116932226 B CN 116932226B CN 202311181851 A CN202311181851 A CN 202311181851A CN 116932226 B CN116932226 B CN 116932226B
- Authority
- CN
- China
- Prior art keywords
- hardware
- chiplet
- hardware accelerator
- accelerators
- accelerator
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000001133 acceleration Effects 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 9
- 238000012360 testing method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 238000005265 energy consumption Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- BTCSSZJGUNDROE-UHFFFAOYSA-N gamma-aminobutyric acid Chemical compound NCCCC(O)=O BTCSSZJGUNDROE-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Chiplet的硬件加速方法和硬件加速器,属于集成电路领域,所述方法包括:根据基于Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量,作为当前应用的硬件加速器组;资源管理器用智能调度所述子任务到对应的硬件加速器Chiplet,以及监控子任务的处理状态和各个硬件加速器Chiplet的状态,动态调整需要的不同类型的Chiplet加速器的数量。本发明通过智能地管理和调度硬件加速器Chiplet,解决了传统硬件加速器无法满足复杂计算环境下多样化任务需求和资源利用效率低的问题,从而提高了硬件加速器的使用效率,提高了系统的灵活性和性能,以及增强了资源的共享性。
Description
技术领域
本发明属于集成电路领域,尤其涉及一种基于Chiplet的硬件加速方法和硬件加速器。
背景技术
随着计算任务的日益复杂和对性能需求的提升,传统的单一类型的硬件加速器,如图形处理单元(GPU),数字信号处理器(DSP),或应用特定集成电路(ASIC)都已无法满足现有的计算需求。每种硬件加速器都有其特定的优点和适用场景,但也存在各自的局限性。例如,GPU在处理并行计算任务时性能出色,但在处理某些序列计算任务时则显得效率不高。同样,ASIC虽然可以定制化设计以优化特定任务,但缺乏灵活性,无法适应多样化的任务需求。此外,传统的硬件加速器通常是固定分配给特定任务的,这种方式缺乏灵活性,无法根据实时的任务需求和资源状况动态调整硬件资源的分配。此外,这种方式也可能导致硬件资源的浪费,因为一些硬件加速器可能在某段时间内闲置,而其他任务可能因为缺乏足够的硬件加速器而性能受限。因此,如何灵活地管理和调度硬件加速器,以满足复杂计算环境下多样化的任务需求,同时提高硬件资源的利用效率和系统的性能,是当前计算领域亟待解决的问题。
近年来,Chiplet技术作为一种新的硬件加速器架构,受到了广泛的关注。Chiplet技术能够将多种类型的硬件加速器集成在一块硅片上,以提供更高的计算性能和更灵活的硬件资源管理。然而,如何有效地管理和调度这些Chiplet以满足多样化的任务需求和提高资源利用效率,仍然是一个挑战。
发明内容
针对上述现有技术中存在的缺陷,本发明提供一种基于Chiplet的硬件加速方法,包括:
根据基于Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量;
从硬件加速器池将确定一组Chiplet加速器作为当前应用的硬件加速器组;
资源管理器用于收集和分析当前子任务和硬件加速器Chiplet的信息,智能调度所述子任务到对应的硬件加速器Chiplet;
其中,通过智能算法调度任务到对应的硬件加速器Chiplet为基于混合和联合加速策略进行任务分割和合并,以将任务分割到多个硬件加速器Chiplet,或将多个任务合并到一个硬件加速器Chiplet;
智能调度和资源管理系统还用于监控子任务的处理状态和各个硬件加速器Chiplet的状态,动态调整需要的不同类型的Chiplet加速器的数量。
其中,所述Chiplet加速器类型包括GPU,DSP,定制ASIC,确定需要的Chiplet加速器类型和数量。
其中,基于应用中各子任务的并行性、计算密集性以及内存密集性对硬件加速器Chiplet的类型进行确定。
其中,基于当前子任务的类型和数据处理需求,和各个硬件加速器Chiplet的类型和状态,智能调度任务到对应的硬件加速器Chiplet;
所述子任务的数据处理需求为处理数据量、响应时间要求。
其中,根据Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量,包括需要对芯片内所有的硬件加速器Chiplet进行性能和能耗评估并建立性能模型;
其中,对芯片内所有的硬件加速器Chiplet进行性能和能耗评估并建立性能模型,包括:
对芯片内所有的硬件加速器Chiplet进行基准测试,基准测试通常包括运行一组预定义的任务,这些任务应覆盖所有应用的典型子任务类型;
在运行基准测试时,收集FLOPS、内存带宽和功耗的性能数据;
将FLOPSF、内存带宽B和功耗数据E进行归一化处理;
根据收集的数据为每种类型的硬件加速器建立性能模型。
其中,基于子任务的并行性需求的指标P、计算密集型需求指标K、内存密集度需求指标S确定与FLOPS和内存带宽相关的中间量,分别为计算强度C和并行强度P';
其中,,/>,
其中,C代表计算强度,P'代表并行强度。
其中,将归一化后的F、B和E与C、P'进行比较,生成一个基于欧式距离D的相似度值,并引入基于功耗E的惩罚因子,欧式距离D的计算公式为:
,
表示功耗对相似度的影响程度;
D值越大,表示任务需求与硬件加速器的性能之间的差异越大,相似度越小;
相似度similar_score的计算公式为:similar_score=D_max–D,
其中,D_max是可能的最大D值。
其中,确定应用执行中会出现的多个子任务,对于每一子任务,确定子任务的类型,再获取硬件加速器Chiplet在执行对应的任务类型时的FLOPS、内存带宽和功耗参数;
基于所有硬件加速器在执行对应任务类型时的FLOPS、内存带宽和功耗参数,确定该子任务与所有硬件加速器的相似度,将相似度最高的一个或多个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。
其中,确定的硬件加速器Chiplet的数量应当大于需求的并行处理元素的数量N。
其中,将相似度最高的2N个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。
其中,资源管理系统接收到子任务的请求后,会根据当前的资源可用性和调度策略决定如何分配资源;
如果请求的硬件加速器Chiplet可用,将硬件加速器Chiplet的资源分配给子任务并允许其运行;
否则,子任务需要等待,直到所需的资源变得可用。
其中,所述资源管理器或资源调度器中的智能算法用于从2N个硬件加速器中选择至少N个最优的硬件加速器,所述2N个硬件加速器Chiplet为该子任务类型对应的硬件加速器Chiplet。
其中,所述从2N个硬件加速器中选择至少N个硬件加速器的智能算法,包括:
步骤1:计算每个硬件加速器对当前任务的适应度分数Score,基于以下公式来计算适应度分数Score:
,
其中,performance是硬件加速器的性能,power_consumption是硬件加速器的功耗,availability是硬件加速器的可用性;data_processing_speed表示硬件加速器处理数据的速度,response_time_requirement表示任务的响应时间要求;
步骤2:将所有的硬件加速器按照它们的适应度分数进行排序;
步骤3:使用贪心算法从排序后的硬件加速器列表中选择至少N个硬件加速器。
本发明还公开了一种硬件加速器,用于执行上述基于chiplet的硬件加速方法。
本发明通过智能地选择和分配硬件加速器Chiplet,系统可以确保每个任务都能获得最适合其需求的硬件加速器,从而提高硬件加速器的使用效率。通过使用硬件加速器池和动态调整硬件加速器Chiplet的数量,系统可以根据实时的任务需求和资源状况,灵活地调整硬件加速器的分配,从而提高系统的灵活性。通过智能地调度任务到硬件加速器Chiplet,以及使用混合和联合加速策略进行任务的分割和合并,系统可以优化任务的处理效率,从而提高系统性能。通过将硬件加速器资源池化,使得多个应用可以共享同一组硬件加速器资源,大大提高了硬件资源的利用率,并降低了硬件成本。
附图说明
图1是示出根据本发明实施例的一种基于Chiplet的硬件加速方法的流程图。
具体实施方式
一种基于Chiplet的硬件加速方法和硬件加速器
在复杂的计算环境中,不同的任务可能需要不同类型和数量的硬件加速器。传统的硬件加速器往往无法灵活地满足这些多样化的需求。在传统方式中,硬件加速器往往是独立分配给各个任务的,这可能导致在一些情况下,部分硬件加速器的利用率低下,而其他一些任务又因为缺乏足够的硬件加速器而性能受限。
如图1所示,本发明公开了一种基于Chiplet的硬件加速方法,包括:
选择硬件加速器Chiplet,包括根据基于Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量,包括GPU,DSP,定制ASIC等各种类型的加速器中确定需要的Chiplet加速器类型和数量。
从硬件加速器池将确定一组Chiplet加速器作为当前应用的硬件加速器组。
资源管理器用于收集和分析当前子任务和硬件加速器Chiplet的信息,基于当前子任务的类型和数据处理需求(处理数据量、响应时间要求),和各个硬件加速器Chiplet的类型和状态,智能调度所述子任务到对应的硬件加速器Chiplet。
其中,所述智能算法调度任务到对应的硬件加速器Chiplet时为基于混合和联合加速策略进行任务分割和合并的算法,以将任务分割到多个硬件加速器Chiplet,或将多个任务合并到一个硬件加速器Chiplet。
智能调度和资源管理系统还用于监控子任务的处理状态和各个硬件加速器Chiplet的状态,动态调整需要的不同类型的Chiplet加速器的数量。
本发明通过智能地选择和分配硬件加速器Chiplet,系统可以确保每个任务都能获得最适合其需求的硬件加速器,从而提高硬件加速器的使用效率。通过使用硬件加速器池和动态调整硬件加速器Chiplet的数量,系统可以根据实时的任务需求和资源状况,灵活地调整硬件加速器的分配,从而提高系统的灵活性。通过智能地调度任务到硬件加速器Chiplet,以及使用混合和联合加速策略进行任务的分割和合并,系统可以优化任务的处理效率,从而提高系统性能。通过将硬件加速器资源池化,使得多个应用可以共享同一组硬件加速器资源,大大提高了硬件资源的利用率,并降低了硬件成本。
硬件加速器Chiplet是一种通过硬件实现的专用于执行特定任务的微芯片,硬件加速器Chiplet通常用于加速某些特定的计算密集型或数据密集型的任务,如图形渲染、数字信号处理、机器学习等。相比于通用处理器(如CPU),硬件加速器可以提供更高的性能,实现更快的处理速度。由于硬件加速器Chiplet是专用于执行特定任务的,因此它们的设计可以针对这些特定任务进行优化,从而达到更高的能效。这意味着在执行相同任务时,硬件加速器消耗的能量通常比通用处理器少。
在某一实施例中,将不同功能的硬件加速器作为不同的Chiplet,然后通过高速互连接口组合,可以实现更灵活和高效的系统设计,更容易实现规模化和模块化的设计。
在某一实施例中,选择硬件加速器Chiplet,包括对硬件加速器Chiplet的类型和数量的确定。在某一实施例中,其中,为了对硬件加速器Chiplet的类型进行确定,需要对应用需求进行详细的分析,包括应用中各子任务的算法特性(并行性、计算密集性、内存密集性)。
根据应用需求分析的结果,对GPU,DSP,定制ASIC等不同类型的硬件加速器进行比较和选择。每种类型的硬件加速器都有其特点和适用的子任务类型。定制ASIC芯片可以为TPU芯片。
在确定了硬件加速器的类型后,还需要确定每种类型的硬件加速器的数量。这依赖于应用的各子任务对硬件加速器的需求和各子任务的计算量需求。
在某一实施例中,一个应用可能需要多种类型的硬件加速器并行工作,或者多个同一类型的硬件加速器并行工作。
在某一实施例中,对应用进行详细的任务分析,识别各子任务的关键性能指标,并为每个指标进行评价。评价结果可能包括每个指标的评分,体现对硬件加速的需求。
根据应用的各子任务评价的评分结果,确定需要对哪些指标应用硬件加速器。所述指标包括并行性的指标、计算密集型的指标,内存密集型的指标。
对可用的各种硬件加速器的性能和能耗进行详细的评估,包括:
对不同类型的硬件加速器进行基准测试,收集关键性能指标(FLOPS,内存带宽、功耗),根据基准测试的结果,为每种类型的硬件加速器建立性能模型。
根据并行性的指标、计算密集型的指标,内存密集型的指标和每种类型的硬件加速器建立的性能模型,确定各子任务需要的硬件加速器的类型。
在某一实施例中,识别出关键的性能需求,包括并行性需求、计算密集型需求,和内存密集型需求,设定每个需求的指标阈值,所述指标阈值用于确定是否需要针对该性能进行硬件加速。
在某一实施例中,对应用进行子任务分析,计算所述子任务的并行性需求、计算密集型需求,和内存密集型需求的评分。
在某一实施例中,计算所述子任务的并行性需求的指标p,包括:
对程序的子任务进行分析,确定它们中哪些是可以并行化的,哪些必须顺序执行。
计算并行和顺序部分的比例:根据上一步的分析,计算出程序中并行部分(p)和顺序部分(s)的比例。这通常可以通过代码分析,或者实际的性能测量来完成。
确定并行处理元素的数量:N是需求的并行处理元素的数量,所述N可以是为Chiplet芯片设置的在确定并行性需求时的默认值。
计算Speedup:然后,使用下面的公式来计算加速比Speedup:
,
其中:
s是程序中顺序执行的部分所占的比例。
p是程序中可以并行执行的部分所占的比例。
N是并行处理元素的数量。
如果一个程序的大部分部分都可以并行化(p很大),那么这个子任务程序的并行性需求就很高。
确定并行性需求的指标P,它是并行性贡献和总的Speedup之间的比例:
,
这个指标P的值在0和1之间,越接近1,表示并行性需求越高。这是因为当P接近1时,意味着并行性贡献占据了Speedup的大部分,即任务的大部分可以并行执行,对并行处理能力的需求更高。
在某一实施例中,计算所述子任务的计算密集型的指标,包括:
确定子任务的计算操作和数据访问操作,包括:
确定计算操作:包括算术运算(加法、减法、乘法、除法)、函数调用,并计数这些计算操作的数量。例如,现代的计算机硬件通常对基本的算术运算(包括加法、减法、乘法和除法)有直接的硬件支持。加法、乘法、除法运算都被定义为一个计算操作,一个函数调用也为一个计算操作。
确定数据访问操作,包括从内存中读取数据(如变量、数组元素)和写入数据到内存的操作。每次读取或写入一个数据元素,都被计算为一个数据访问操作。
利用在计算需求分析中确定的计算操作数量和数据访问数量,计算出计算密集型需求指标:
计算密集型需求=计算操作数量/数据访问数量,
计算密集型需求越大,表示子任务越是计算密集型,在计算操作上的时间比花费在数据访问上的时间更多。
通过找到所有子任务中最高和最低的计算密集型需求,然后使用以下公式进行归一化:
计算密集型需求指标K(归一化)=(计算密集型需求-最小需求)/(最大需求-最小需求),
所有子任务的计算密集型需求指标K会在0和1之间,其中0表示最低的计算密集型需求,1表示最高的计算密集型需求。
在某一实施例中,计算所述子任务的内存密集度需求指标,包括:
对子任务确定内存访问模式和需求。包括数据访问模式,例如读和写的频率,访问的数据大小。使用以下公式计算内存密集度需求指标:
内存密集度需求=数据访问数量/计算操作数量,
其中,“数据访问数量”是指子任务中访问(读取或写入)数据的操作数量,"计算操作数量"是指子任务中进行的计算操作(例如,加法,乘法,函数调用等)的数量。这个比例越大,表示子任务越是内存密集型。
为比较不同子任务的内存密集度,需要进行归一化。通过找到所有子任务中最高和最低的内存密集度,然后使用以下公式进行归一化:
内存密集度需求指标S(归一化)=(内存密集度需求-最小需求)/(最大需求-最小需求),
子任务的内存密集度需求指标s会在0和1之间,其中0表示最低的内存密集度,1表示最高的内存密集度。
在某一实施例中,对于并行性需求、计算密集型需求,和内存密集型需求,设定每个需求的指标阈值,所述指标阈值用于确定是否需要针对该性能进行硬件加速,当计算确定的并行性需求的指标P、计算密集型需求指标K、内存密集度需求指标S中至少有一个指标超过所述指标阈值时,确定该子任务需要进行硬件加速。
在某一实施例中,对芯片内所有的硬件加速器Chiplet进行性能和能耗评估并建立性能模型,包括:
对芯片内所有的硬件加速器进行基准测试,基准测试通常包括运行一组预定义的任务,这些任务应覆盖所有应用的典型子任务类型。
在运行基准测试时,收集关键的性能指标,包括FLOPS(每秒浮点运算次数F)、内存带宽B和功耗E。
FLOPS通常可以通过硬件厂商提供的工具或库来获取。
内存带宽可以通过硬件厂商的工具来获取,或通过运行特定的内存密集型基准测试并测量其性能来估计。
功耗通过的硬件加速器中内置的功率传感器来测量。
根据收集的数据为每种类型的硬件加速器建立性能模型。
在某一实施例中,将FLOPS、内存带宽和功耗进行归一化处理,然后再进行处理。对于归一化,使用最大-最小归一化,公式如下:
X_normalized=(X-X_min)/(X_max-X_min),归一化后的值会在0和1之间。对于FLOPS(F)、内存带宽(B)和功耗(E),分别进行归一化处理。
在某一实施例中,基于P、K、S确定与FLOPS(F)和内存带宽(B)直接对标的中间量,分别为计算强度(C)和并行强度(P'):
,
,
C代表计算强度,考虑了任务的并行性和计算密集度;
P'代表并行强度,考虑了任务的并行性和内存密集度。
这两个参数可以直接与FLOPS和内存带宽对标。
将归一化后的F、B和E与C、P'进行比较,生成一个基于欧式距离D的相似度值,加入一个基于功耗E的惩罚因子,以体现功耗对相似度的负面影响。
欧式距离D的计算公式为:
,
表示功耗对相似度的影响程度。如果α的值比较大,说明功耗的影响比较大;如果α的值比较小,说明功耗的影响比较小。
D值越大,表示任务需求与硬件加速器的性能之间的差异越大,相似度越小。反之,如果D值小,表示任务需求与硬件加速器的性能匹配得更好,相似度越大。
相似度similar_score的计算公式为:
similar_score=D_max–D,
其中,D_max是可能的最大D值。这样,相似度得分值会在D值较小(也就是相似度较高)时变得较大。
在某一实施例中,将应用执行逻辑进行分析,确定应用执行中会出现的多个子任务,对于每一子任务,确定子任务的类型,再获取硬件加速器Chiplet在执行对应的任务类型时的FLOPS、内存带宽和功耗参数,基于所有硬件加速器在执行对应任务类型时的FLOPS、内存带宽和功耗参数,确定该子任务与所有硬件加速器的相似度,将相似度最高的一个或多个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。其中,确定的硬件加速器Chiplet的数量应当大于需求的并行处理元素的数量N。可选地,可以将相似度最高的2N个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。所述硬件加速器Chiplet应当为同类型的硬件加速器Chiplet,如都为基于GPU实现的硬件加速器Chiplet。
在某一实施例中,在硬件加速器池中,基于资源管理和调度系统将硬件加速器分配给特定的应用。
在硬件层面,硬件加速器,如GPU、DSP等,都有自己的硬件接口,这些接口允许软件进行控制和管理。这些接口通常由硬件制造商提供,并遵循一定的行业标准。
在软件层面,每个硬件加速器都需要一个驱动程序,这个驱动程序负责与硬件通信并控制其行为。驱动程序通常由硬件制造商提供,并提供一组API供上层软件调用。
资源管理系统负责管理和调度所有的硬件资源。例如,FreeRTOS,它们可以在硬件级别运行,并提供任务调度和资源管理等功能。
资源管理系统根据调度策略来决定如何分配硬件资源。
在具体的实现过程中,当一个应用中的某类型子任务需要使用硬件加速器时,它会通过资源管理系统提出请求。资源管理系统会根据其调度策略选择一个或多个可用的硬件加速器,并将这些硬件加速器的控制权分配给该类型的子任务。
所述子任务可以通过驱动程序的API来控制和使用这些硬件加速器。完成任务后,它需要通知资源管理系统释放这些硬件加速器,以便它们可以被其他应用使用。
在某一实施例中,芯片级别的任务调度和资源管理通常由操作系统或固件来完成。子任务会通过操作系统的接口请求必要的硬件资源,然后操作系统会根据任务的需求和资源的可用性进行调度和管理。
子任务需要在其配置或代码中定义其任务类型,资源管理系统基于任务类型获取子任务的硬件资源需求,包括对特定类型硬件加速器的类型和数量的需求。
子任务将其需求提交到操作系统或资源管理系统通过一些系统调用或API实现。
资源管理系统接收到子任务的请求后,会根据当前的资源可用性和调度策略决定如何分配资源。如果请求的资源可用,系统会将资源分配给子任务并允许其运行。否则,子任务可能需要等待,直到所需的资源变得可用。
一旦资源被分配,子任务就可以开始基于硬件加速执行任务。执行结束后,子任务需要释放它占用的资源,以便其他任务可以使用。
在某些池化技术的硬件管理系统中,例如使用了虚拟化技术的系统,硬件资源的管理可能需要在多个层次上进行。硬件虚拟化层会负责管理物理硬件资源,而在其上运行的各个虚拟机或容器则需要自己管理分配给它们的虚拟资源。
在某一实施例中,FreeRTOS是实时操作系统,主要用于嵌入式系统和物联网设备。
初始化硬件加速器,并设置好必要的参数。这通常需要调用硬件制造商提供的一些库函数。
然后,为每个任务分配一定的硬件加速器资源。这可能涉及到一些任务调度的策略。
当任务需要使用硬件加速器时,调用对应API函数。API函数封装了硬件加速器的细节,使得任务可以在不知道具体硬件实现的情况下使用硬件加速器。
当任务不再需要硬件加速器时,它需要释放硬件加速器资源。这可能涉及到一些资源管理的策略,例如资源回收或者资源预留。
在某一实施例中,硬件加速器的分配和管理通常在操作系统级别进行。
在系统级别提供一个硬件加速器的抽象。这个抽象可以是一个API,它提供了一组操作来查询、分配和释放硬件加速器资源。
然后描述任务的硬件加速器需求。这可以是任务的一部分,例如一个配置文件或一个API调用。任务描述应该包含所需的硬件加速器类型和数量。
基于资源调度器来根据任务的需求和系统的可用资源来分配硬件加速器。调度器可能需要实现一些策略,例如优先级调度、公平调度或预留。
最后,当任务被调度并获得了所需的硬件加速器资源时,它可以开始执行。任务应该能够通过硬件加速器抽象来使用硬件加速器。
在某一实施例中,在资源管理器或资源调度器中,以下是一些可能的智能调度策略:
优先级调度:在这种情况下,任务根据它们的优先级被调度。优先级高的任务会先获得硬件加速器资源。例如,如果有一个实时任务和一个非实时任务同时请求GPU资源,那么实时任务应该具有更高的优先级,因为它可能有更严格的时间限制。
公平调度:在这种情况下,调度器尝试公平地分配硬件加速器资源。例如,如果有多个任务同时请求GPU资源,那么调度器可能会尝试分配等量的GPU资源给每个任务,或者按照任务的需求比例分配资源。
预留:在这种情况下,调度器可以预留一部分硬件加速器资源,以便在需要时使用。例如,系统可能需要预留一部分GPU资源给高优先级的任务,以确保这些任务可以在需要时立即获得资源。
混合调度:以上策略混合使用。例如,调度器可能首先考虑任务的优先级,然后在优先级相同的任务中使用公平调度。同时,调度器可能还需要预留一部分资源给高优先级的任务。
在某一实施例中,所述资源管理器或资源调度器中的智能算法用于从2N个硬件加速器中选择至少N个最优的硬件加速器,所述2N个硬件加速器Chiplet为该子任务类型对应的硬件加速器Chiplet。
在某一实施例中,从2N个硬件加速器中选择至少N个最优的硬件加速器的智能算法,包括:
步骤1:计算适应度分数
首先,计算每个硬件加速器对当前任务的适应度分数。适应度分数Score基于硬件加速器的性能、功耗、可用性等。基于以下公式来计算适应度分数:
,
其中,performance是硬件加速器的性能,
power_consumption是硬件加速器的功耗,
availability是硬件加速器的可用性;
data_processing_speed表示硬件加速器处理数据的速度,以Mbps(每秒兆位)为单位。数据处理速度越快,硬件加速器处理大量数据的能力就越强;
response_time_requirement表示任务的响应时间要求。以秒(s)为单位。响应时间要求越短,任务对硬件加速器的性能和数据处理速度的需求就越高。
步骤2:将所有的硬件加速器按照它们的适应度分数进行排序。
步骤3:贪心选择,使用贪心算法从排序后的硬件加速器列表中选择至少N个硬件加速器。贪心算法在每一步都选择当前最优的硬件加速器,直到满足以下条件:
已经选择了N个硬件加速器,或者
选择更多的硬件加速器不会导致总体的适应度分数提高超出某个阈值,该阈值用于判断性能的提升是否值得继续增加硬件加速器的数量。
在某一实施例中,可用性指的是硬件加速器在预期的运行时间内可供使用的程度,包括:
故障率:硬件加速器可能会因为各种各样的原因(例如,硬件故障或软件错误)而无法使用。故障率是衡量这种情况发生频率的一种指标。
维护时间:硬件加速器可能需要定期维护,例如,升级软件或更换故障部件。在维护期间,硬件加速器可能会暂时无法使用。
负载:如果硬件加速器已经在处理其他任务,那么它可能无法立即处理新的任务。负载是衡量硬件加速器被占用的程度的一种指标。
current_load是硬件加速器的当前负载,可能用一个介于0和1之间的数值表示。例如,如果硬件加速器当前没有处理任何任务,那么current_load就是0;如果硬件加速器当前已经被完全占用,那么current_load就是1。
可用性通常表示为一个介于0和1之间的数值,其中1表示硬件加速器始终可用,0表示硬件加速器长期不可用,例如发生故障和维护时,为1,而为负载情形时则基于负载的情况确定可用性。
在某一实施例中,总体的适应度分数total_score是被选中的硬件加速器的适应度分数的总和:
total_score=sum(score_i/(i/2+1)foriinselected_accelerators),
其中,i是被选中的硬件加速器i的索引(从0开始)。这样,第一个被选中的硬件加速器的分数将全额计入总分,第二个被选中的硬件加速器的分数将计入总分的程度会减少,第三个被选中的硬件加速器的分数将进一步减少,以此类推。
衰减因因子i/2在一定程度上抑制选择过多的硬件加速器。当选择更多的硬件加速器不再使总分数明显提高时,就可以停止选择。
在某一实施例中,智能调度和资源管理系统还用于监控子任务的处理状态和各个硬件加速器Chiplet的状态,动态调整需要的不同类型的Chiplet加速器的数量,包括:
监控子任务的处理状态和硬件加速器的状态:定期(例如,每几秒或每几分钟)获取子任务的处理状态和硬件加速器的状态,包括获取每个子任务的完成进度、剩余处理时间、等待时间以及每个硬件加速器的使用率、可用性。
基于子任务的待处理情况和硬件加速器的可用性来计算每种类型的硬件加速器的需求:根据子任务的处理状态和硬件加速器的状态来计算每种类型的硬件加速器的需求。例如,如果有很多子任务正在等待处理,而当前的硬件加速器的使用率都很高,需要增加硬件加速器的数量;如果有很多硬件加速器的使用率都很低,那么需要减少硬件加速器的数量。
可以通过对监测指标设置对应的阈值来实现触发对应类型硬件加速器增加或减少的阈值。这些判断条件可以为“和”或者“或”的关系进行触发。
动态调整硬件加速器的数量:根据计算出的硬件加速器的需求,确定增加或减少硬件加速器。
在某一实施例中,由于子任务的处理状态和硬件加速器的状态可能会随着时间而变化,基于反馈机制,以便系统可以根据最新的状态信息来动态调整硬件加速器的数量。
在某一实施例中,根据应用任务的具体需求,系统会选择一组合适的硬件加速器Chiplet。这些Chiplet可能包括GPU、DSP、定制ASIC等不同类型的加速器,并且每种类型的数量也可能不同。硬件加速器Chiplet的目标是满足任务的计算需求,并提供最优的性能。
被选择的硬件加速器Chiplet将从硬件加速器池中提取出来,作为当前应用的硬件加速器组。作为加速器组的一部分,每个硬件加速器Chiplet都将准备好接收和处理任务。
资源管理器会分析当前的子任务和硬件加速器Chiplet的信息,并根据任务的类型、数据处理需求以及硬件加速器Chiplet的类型和状态,将任务智能地分配给对应的硬件加速器Chiplet。每个硬件加速器Chiplet的目标是有效地处理分配给它的任务,以满足响应时间和处理数据量的要求。
根据混合和联合加速策略,任务可能被分割到多个硬件加速器Chiplet处理,或者多个任务可能被合并到一个硬件加速器Chiplet处理。通过这种方式,硬件加速器Chiplet可以通过并行处理或者减少任务切换的开销,来优化处理效率。
系统会持续监控子任务的处理状态和硬件加速器Chiplet的状态。根据实时的需求和资源状况,系统可能会动态地增加或减少某一类型的硬件加速器Chiplet的数量。作为硬件加速器Chiplet,它们需要能够快速地启动或关闭,以适应系统的动态调整。
本发明的智能混合加速管理系统中,硬件加速器Chiplet的主要作用是提供高性能的计算能力,以满足应用任务的需求。通过智能的任务调度和资源管理,硬件加速器Chiplet可以优化任务的处理效率,提高系统的总体性能,并有效地利用硬件资源。
Claims (10)
1.一种基于Chiplet的硬件加速方法,包括:
根据基于Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量;
从硬件加速器池将确定一组Chiplet加速器作为当前应用的硬件加速器组;
资源管理器用于收集和分析当前子任务和硬件加速器Chiplet的信息,智能调度所述子任务到对应的硬件加速器Chiplet;
其中,通过智能算法调度任务到对应的硬件加速器Chiplet为基于混合和联合加速策略进行任务分割和合并,以将任务分割到多个硬件加速器Chiplet,或将多个任务合并到一个硬件加速器Chiplet;
智能调度和资源管理系统还用于监控子任务的处理状态和各个硬件加速器Chiplet的状态,动态调整需要的不同类型的Chiplet加速器的数量;
其中,识别应用中各子任务的关键性能指标,并为每个指标进行评价,评价结果包括每个指标的评分;
根据所述应用的各子任务评价的评分结果,确定需要应用硬件加速器的指标,所述指标包括并行性的指标、计算密集型的指标,内存密集型的指标;
对可用的各种硬件加速器的性能和能耗进行详细的评估,包括:
对不同类型的硬件加速器进行基准测试,收集FLOPS,内存带宽、功耗的性能指标,根据基准测试的结果,为每种类型的硬件加速器建立性能模型;
根据并行性的指标、计算密集型的指标,内存密集型的指标和每种类型的硬件加速器建立的性能模型,确定各子任务需要的硬件加速器的类型;
根据Chiplet芯片的应用中的所有子任务的需求,确定需要的Chiplet加速器类型和数量,包括需要对芯片内所有的硬件加速器Chiplet进行性能和能耗评估并建立性能模型;
其中,对芯片内所有的硬件加速器Chiplet进行性能和能耗评估并建立性能模型,包括:
对芯片内所有的硬件加速器Chiplet进行基准测试,基准测试包括运行一组预定义的任务,这些任务应覆盖所有应用的典型子任务类型;
在运行基准测试时,收集FLOPS、内存带宽和功耗的性能数据;
将FLOPSF、内存带宽B和功耗数据E进行归一化处理;
根据收集的数据为每种类型的硬件加速器建立性能模型;
基于子任务的并行性需求的指标P、计算密集型需求指标K、内存密集度需求指标S确定与FLOPS和内存带宽相关的中间量,分别为计算强度C和并行强度P';
其中, ,/>,
其中,C代表计算强度,P'代表并行强度;
将归一化后的F、B和E与C、P'进行比较,生成一个基于欧式距离D的相似度值,并引入基于功耗E的惩罚因子,欧式距离D的计算公式为:
,
表示功耗对相似度的影响程度;
D值越大,表示任务需求与硬件加速器的性能之间的差异越大,相似度越小;
相似度similar_score的计算公式为:similar_score=D_max-D,
其中,D_max是可能的最大D值。
2.如权利要求1所述的一种基于Chiplet的硬件加速方法,其特征在于,
所述Chiplet加速器类型包括GPU,DSP,定制ASIC,确定需要的Chiplet加速器类型和数量。
3.如权利要求1所述的一种基于Chiplet的硬件加速方法,其特征在于,
基于当前子任务的类型和数据处理需求,和各个硬件加速器Chiplet的类型和状态,智能调度任务到对应的硬件加速器Chiplet;
所述子任务的数据处理需求为处理数据量、响应时间要求。
4.如权利要求1所述的一种基于Chiplet的硬件加速方法,其特征在于,
确定应用执行中会出现的多个子任务,对于每一子任务,确定子任务的类型,再获取硬件加速器Chiplet在执行对应的任务类型时的FLOPS、内存带宽和功耗参数;
基于所有硬件加速器在执行对应任务类型时的FLOPS、内存带宽和功耗参数,确定该子任务与所有硬件加速器的相似度,将相似度最高的一个或多个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。
5.如权利要求4所述的一种基于Chiplet的硬件加速方法,其特征在于,
确定的硬件加速器Chiplet的数量应当大于需求的并行处理元素的数量N。
6.如权利要求5所述的一种基于Chiplet的硬件加速方法,其特征在于,
将相似度最高的2N个硬件加速器Chiplet作为该子任务对应的硬件加速器Chiplet。
7.如权利要求4所述的一种基于Chiplet的硬件加速方法,其特征在于,
资源管理系统接收到子任务的请求后,会根据当前的资源可用性和调度策略决定如何分配资源;
如果请求的硬件加速器Chiplet可用,将硬件加速器Chiplet的资源分配给子任务并允许其运行;
否则,子任务需要等待,直到所需的资源变得可用。
8.如权利要求1或6任一项所述的一种基于Chiplet的硬件加速方法,其特征在于,
所述资源管理器或资源调度器中的智能算法用于从2N个硬件加速器中选择至少N个最优的硬件加速器,所述2N个硬件加速器Chiplet为该子任务类型对应的硬件加速器Chiplet。
9.如权利要求6所述的一种基于Chiplet的硬件加速方法,其特征在于,从所述2N个硬件加速器中选择至少N个硬件加速器的智能算法,包括:
步骤1:计算每个硬件加速器对当前任务的适应度分数Score,基于以下公式来计算适应度分数Score:
,
其中,performance是硬件加速器的性能,power_consumption是硬件加速器的功耗,availability是硬件加速器的可用性;data_processing_speed表示硬件加速器处理数据的速度,response_time_requirement表示任务的响应时间要求;
步骤2:将所有的硬件加速器按照它们的适应度分数进行排序;
步骤3:使用贪心算法从排序后的硬件加速器列表中选择至少N个硬件加速器。
10.一种硬件加速器,用于执行权利要求1-9任一项所述的硬件加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311181851.6A CN116932226B (zh) | 2023-09-14 | 2023-09-14 | 一种基于Chiplet的硬件加速方法和硬件加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311181851.6A CN116932226B (zh) | 2023-09-14 | 2023-09-14 | 一种基于Chiplet的硬件加速方法和硬件加速器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116932226A CN116932226A (zh) | 2023-10-24 |
CN116932226B true CN116932226B (zh) | 2023-12-19 |
Family
ID=88375609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311181851.6A Active CN116932226B (zh) | 2023-09-14 | 2023-09-14 | 一种基于Chiplet的硬件加速方法和硬件加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932226B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122243A (zh) * | 2017-04-12 | 2017-09-01 | 杭州远算云计算有限公司 | 用于cfd仿真计算的异构集群系统及cfd计算方法 |
CN111488205A (zh) * | 2019-01-25 | 2020-08-04 | 上海登临科技有限公司 | 面向异构硬件架构的调度方法和调度系统 |
CN112732634A (zh) * | 2021-01-07 | 2021-04-30 | 重庆邮电大学 | 面向边缘计算的arm-fpga协同硬件资源局部动态重构处理方法 |
CN114217930A (zh) * | 2021-12-17 | 2022-03-22 | 中山大学 | 一种基于混合任务调度的加速器系统资源优化管理方法 |
CN116700924A (zh) * | 2023-06-09 | 2023-09-05 | 交叉信息核心技术研究院(西安)有限公司 | 一种平铺加速器资源分配方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220012095A1 (en) * | 2021-09-22 | 2022-01-13 | Intel Corporation | Metrics and security-based accelerator service rescheduling and auto-scaling using a programmable network device |
-
2023
- 2023-09-14 CN CN202311181851.6A patent/CN116932226B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122243A (zh) * | 2017-04-12 | 2017-09-01 | 杭州远算云计算有限公司 | 用于cfd仿真计算的异构集群系统及cfd计算方法 |
CN111488205A (zh) * | 2019-01-25 | 2020-08-04 | 上海登临科技有限公司 | 面向异构硬件架构的调度方法和调度系统 |
CN112732634A (zh) * | 2021-01-07 | 2021-04-30 | 重庆邮电大学 | 面向边缘计算的arm-fpga协同硬件资源局部动态重构处理方法 |
CN114217930A (zh) * | 2021-12-17 | 2022-03-22 | 中山大学 | 一种基于混合任务调度的加速器系统资源优化管理方法 |
CN116700924A (zh) * | 2023-06-09 | 2023-09-05 | 交叉信息核心技术研究院(西安)有限公司 | 一种平铺加速器资源分配方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116932226A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096349B (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN101276293B (zh) | 在逻辑分区之间平衡物理系统资源访问的方法和系统 | |
US9280393B2 (en) | Processor provisioning by a middleware processing system for a plurality of logical processor partitions | |
US9396024B2 (en) | Online computation of cache occupancy and performance | |
US20080244215A1 (en) | Workload management in virtualized data processing environment | |
US9875141B2 (en) | Managing pools of dynamic resources | |
US8375228B2 (en) | Multiple-node system power utilization management | |
WO2012028213A1 (en) | Re-scheduling workload in a hybrid computing environment | |
Basireddy et al. | AdaMD: Adaptive mapping and DVFS for energy-efficient heterogeneous multicores | |
JP2007512632A (ja) | アクティビティ情報を用いての仮想マシンの管理 | |
Lim et al. | Zico: Efficient {GPU} memory sharing for concurrent {DNN} training | |
WO2012028214A1 (en) | High-throughput computing in a hybrid computing environment | |
EP2666085A2 (en) | Load balancing in heterogeneous computing environments | |
JP2013515991A (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
US7698530B2 (en) | Workload management in virtualized data processing environment | |
Yu et al. | Collaborative heterogeneity-aware os scheduler for asymmetric multicore processors | |
Yu et al. | Colab: a collaborative multi-factor scheduler for asymmetric multicore processors | |
CN116932226B (zh) | 一种基于Chiplet的硬件加速方法和硬件加速器 | |
CN116795503A (zh) | 任务调度方法、任务调度装置、图形处理器及电子设备 | |
CN116244073A (zh) | 混合关键分区实时操作系统的资源感知型任务分配方法 | |
US7603673B2 (en) | Method and system for reducing context switch times | |
CN113626162A (zh) | 基于动态资源共享的数据中心任务混合部署方法及系统 | |
JP5243822B2 (ja) | 仮想化されたデータ処理環境におけるワークロード管理 | |
CN112506640A (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |