硬件的资源分配方法、装置、电子设备及存储介质与流程

文档序号:26629131发布日期:2021-09-14 22:34阅读:197来源:国知局
硬件的资源分配方法、装置、电子设备及存储介质与流程

1.本发明实施例涉及芯片资源分配技术,尤其涉及一种硬件的资源分配方法、装置、电子设备及存储介质。


背景技术:

2.随着智能芯片的发展,智能芯片通常为多核芯片架构。多核芯片架构中多个单核组成群组,多个群组组成集群。当多核芯片架构进行任务部署时,硬件对象之间存在资源竞争关系,硬件对象可以为单核或者群组。当智能芯片执行计算任务时,需要为硬件对象分配资源。
3.目前在为硬件对象分配资源时,根据先验经验采用固定的硬件资源分配方式为硬件对象分配资源,资源分配不合理,资源利用率差。


技术实现要素:

4.本发明提供一种硬件的资源分配方法、装置、电子设备及存储介质,以实现为硬件对象提供更加合理的资源分配,提高资源利用率。
5.第一方面,本发明实施例提供了一种硬件的资源分配方法,包括:获取硬件对象的性能指标和性能目标,硬件对象为单核或单核组成的群组,性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标,性能目标包括任务延迟目标或执行效率目标;根据性能指标和性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求;根据性能诊断方案和资源池状态确定硬件对象的资源分配。
6.第二方面,本发明实施例还提供了一种硬件的资源分配装置,包括:性能指标获取模块,用于获取硬件对象的性能指标,硬件对象为单核或单核组成的群组,性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标;性能目标获取模块,用于获取硬件对象的性能目标,性能目标包括任务延迟目标或执行效率目标;性能诊断方案确定模块,用于根据性能指标和性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求;资源分配模块,用于根据性能诊断方案和资源池状态确定硬件对象的资源分配。
7.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如本技术实施例所示的硬件的资源分配方法。
8.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本技术实施例所示的硬件的资源分配
方法。
9.本技术实施例提供的硬件的资源分配方法,获取硬件对象的性能指标和性能目标;根据性能指标和性能目标确定性能诊断方案,根据性能诊断方案和资源池状态确定硬件对象的资源分配。目前采用固定的硬件资源分配方式进行资源分配,资源分配不合理,资源利用率差。本技术实施例提供的硬件在资源分配方法能够根据硬件对象的实时的性能指标和预期的性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求,根据性能诊断方案以及资源池状态,从资源池中确定硬件对象的资源分配,进而实现基于预期的性能目标以及硬件对象实时的性能指标动态的调整资源分配,使硬件对象得到的资源分配更加合理,提高资源利用率。
附图说明
10.图1是本发明实施例中的多核架构的层次化管理示意图;图2是本发明实施例一中的硬件的资源分配方法的流程图;图3是本发明实施例一中的预测编码自学习的架构图;图4是本发明实施例二中的硬件的资源分配装置的结构示意图;图5是本发明实施例三中的电子设备的结构示意图。
具体实施方式
11.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
12.图1为本技术实施例提供的一个多核架构的层次化管理示意图,图1仅给出了一个示例,实际应用时可以同时管理更多数量的进程或线程。如图1所示,多进程管理(multiple supervised threads)管理着三个线程,分别为线程a(thread a)、线程b(thread b)和线程c(thread c)。每个线程按照逻辑层次由高到低依次为:线程(thread)、标量线程(scalar thread)、内存线程(memory thread)、1d thread 和2d thread。线程粒度可以精确到上述不同层次,线程可以由一个单核或多个单核(core)执行。例如,线程a的粒度为2d thread,通过两个单核执行。线程b的粒度为2d thread,通过一个单核执行。线程c的粒度为1d thread,通过一个单核执行。
13.多核架构指包括多个单核的架构,多核架构可以为由多个单核组成的群组的架构,以及有群组组成的集群的架构。随着智能芯片的发展,多核架构得到广泛应用的同时,其需要承担多任务部署、高并行度计算的任务。在上述任务的执行过程中,常出现资源竞争以及资源管理复杂的问题,导致芯片的实际性能收到限制,由于动态资源管理的复杂性,导致芯片性能不易于优化。软件层次的任务描述与硬件层次的实体状态之间缺少关联,导致系统资源无法有效地被任务负载所使用。任务负载包括为执行任务的进程或线程。进程或线程需要通过硬件对象等硬件执行计算任务。
14.由于系统资源的多样性以及动态运行中的变化性,导致目标使用的软件下发的静态资源部署无法很好的使用动态变化的系统资源,系统资源利用率差。例如下发的静态资源部署存在限制的冗余,导致资源闲置浪费系统资源,或者资源池中的资源不满足静态资
源部署需求的资源量等,导致任务执行缓慢。此外,对于一些动态分配资源的方案,采用侦测硬件状态确定资源调配的方案。但是,由于缺少对于实际任务的边界描述,以及任务间的关系描述,导致上述得到的资源调配方式无法直接起到加速业务的目的。另外,基于固定先验算法的资源调度,在不同任务场景下的适应性面临着挑战。
15.实施例一图2为本发明实施例一提供的硬件的资源分配方法的流程图,本实施例可适用于硬件对象资源分配的情况,该方法可以由电子设备来执行,电子设备可以为具有智能芯片的电子设备,智能芯片中包含有运行本技术提供的硬件的资源分配方法的处理器,具体包括如下步骤:步骤110、获取硬件对象的性能指标和性能目标。
16.其中,硬件对象为单核或由单核组成的群组。性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标,性能目标包括任务延迟目标或执行效率目标。
17.多核芯片架构可以包括多个单核组成的群组。运行在单核内的任务作为被分配资源的对象,换言之,可以为单核执行的任务分配资源。多核芯片架构可以包括多个群组组成的集群,运行在群组内的任务为被分配资源的对象,换言之,也可以为群组执行的任务分配资源。可以在每个群组中可以复用上述多个单核组成一个群组的结构进行进一步的资源分配,而在多个群组组成的集群这一层级中,群组内的任务为资源分配的对象。为上述对象分配的资源可以为可调节的硬件资源,如带宽、频率、功耗预算或服务质量(qos)等。
18.本技术实施例以多个单核组成群组这个层级为例进行说明,硬件对象为单核。可以将多核芯片架构分为单核、群组、集群三个层级,群组为单核的上一层级,集群为群组的上一层级。
19.性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标。可以根据任务类型和硬件特性设置具有代表性的性能指标,性能指标用于描述单核的性能。例如,针对任务类型为计算指令的任务,将性能指标配置为计算核执行效率;针对数据供给不足,功耗过高等问题,将性能指标配置为运行阻塞的时钟计数、数据搬运引擎的执行效率、存储器冲突情况、互联总线的拥堵情况等。可以针对不同的任务类型以及硬件特性设置相应的性能指标。
20.性能目标表示预期希望硬件对象达到的性能参数。单核或群组作为硬件对象时具有各自不同的性能目标。性能目标可以划分为两类,一类为任务延迟目标,另一类为执行效率目标。对于并行的任务,如果多个任务之间存在同步约束,则多个同步约束的任务共享同一个性能目标。
21.性能指标可以通过实时检测的方式获取,性能目标可以在预先配置后存储,通过读取已存储的性能目标达到获取性能目标的目的。
22.步骤120、根据性能指标和性能目标确定性能诊断方案。
23.其中,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求。
24.可选的,可以训练用于得到性能诊断方案的具有自学习能力的网络,将性能指标和性能目标作为输入,得到性能诊断方案。该网络用于根据性能指标和性能目标分析出处
于性能指标的硬件对象若要达到性能目标,所需要的资源需求,该资源需求即性能诊断方案。
25.步骤130、根据性能诊断方案和资源池状态确定硬件对象的资源分配。
26.对于单核组成群组这一层级,根据每个单核的性能诊断方案,根据性能诊断方案中包含的资源需求以及资源池状态进行资源的统筹调度,以达到优化群组整体任务的目的,提高群组执行的任务的执行效率。
27.其中,资源池状态包括资源池中各资源的状态。资源包括独享资源和公共资源。独享资源包括独占的存储资源,独占的数据搬运引擎,计算内核等,共享资源包括硬件对象的上一层级的总线qos (路由优先级等),共享存储qos(访问优先级等),公共数据搬运引擎qos(占用优先级等),功耗预算qos(包含电压频率调节,功耗限制管理等)。
28.此外,硬件对象的上一层级(群组或集群)可以根据其所包含的下一层级(单核或群组)的性能指标来选择出有代表性的性能指标以作为更高层级进行统筹管理的性能指标依据。进而实现对不同架构规格以及软件部署方案的良好的扩展性。
29.在上述实施例的基础上,本发明提供了一种能够基于预测编码的自主学习方法,以增加上述方案对不同任务和架构的灵活性,降低对先验知识的过分依赖。该方法根据硬件对象所在层级的条件(如性能指标、性能目标等)以及硬件对象上一层级的响应来预判下一个任务周期中硬件对象可能产生的变化。该预判与后续的实际执行结果进行比对后,产生误差,该误差用于作为预测编码的学习激励,预测编码的学习目标为更加准确的预测硬件对象下一个任务周期中硬件对象可能产生的变化。
30.可见,上述预测编码的优化过程可以通过多个任务周期中的执行来完成。随着任务周期的不断增加,产生的误差越小说明预测编码所预测的下一个任务周期中硬件对象可能产生的变化越准确。进而能够根据预测编码得到的预测对任务周期内的资源分配进行作用。
31.需要说明的是,硬件对象可以在多个任务周期中执行类型相同的计算任务,也可以执行不同的计算任务。当执行相同的计算任务时,随着预测编码的优化,越来越准确的预测的下一个任务周期中硬件对象可能产生的变化,进而更加有效的对当前任务周期内的资源分配进行作用。当执行不同的计算任务时,误差会突然增大,此时可以判定执行了新类型的计算任务,通过多个任务后期后,能够使预测编码适应新的计算任务。可见,通过自主学习的方式,能够逐渐优化预测编码,无需用户依靠先验知识对不同的任务分别进行配置,进而在提高自动化的同时,提高预测编码预测的准确性。
32.预测编码的自主学习分为三个层次,由下到上,分别为第一层、第二层和第三层。
33.第一层得到的数据包括当前任务周期的硬件对象的性能指标、结合前一任务周期第二层得到的性能预测,确定的当前任务周期性能误差。其中,当前任务周期性能误差用于优化第二层中用于进行性能预测的性能的表征。
34.第二层得到的数据包括:结合前一任务周期第三层得到的性能诊断方案的反馈确定下一任务周期的性能预测、当前任务周期的性能诊断方案、结合前一任务周期第三层得到的性能诊断方案预测,确定当前任务周期性能诊断方案误差。其中,当前任务周期性能诊断方案误差用于优化第三层中用于进行性能诊断方案预测的性能诊断方案的表征。第二层的学习目标为单核性能瓶颈诊断的准确性。
35.第三层得到的数据包括:对下一任务周期的性能诊断方案的预测以及获取的资源池。以便基于资源池和当前任务周期的性能诊断方案确定当期任务周期的资源分配。第三层得到的数据还包括当前任务周期的性能诊断方案的反馈。第三层的学习目标为资源分配对性能提升的针对性和准确性。
36.图3为本技术实施例提供的预测编码自学习的架构图,为了方便说明,以硬件对象为单核为例进行示意。图3所示的架构图中包括五个功能模块,分别为位于第一层的第一模块、第二模块,位于第二层的第三模块和第四模块以及位于第三层的第五模块。
37.上述三个层次构成的预测编码自学习方式可以通过下述四个阶段实现:预测阶段、推理阶段、响应阶段和学习阶段,可以根据运算需求调整阶段的运行顺序。由于预测编码学习方式是通过多个任务周期逐步进行优化,因此当前任务周期为下一任务周期提供预测,使用上一任务周期得到的预测进行优化。
38.第一模块又称为单核性能指标模块(unit perf indicator)。第二模块又称为单核性能预测误差模块(unit perf prediction error)。单核性能指标模块用于在推理阶段得到单核性能。第二模块用于在推理阶段确定的当前任务周期的误差,当前任务周期的误差包括当前任务周期单核性能的预测误差以及当前任务周期单核性能诊断方案的预测误差。当前任务周期性能误差用于在第二层中优化用于在学习阶段进行性能预测的性能的表征。当前任务周期单核性能诊断方案的预测误差用于在第三层中用于优化用于在学习阶段进行性能诊断方案预测的性能诊断方案的表征。
39.第三模块用于进行单核性能的预测(unit perf prediction)以及得到单核性能诊断方案。第三模块用于在预测阶段进行下一任务周期的单核性能的预测(unit perf prediction)。示例性的,结合前一任务周期第三层得到的性能诊断方案的反馈(unit perf remedy response)确定下一任务周期的性能预测(unit perf prediction)。第三模块用于在推理阶段,得到当前任务周期的单核性能诊断方案(unit perf remedy)。
40.第四模块用于在推理阶段得到当前任务周期性能诊断方案误差。可选的,结合前一任务周期第三层得到的性能诊断方案预测(unit perf remedy prediction),确定当前任务周期性能诊断方案误差(unit perf remedy prediction error)。其中,当前任务周期性能诊断方案误差用于在学习阶段优化第三层中用于进行性能诊断方案预测的性能诊断方案的表征。第二层的学习目标为单核性能预测的准确性。
41.第五模块用于在预测阶段得到下一任务周期的单核性能诊断方案的预测(unit perf remedy prediction),第五模块还用于在响应阶段确定资源分配(resource allocation)。示例许诺给的,第五模块用于根据资源池和当前任务周期的性能诊断方案确定当期任务周期的资源分配。第三层得到的数据还包括当前任务周期的性能诊断方案的反馈(unit perf remedy response)。第三层的学习目标为单核性能诊断方案预测的准确性、资源分配的准确性。
42.上述实施例中步骤110可以由第一层的第一模块执行,步骤120可以由第二层的第三模块执行,步骤130可以由第三层的第五模块执行。
43.在一种实现方式中,步骤120、根据性能指标和性能目标确定性能诊断方案,可通过下述方式实施:根据当前任务周期的性能指标以及当前任务周期的性能目标,结合性能评估,确
定当前任务周期的性能。根据当前任务周期的性能,结合性能的表征,确定当前任务周期的性能诊断方案。
44.上述步骤为对步骤120的具体说明,可以由第一模块执行。假设当前周期为t,在推理阶段,根据性能指标和性能目标确定性能诊断方案。推理阶段包括两个任务,分别为:单核性能评估任务和单核性能诊断任务。
45.单核性能评估任务用于根据当前任务周期的性能指标(unit perf indicator(t))以及当前任务周期的性能目标(unit perf target(t)),结合性能评估(unit perf evaluation(t)),确定当前任务周期的性能(unit perf(t))。其中,当前任务周期的性能指标可以通过对硬件对象进行实时检测获得。当前任务周期的性能目标可以为预先配置的。在一种实现方式中,性能评估可以为一个神经网络,其输入为当前任务周期的性能指标和当前任务周期的性能目标,输出为当前任务周期的性能。
46.可选的,可以确定多个性能诊断方案,并从中选择一个性能诊断方案执行。根据所采取的性能诊断方案(perf remedy)和得到的性能诊断方案的反馈(perf remedy response),以及因此而产生的性能目标差距(perf target offset)的变化,优化神经网络。示例性的,如果采用了性能诊断方案(perf remedy) a, 并得到了相应的资源,但是性能目标差距(perf target offset)没有改善,则削弱性能诊断方案(perf remedy) a在神经网络内的相应连接。示例性的,降低前周期的性能诊断方案和当前周期的性能指标的连接强度。并加强其他没有被选择的性能诊断方案的连接强度,从而避免系统停滞在某一个对于性能目标(perf target)没有益处的性能诊断方案(perf remedy)。
47.可选的,可以通过下述公式计算当前任务周期的性能。
48.当前周期的性能可以通过当前周期的性能目标差距o(t)表示。若性能目标为数值越高越好,则可通过下述公式计算性能: o(t)=max(0, target
ꢀ‑ꢀ
pt(t))。若性能目标为数值越小越好,则可通过下述公式计算性能: o(t)=max(0, pt(t)

target)。其中,o(t)为当前性能目标差距,pt(t)为能和性能目标直接比较的性能指标。
49.单核性能诊断任务用于根据单核性能评估任务得到的当前任务周期的性能(unit perf(t)),结合性能的表征(unit perf representation(t)),确定当前任务周期的性能诊断方案(unit perf remedy(t))。其中,性能的表征,包括性能指标与可分配硬件资源的对应关系。在一种实现方式中,性能的表征可以为神经网络,其输入为当前任务周期的性能(unit perf(t)),输出为当前任务周期的性能诊断方案(unit perf remedy(t))。可以根据当前任务周期性能,以及上一任务周期得到的性能预测,确定性能预测误差,并使用性能预测误差对该神经网络进行优化。可选的, 可以通过下述公式计算当前任务周期的性能诊断方案。
[0050] r(t)=act{act{[a*p(t)
×
]}*s(t)*{o(t)
×
}
×
}其中,r(t)是当前周期的性能诊断方案,p(t)是当前周期的性能指标,s(t)是当前的硬件资源池状态,o(t)是当前的性能目标误差。act表示激活功能,又称激活函数。表示 p(t)和r(t)之间的连接强度。表示所有类型的r(t)之间的竞争,其中只有有限的r(t)可以被激活。表示 o(t)和r(t)之间的连接强度。上述连接强度指神经网络中节点间的连接强度,
“×”
表示矩阵乘,“*”表示算术乘。a表示常量参数。
[0051]
通过上述方式能够更加准确的得到当前任务周期(t)的性能诊断方案,提高性能诊断方案的准确性,进而提高资源分配的合理性。
[0052]
步骤130、根据性能诊断方案和资源池状态确定硬件对象的资源分配。
[0053]
对于单核组成群组这一层级,根据每个单核的性能诊断方案,根据性能诊断方案中包含的资源需求以及资源池状态进行资源的统筹调度,以达到优化群组整体任务的目的,提高群组执行的任务的执行效率。
[0054]
其中,资源池状态包括资源池中各资源的状态。资源包括独享资源和公共资源。独享资源包括独占的存储资源,独占的数据搬运引擎,计算内核等,共享资源包括硬件对象的上一层级的总线qos (路由优先级等),共享存储qos(访问优先级等),公共数据搬运引擎qos(占用优先级等),功耗预算qos(包含电压频率调节,功耗限制管理等)。
[0055]
此外,硬件对象的上一层级(群组或集群)可以根据其所包含的下一层级(单核或群组)的性能指标来选择出有代表性的性能指标以作为更高层级进行统筹管理的性能指标依据。进而实现对不同架构规格以及软件部署方案的良好的扩展性。
[0056]
在上述实施例的基础上,步骤130、根据性能诊断方案和资源池状态确定硬件对象的资源分配,可通过下述方式实施:根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案,结合资源分配模型,确定当前周期的资源分配。
[0057]
上述步骤可以由第五模块执行。步骤130作为响应阶段,用于根据步骤120得到的当前周期的性能诊断方案进行资源分配。响应阶段包括两个任务。
[0058]
一个任务为: 根据当前任务周期的资源池状态(resource pool status(t))以及当前任务周期的硬件对象集合包含的多个性能诊断方案(multi

unit perf remedy(t)),结合资源分配模型(resource allocation model),确定当前周期的资源分配(resource grant(t))。其中,若硬件对象为单核,则硬件对象集合为群组。若硬件对象为群组,则硬件对象集合为集群。当前任务周期的硬件对象集合包含的多个性能诊断方案可以为当前任务周期中硬件对象集合包含的全部硬件对象的性能诊断方案的集合。在一种实现方式中,资源分配模型可以为神经网络,资源分配模型的输入为当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案,资源分配模型的输出为当前周期的资源分配。
[0059]
在一个任务周期中,每个单核可以得到一单核性能解决方案。每个单核性能解决方案(unit perf remedy)具有单核目标误差(unit target offset),群组内的多个单核性能解决方案(unit perf remedy)以及单核目标误差(unit target offset),得到性能诊断方案的反馈。不同的单核可能存在具有相同解决方案的可能,根据解决方案确定多组解决方案的反馈。假设存在r个性能诊断方案,某性能诊断方案应用于u个单核,得到u个性能目标误差。对于周期t的目标单核性能诊断方案的反馈rs[r](t),r表示r个性能诊断方案中的任意一个,可以通过下述公式计算:rs[r](t)= act{a*r[r](t)*o[u](t)
×
+b}其中,r[r](t)表示任务周期t中第r个单核性能解决方案,o[u](t)表示第u个使用该单核性能解决方案的性能目标误差,表示单核性能解决方案的权重,a和b为常量参数。
[0060]
可选的,当确定性能诊断方案后,可以根据资源申请为硬件对象分配资源。
[0061]
进一步的,多个单核性能诊断方案之间可能存在资源间的竞争。此时可以通过计算竞争系数rs(t)确定将资源分配。竞争系数rs(t)可以通过下述方式计算:rs[r](t)= act{a*rs(t)
×ꢀ
+b}其中,rs(t)表示任务周期t中单核性能诊断方案的反馈,表示不同解决方案的反馈之间的竞争参数。
[0062]
上述步骤可以由第五模块执行,换言之,第五模块用于根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含多个核性能诊断方案,结合性能诊断方案的表征,确定当前任务周期的性能诊断方案的反馈。
[0063]
通过上述方式能够多个任务周期的执行过程中,对资源分配模型进行优化,进一步提高资源分配的合理性。
[0064]
另一个任务为: 根据当前任务周期的资源池状态(resource pool status(t))以及当前任务周期的硬件对象集合包含多个核性能诊断方案(multi

unit perf remedy(t)),结合性能诊断方案的表征(unit perf remedy representation(t)),确定当前任务周期的性能诊断方案的反馈(unit perf remedy response)。其中,性能诊断方案的表征可以为神经网络,其输入为当前任务周期的资源池状态和当前任务周期的硬件对象集合包含多个核性能诊断方案,其输出为当前任务周期的性能诊断方案的反馈。可以根据当前任务周期的性能诊断方案,以及上一任务周期得到的性能诊断方案预测,确定性能诊断方案预测的误差,并使用性能诊断方案预测的误差对性能诊断方案的表征的神经网络进行优化。当前任务周期的性能诊断方案的反馈包括根据各单核的性能诊断方案以及当前任务周期的资源池状态,所做出的对于各个核的实际硬件资源的分配,即当前周期的资源分配。可以将步骤130得到的当前周期的资源分配作为当前任务周期的性能诊断方案的反馈。可选的,可以通过下述公式计算当前任务周期的性能诊断方案的反馈。
[0065]
当前任务周期的性能诊断方案的反馈用于执行预测阶段的任务。预测阶段如下所示:进一步的,在步骤130、根据性能诊断方案和资源池状态确定硬件对象的资源分配之后,还包括:根据当前任务周期的性能以及当前任务周期的性能诊断方案的反馈,结合性能的表征,确定下一任务周期的性能预测。由当前任务周期的性能诊断方案以及当前任务周期的资源分配,结合性能诊断方案的表征,确定下一任务周期的性能诊断方案预测。
[0066]
第三模块用于根据当前任务周期的性能以及当前任务周期的性能诊断方案的反馈,结合性能的表征,确定下一任务周期的性能预测。第五模块用于根据当前任务周期的性能诊断方案以及当前任务周期的资源分配,结合性能诊断方案的表征,确定下一任务周期的性能诊断方案预测。
[0067]
预测阶段包括性能预测(perf prediction)任务和性能诊断方案预测(perf remedy prediction)任务。
[0068]
性能预测任务用于根据当前任务周期的性能(unit perf(t))以及当前任务周期的性能诊断方案的反馈(unit perf remedy response (t)),结合性能的表征(unit perf representation(t)),确定下一任务周期的性能预测(unit perf prediction(t+1))。可以通过下述公式计算下一任务周期的性能预测。
[0069]
=p(t

1)*(1+act(a*[rs(t

1)/r(t

1)]
ꢀ×
+b)}=p(t

1)*(1+act(a*[rs(t

1)/r(t

1)]
ꢀ×
+b)}其中,为性能指标的预测,为对性能目标的偏差的预测。p(t

1)为上一个任务周期的性能指标,o(t

1)是上一个任务周期的性能目标误差。rs(t

1)是上一个周期的性能诊断方案的反馈,r(t

1)是上一周期的性能诊断方案。表示 p(t)和r(t)之间的连接强度,r(t)是当前周期的性能诊断方案,p(t)是当前周期的性能指标。
[0070]
随着性能的表征的不断优化,得到的下一任务周期的性能预测将越来越准确,提高预测准确性。
[0071]
性能诊断方案预测任务用于根据当前任务周期的性能诊断方案(unit perf remedy(t))以及当前任务周期的资源分配(resource grant(t)),结合性能诊断方案的表征(unit perf remedy representation(t)),确定下一任务周期的性能诊断方案预测(unit perf remedy prediction(t+1))。其中,性能诊断方案的表征,包括性能诊断方案与性能诊断方案的反馈的对应关系。可以通过下述公式计算下一任务周期的性能诊断方案预测。
[0072]
=act{rs[u](t

1)/r[u](t

1)*o[u](t

1)}其中,r[u](t)’表示当前周期的性能诊断方案预测,rs[u](t

1)代表上一任务周期的对于每个单核的硬件资源分配。r[u](t

1)代表上一任务周期的每个单核的资源申请。o[u](t

1)代表上一任务周期的每个单核的性能目标差距。
[0073]
随着性能的表征的不断优化,得到的下一任务周期的性能诊断方案预测将越来越准确,提高预测准确性。
[0074]
进一步的,在预测阶段之后,包括学习阶段。可选的,在根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案之后,还包括:步骤160、获取当前任务周期的性能预测的误差(unit perf prediction error(t))和性能诊断方案预测的误差(unit perf remedy prediction error(t))。
[0075]
当前任务周期的性能预测的误差表示当前任务周期检测到的性能与上一任务周期预测的性能的差值。当前任务周期的性能诊断方案预测的误差表示当前任务周期得到的性能诊断方案与上一任务周期预测的性能诊断方案的差值。
[0076]
可选的,步骤160可通过下述方式实施:获取上一任务周期得到的当前任务周期的性能预测;根据上一个任务周期得到的性能预测和当前任务周期的性能,确定当前任务周期的性能预测的误差。
[0077]
获取上一任务周期预测的当前任务周期的性能诊断方案预测;根据上一任务周期得到的性能诊断方案预测和当前任务周期的性能诊断方案,确定当前任务周期的性能预测的误差。
[0078]
当前任务周期的性能预测的误差的计算可以由第二模块执行,换言之,第二模块用于根据当前任务周期检测到的性能与上一任务周期预测的性能的差值确定当前任务周期的性能预测的误差。
[0079]
当前任务周期的性能诊断方案预测的误差的计算可以由第四模块执行,换言之,第四模块用于根据当前任务周期得到的性能诊断方案与上一任务周期预测的性能诊断方
案的差值确定当前任务周期的性能诊断方案预测的误差。
[0080]
步骤170、根据当前任务周期的性能预测的误差,调整性能的表征。
[0081]
在学习阶段,使用当期任务周期的性能预测的误差对性能的表征的神经网络进行优化,优化后的性能的表征的神经网络,作为下一任务周期使用的性能的表征的神经网络。步骤170可以由第三模块执行,换言之,第三模块用于根据当前任务周期的性能预测的误差,调整性能的表征。
[0082]
步骤180、根据当前任务周期的性能诊断方案预测的误差,调整性能诊断方案的表征。
[0083]
在学习阶段,使用当期任务周期的性能诊断方案预测的误差对性能诊断方案的表征的神经网络进行优化,优化后的性能诊断方案的表征的神经网络,作为下一任务周期使用的性能诊断方案的表征的神经网络。步骤180可以由第五模块执行,换言之,第五模块用于根据当前任务周期的性能诊断方案预测的误差,调整性能诊断方案的表征。
[0084]
需要说明的是,示例性的,当硬件对象为单核时,单核性能的表征,表示单核性能指标与可分配硬件资源的对应关系。单核性能指标,包括下述指标中的至少一种:单核存储线程所分享到的l1数据搬运单元的带宽、单核存储线程所分配到的l1存储器资源大小、单核l1存储器的访问冲突概率、单核存储线程所分享到的公共带宽资源,如群组内的l2数据搬运单元的带宽,l2存储资源,群组内的noc带宽资源、单核所分配到的功耗预算(power budget)、单核计算线程和单核l1存储线程之间的依赖性优化、单核的多线程切换能力。
[0085]
可分配硬件资源,包括下述资源中的至少一种:l1数据搬运单元的带宽分配优先权或存储线程的执行优先权、l1存储器资源的分配权限、l1存储器的访问优先权l2数据搬运单元的带宽分配优先权或存储线程的执行优先权、l2存储器资源的分配权限、群组内的noc的路由优先权、基于群组内的功耗预算的功耗管理单元和分配优先级、线程调度器对于计算和存储线程的重排策略。
[0086]
当硬件对象为群组时,群组性能的表征,表示群组性能指标与可分配硬件资源的对应关系。群组性能指标,包括下述指标中的至少一种:l1数据搬运单元的带宽分配优先权或存储线程的执行优先权、 l1存储器资源的分配权限、l1存储器的访问优先权、l2数据搬运单元的带宽分配优先权或存储线程的执行优先权、l2存储器资源的分配权限、群组内的noc的路由优先权、基于群组内的功耗预算的功耗管理单元和分配优先级、线程调度器对于计算和存储线程的重排策略。
[0087]
可分配硬件资源,包括下述资源中的至少一种:l2数据搬运单元的带宽分配优先权或存储线程的执行优先权、 l2存储器资源的分配权限、l2存储器的访问优先权、l3数据搬运单元的带宽分配优先权或存储线程的执行优先权、l3存储器资源的分配权限、集群内的noc的路由优先权、基于集群内的功耗预算的功耗管理单元和分配优先级、群组的时钟频率调整。
[0088]
本技术实施例提供的硬件的资源分配方法,获取硬件对象的性能指标和性能目标;根据性能指标和性能目标确定性能诊断方案,根据性能诊断方案和资源池状态确定硬件对象的资源分配。目前采用固定的硬件资源分配方式进行资源分配,资源分配不合理,资源利用率差。本技术实施例提供的硬件在资源分配方法能够根据硬件对象的实时的性能指
标和预期的性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求,根据性能诊断方案以及资源池状态,从资源池中确定硬件对象的资源分配,进而实现基于预期的性能目标以及硬件对象实时的性能指标动态的调整资源分配,使硬件对象得到的资源分配更加合理,提高资源利用率。
[0089]
示例性的,针对一个神经网络的算子负载,在群组内的多核都执行相同的任务(只是数据不同),单核的性能指标显示单核在目前的资源配置下,单核中的计算线程的算力利用率为20.54%.,经诊断其性能瓶颈为公共资源带宽不足,具体为l2数据搬运单元带宽不足,且是l3存储器至l2侧的带宽不足。基于此诊断,开启l3存储器管理器的swizzle功能,使得l2数据搬运单元带宽提升至原来的1.6倍,使得单核性能目标指标提升至31.28%。
[0090]
示例性的,针对另一个神经网络的算子负载,在群组内的多核都执行相同的任务(只是数据不同),单核的性能指标显示单核在目前的资源配置下,单核性能目标指标为64.49%,经诊断其性能瓶颈为功耗预算不足。基于此诊断,通过群组内的功耗预算管理单元额外发放3瓦的功耗预算,使得单核性能目标指标提升至74.04%。
[0091]
实施例二图4为本发明实施例二提供的硬件的资源分配装置的结构示意图,本实施例可适用于硬件对象资源分配的情况,该装置可以由电子设备来执行,电子设备可以为具有智能芯片的电子设备,智能芯片中包含有运行本技术提供的硬件的资源分配方法的处理器,具体包括性能指标获取模块310、性能目标获取模块320、性能诊断方案确定模块330以及资源分配模块340。
[0092]
性能指标获取模块310,用于获取硬件对象的性能指标,硬件对象为单核或单核组成的群组,性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标;性能目标获取模块320,用于获取硬件对象的性能目标,性能目标包括任务延迟目标或执行效率目标;性能诊断方案确定模块330,用于根据性能指标和性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求;资源分配模块340,用于根据性能诊断方案和资源池状态确定硬件对象的资源分配。
[0093]
在上述实施例的基础上,性能诊断方案确定模块330用于:根据当前任务周期的性能指标以及当前任务周期的性能目标,结合性能评估,确定当前任务周期的性能;根据当前任务周期的性能,结合性能的表征,确定当前任务周期的性能诊断方案。
[0094]
在上述实施例的基础上,资源分配模块340用于:根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案,结合资源分配模型,确定当前周期的资源分配。
[0095]
在上述实施例的基础上,硬件的资源分配装置还包括性能预测模块和性能诊断方案预测模块。
[0096]
性能预测模块用于:根据当前任务周期的性能以及当前任务周期的性能诊断方案的反馈,结合性能的表征,确定下一任务周期的性能预测;
性能诊断方案预测模块用于:由当前任务周期的性能诊断方案以及当前任务周期的资源分配,结合性能诊断方案的表征,确定下一任务周期的性能诊断方案预测。
[0097]
在上述实施例的基础上,硬件的资源分配装置还包括性能诊断方案的反馈确定模块。性能诊断方案的反馈确定模块用于: 根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含多个核性能诊断方案,结合性能诊断方案的表征,确定当前任务周期的性能诊断方案的反馈。
[0098]
在上述实施例的基础上,硬件的资源分配装置还包括误差获取模块、性能表征调整模块和性能诊断方案表征调整模块。
[0099]
误差获取模块用于,获取当前任务周期的性能预测的误差和性能诊断方案预测的误差;性能表征调整模块用于,根据当前任务周期的性能预测的误差,调整性能的表征;性能诊断方案表征调整模块用于,根据当前任务周期的性能诊断方案预测的误差,调整性能诊断方案的表征。
[0100]
在上述实施例的基础上,误差获取模块用于:获取上一任务周期得到的当前任务周期的性能预测;根据上一个任务周期得到的性能预测和当前任务周期的性能,确定当前任务周期的性能预测的误差;获取上一任务周期预测的当前任务周期的性能诊断方案预测;根据上一任务周期得到的性能诊断方案预测和当前任务周期的性能诊断方案,确定当前任务周期的性能预测的误差。
[0101]
在上述实施例的基础上,性能的表征,包括性能指标与可分配硬件资源的对应关系;性能诊断方案的表征,包括性能诊断方案与性能诊断方案的反馈的对应关系;在上述实施例的基础上,硬件对象为单核或由单核组成的群组。
[0102]
本技术实施例提供的硬件的资源分配装置,性能指标获取模块310于获取硬件对象的性能指标,性能目标获取模块320获取硬件对象的性能目标;性能诊断方案确定模块330根据性能指标和性能目标确定性能诊断方案;资源分配模块340根据性能诊断方案和资源池状态确定硬件对象的资源分配。目前采用固定的硬件资源分配方式进行资源分配,资源分配不合理,资源利用率差。本技术实施例提供的硬件在资源分配方法能够根据硬件对象的实时的性能指标和预期的性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求,根据性能诊断方案以及资源池状态,从资源池中确定硬件对象的资源分配,进而实现基于预期的性能目标以及硬件对象实时的性能指标动态的调整资源分配,使硬件对象得到的资源分配更加合理,提高资源利用率。
[0103]
本发明实施例所提供的硬件的资源分配装置可执行本发明任意实施例所提供的硬件的资源分配方法,具备执行方法相应的功能模块和有益效果。
[0104]
实施例三图5为本发明实施例三提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器40、存储器41、输入装置42和输出装置43;电子设备中处理器40的数量可以是一个或多个,图5中以一个处理器40为例;电子设备中的处理器40、存储器41、输入装置42和
输出装置43可以通过总线或其他方式连接,图5中以通过总线连接为例。
[0105]
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的硬件的资源分配方法对应的程序指令/模块(例如,硬件的资源分配装置中的性能指标获取模块310、性能目标获取模块320、性能诊断方案确定模块330、资源分配模块340、性能预测模块、性能诊断方案预测模块、误差获取模块、性能表征调整模块和性能诊断方案表征调整模块)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的硬件的资源分配方法。
[0106]
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0107]
输入装置42可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
[0108]
实施例四本发明实施例四还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种硬件的资源分配方法,该方法包括:获取硬件对象的性能指标和性能目标,硬件对象为单核或单核组成的群组,性能指标为根据硬件对象实时的运行状态所得到的用于表示硬件对象性能的指标,性能目标包括任务延迟目标或执行效率目标;根据性能指标和性能目标确定性能诊断方案,性能诊断方案包括使处于性能指标的硬件对象达到性能指标达所需的资源需求;根据性能诊断方案和资源池状态确定硬件对象的资源分配。
[0109]
在上述实施例的基础上,根据性能指标和性能目标确定性能诊断方案,包括:根据当前任务周期的性能指标以及当前任务周期的性能目标,结合性能评估,确定当前任务周期的性能;根据当前任务周期的性能,结合性能的表征,确定当前任务周期的性能诊断方案。
[0110]
在上述实施例的基础上,根据性能诊断方案和资源池状态确定硬件对象的资源分配,包括:根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案,结合资源分配模型,确定当前周期的资源分配。
[0111]
在上述实施例的基础上,在根据性能诊断方案和资源池状态确定硬件对象的资源分配之后,还包括:根据当前任务周期的性能以及当前任务周期的性能诊断方案的反馈,结合性能的表征,确定下一任务周期的性能预测;由当前任务周期的性能诊断方案以及当前任务周期的资源分配,结合性能诊断方案的表征,确定下一任务周期的性能诊断方案预测。
[0112]
在上述实施例的基础上,在根据当前任务周期的性能以及当前任务周期的性能诊断方案的反馈,结合性能的表征,确定下一任务周期的性能预测之前,还包括:根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含多个核性能诊断方案,结合性能诊断方案的表征,确定当前任务周期的性能诊断方案的反馈。
[0113]
在上述实施例的基础上,在根据当前任务周期的资源池状态以及当前任务周期的硬件对象集合包含的多个性能诊断方案之后,还包括:获取当前任务周期的性能预测的误差和性能诊断方案预测的误差;根据当前任务周期的性能预测的误差,调整性能的表征;根据当前任务周期的性能诊断方案预测的误差,调整性能诊断方案的表征。
[0114]
在上述实施例的基础上,获取当前任务周期的性能预测的误差和性能诊断方案预测的误差,包括:获取上一任务周期得到的当前任务周期的性能预测;根据上一个任务周期得到的性能预测和当前任务周期的性能,确定当前任务周期的性能预测的误差;获取上一任务周期预测的当前任务周期的性能诊断方案预测;根据上一任务周期得到的性能诊断方案预测和当前任务周期的性能诊断方案,确定当前任务周期的性能预测的误差。
[0115]
在上述实施例的基础上,性能的表征,包括性能指标与可分配硬件资源的对应关系;性能诊断方案的表征,包括性能诊断方案与性能诊断方案的反馈的对应关系;在上述实施例的基础上,硬件对象为单核或由单核组成的群组。
[0116]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的硬件的资源分配方法中的相关操作。
[0117]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read

only memory, rom)、随机存取存储器(random access memory, ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0118]
值得注意的是,上述硬件的资源分配装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0119]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1