CN117349029A - 异构计算系统、能耗确定方法、装置、电子设备及介质 - Google Patents
异构计算系统、能耗确定方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117349029A CN117349029A CN202311640960.XA CN202311640960A CN117349029A CN 117349029 A CN117349029 A CN 117349029A CN 202311640960 A CN202311640960 A CN 202311640960A CN 117349029 A CN117349029 A CN 117349029A
- Authority
- CN
- China
- Prior art keywords
- task
- heterogeneous computing
- energy consumption
- power consumption
- heterogeneous
- 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.)
- Pending
Links
- 238000005265 energy consumption Methods 0.000 title claims abstract description 271
- 238000000034 method Methods 0.000 title claims abstract description 229
- 230000006854 communication Effects 0.000 claims abstract description 222
- 238000004891 communication Methods 0.000 claims abstract description 221
- 230000008569 process Effects 0.000 claims abstract description 153
- 238000004364 calculation method Methods 0.000 claims abstract description 118
- 230000003068 static effect Effects 0.000 claims abstract description 98
- 238000012545 processing Methods 0.000 claims description 80
- 230000005540 biological transmission Effects 0.000 claims description 46
- 230000015654 memory Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000012821 model calculation Methods 0.000 abstract description 2
- 238000012549 training Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 238000013473 artificial intelligence Methods 0.000 description 7
- 101150039208 KCNK3 gene Proteins 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 229910052799 carbon Inorganic materials 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000013210 evaluation model Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 229910002092 carbon dioxide Inorganic materials 0.000 description 2
- 239000001569 carbon dioxide Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003930 cognitive ability Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical group CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual 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
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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)
- Power Sources (AREA)
Abstract
本发明公开了一种异构计算系统、能耗确定方法、装置、电子设备及介质,应用于异构计算领域。其中,系统包括主控制器、至少一个异构计算单元及能耗计算器。主控制器和各异构计算单元通过目标总线相连,并通过目标总线进行通信;能耗计算器在检测到主控制器将待处理任务分配至异构计算单元,根据待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;根据任务执行时序信息,分别确定待处理任务过程执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,从而得到异构计算系统的总能耗。本发明可以解决相关技术无法精准计算异构计算系统的模型计算任务的能耗的问题,可以有效提高异构计算系统的能耗确定精度。
Description
技术领域
本发明涉及异构计算领域,特别是涉及一种异构计算系统、能耗确定方法、装置、电子设备及可读存储介质。
背景技术
随着人工智能技术的快速发展,大规模神经网络模型由于其强大的认知能力被广泛应用在各行各业,大规模模型计算任务需要大量计算资源来支持,这就会导致巨大能耗开销。为了提高大规模计算任务的执行效率,通常采用异构计算系统对大规模模型计算任务进行处理。
相关技术在确定异构计算系统对模型训练过程中的能耗开销时,采用均值法设计模型训练过程碳排放评估模型,以模型训练过程中使用的各硬件设备的平均功率以及训练时间为主要参数,确定模型训练对应的能耗数据。而这种只考虑计算设备平均功率的均值法并无法精准计算异构计算系统的模型计算任务的能耗。
鉴于此,精准计算异构计算系统的能耗,是所属领域技术人员需要解决的技术问题。
发明内容
本发明提供了一种异构计算系统、能耗确定方法、装置、电子设备及可读存储介质,能够精准计算异构计算系统的能耗。
为解决上述技术问题,本发明提供以下技术方案:
本发明一方面提供了一种异构计算系统,包括主控制器、至少一个异构计算单元及能耗计算器;
所述主控制器和各异构计算单元通过目标总线相连,并通过所述目标总线进行通信;
所述主控制器用于将接收到的待处理任务分配到至少一个异构计算单元,并接收各异构计算单元反馈的任务处理结果;各异构计算单元用于对接收到的任务进行内核计算;
所述能耗计算器用于当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
在第一种示例性的实施方式中,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
根据所述任务执行时序信息,确定所述待处理任务执行过程中的通信串行阶段和并行计算阶段;
基于通信串行阶段和并行计算阶段,计算所述待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;
其中,所述通信串行阶段和所述并行计算阶段构成所述待处理任务的任务执行全过程。
在第二种示例性的实施方式中,所述基于通信串行阶段和并行计算阶段,计算所述待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
基于所述通信串行阶段和所述并行计算阶段,确定各异构计算单元和中央处理器执行所述待处理任务过程中的动态能量消耗;
根据所述并行计算阶段及异构计算单元总数,计算执行所述待处理任务过程中通信功耗;
根据异构计算单元总数,计算各异构计算单元的静态功耗。
在第三种示例性的实施方式中,所述根据所述任务执行时序信息,确定所述待处理任务执行过程中的通信串行阶段和并行计算阶段,包括:
从所述任务执行时序信息中确定各异构计算单元执行内核计算任务开始前的串行数据传输过程,以作为通信串行阶段;
将所述任务执行时序信息中各异构计算单元执行内核计算任务的过程,作为并行计算阶段。
在第四种示例性的实施方式中,所述根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息,包括:
基于所述待处理任务按照串行方式进行数据传输,各异构计算单元按照并行方式计算所述待处理任务,根据所述待处理任务的分配情况和任务优先级确定执行所述待处理任务的任务执行时序信息。
在第五种示例性的实施方式中,所述待处理任务基于串行方式进行数据传输,包括:
对所述待处理任务的每个子任务,各子任务先通过中央处理器为其传输相应的输入数据,再利用相应的异构计算单元进行内核计算;
在各子任务的数据传输过程中,所述中央处理器基于预设顺序按照同一时间向一个异构计算单元传输对应数据的方式,与各异构计算单元进行数据传输。
在第六种示例性的实施方式中,所述待处理任务基于串行方式进行数据传输,包括:
当待处理任务的各子任务在同一时刻存在资源冲突,按照各子任务的任务编号值从小到大依次进行数据传输;
其中,各子任务的任务编号值与任务执行时间相关。
在第七种示例性的实施方式中,所述各异构计算单元基于并行方式计算所述待处理任务,包括:
在待处理任务进行内核计算过程中,各异构计算单元同一时间分别对所述待处理任务的不同子任务进行内核计算,同一个异构计算单元同一时间可分别对不同子任务进行数据传输和数据计算。
在第八种示例性的实施方式中,所述各异构计算单元同一时间分别对所述待处理任务的不同子任务进行内核计算,包括:
根据所述待处理任务的各子任务之间的优先级,确定各子任务执行顺序的依赖关系;
对于不具有任务依赖关系的第一类子任务,各异构计算单元同一时间分别对第一类子任务进行内核计算;
对于具有任务依赖关系的第二类子任务,各异构计算单元按照先后顺序依次对第二类子任务进行内核计算。
在第九种示例性的实施方式中,所述根据所述任务执行时序信息,计算执行所述待处理任务过程中的动态能量消耗,包括:
获取中央处理器和各异构计算单元的执行频率;
基于所述中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定所述中央处理器完成所有通信串行阶段对应的总动态能量消耗;
对每个并行计算阶段,根据当前并行计算阶段下的各异构计算单元完成相应任务所需的最长执行时间及其对应的执行频率,确定所有异构计算单元的异构动态能量消耗;
根据所述总动态能量消耗和每个并行计算阶段的异构动态能量消耗,计算执行所述待处理任务过程中的动态能量消耗。
在第十种示例性的实施方式中,所述基于所述中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定所述中央处理器完成所有通信串行阶段对应的总动态能量消耗,包括:
调用总动态能量消耗计算关系式,计算所述中央处理器完成所有通信串行阶段对应的总动态能量消耗;所述总动态能量消耗计算关系式为:
;
式中,E c 为总动态能量消耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间。
在第十一种示例性的实施方式中,所述根据所述任务执行时序信息,计算执行所述待处理任务过程中的动态能量消耗,包括:
调用总异构动态能量消耗计算关系式,计算所有并行计算阶段下的异构动态能量消耗;所述总异构动态能量消耗计算关系式为:
;
式中,E dt 为所有并行计算阶段下的异构动态能量消耗,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数。
在第十二种示例性的实施方式中,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
获取所述待处理任务的总执行时间;
获取目标容量的数据从中央处理器传输到第k个并行计算阶段的异构计算单元的存储器所需的单次数据传输时间;
根据并行计算阶段总数、异构计算单元总数和单次数据传输时间,确定总通信时间,并根据所述总执行时间和所述总通信时间确定目标总线的空闲时间;所述目标总线用于连接中央处理器与各异构计算单元;
根据所述总通信时间、所述目标总线处于工作状态下的功耗、所述空闲时间及所述目标总线处于空闲状态下的功耗,计算执行所述待处理任务过程中的通信功耗。
在第十三种示例性的实施方式中,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
调用通信能耗关系式计算执行所述待处理任务过程中的通信功耗,所述通信能耗关系式为:
;
式中,E b 为通信能耗,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,N为异构计算单元总数,N p 为并行计算阶段的总数,time total 为待处理任务的总执行时间,为将目标容量数据D(taski)从中央处理器传输到第k个并行计算阶段的第i个异构计算单元的存储器所需的单次数据传输时间。
在第十四种示例性的实施方式中,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
获取所述待处理任务的总执行时间;
获取各异构计算单元在待处理任务执行过程中的静态功耗;
基于各异构计算单元在待处理任务执行过程中的静态功耗保持不变的基础上,根据各异构计算单元的静态功耗、所述总执行时间和异构计算单元总数确定所述待处理任务执行过程中的静态功耗。
在第十五种示例性的实施方式中,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
调用静态功耗计算关系式,计算所述待处理任务执行过程中的静态功耗;所述静态功耗计算关系式为:
;
式中,E total 为静态功耗,N为异构计算单元总数,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
在第十六种示例性的实施方式中,所述根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗,包括:
调用系统能耗确定关系式,计算异构计算系统的能耗;所述系统能耗确定关系式为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
在第十七种示例性的实施方式中,所述能耗计算器部署于所述主控制器上。
在第十八种示例性的实施方式中,所述能耗计算器部署于任何一个或多个异构计算单元上。
本发明另一方面提供了一种能耗确定方法,包括:
当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;
根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;
根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
示例性的,所述根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗,包括:
调用系统能耗确定关系式,计算异构计算系统的能耗;所述系统能耗确定关系式为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
本发明再一方面提供了一种能耗确定装置,包括:
任务执行时序确定模块,用于当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;
功耗计算模块,用于根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
本发明还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述能耗确定方法的步骤。
本发明最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述能耗确定方法的步骤。
本发明提供的技术方案的优点在于,对于由主控制器与各异构计算单元的异构计算系统在执行计算任务过程中,将任务执行过程划分为通信阶段和计算阶段,在计算异构计算系统的功耗时不仅考虑主控制器与各异构计算单元执行任务的动态能量消耗,还考虑到主控制器与各异构计算单元频繁通信所导致的通信功耗和异构计算单元等待过程中的静态功耗,能够更加有效且准确的评估计算任务产生的整体系统能耗,能够为降低系统能耗的优化设计提供更精确的指导。
此外,本发明还针对能耗确定方法提供了相应的实现方法、装置、电子设备及可读存储介质,进一步使得所述异构计算系统更具有可行性,所述方法、装置、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚的说明本发明或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的异构计算系统的一种具体实施方式结构框架图;
图2为本发明提供的一个示例性应用场景下的待处理任务执行过程的阶段划分示意图;
图3为本发明提供的一个示例性应用场景的能耗确定框架示意图;
图4为本发明提供的一个示例性应用场景的异构计算系统框架示意图;
图5为本发明提供的一个示例性应用场景的通信计算并行流水设计的分布示意图;
图6为本发明提供的一种能耗确定方法的流程示意图;
图7为本发明提供的能耗确定装置的一种具体实施方式结构框架图;
图8为本发明提供的电子设备的一种具体实施方式结构框架图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。其中,说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及二者的任何变形,意图在于覆盖不排他的包含。术语“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
随着人工智能技术的快速发展,超大规模神经网络模型由于其强大的认知能力被应用至诸多领域中,尤其是计算机视觉领域及多项自然语言处理任务,如具有340 百万参数的BERT(Bidirectional Encoder Representation from Transformers,基于变化网络的双向编码器)、具有175 Billion(十亿)参数的GPT-3(General Pre-trainedTransformer-3,第三代通用预训练转换器)等超大规模语言模型。而可以理解的是,大模型训练和应用需要使用大量的计算资源,导致数据中心服务器大量能源消耗,如GPT-3的训练过程的电能消耗可达1287兆瓦小时,相当于产生552吨二氧化碳,而模型使用带来的能耗和二氧化碳排放是模型训练的2倍以上。
随着模型复杂度和模型参数的增加,传统计算架构已难以满足持续增长的算力需求,为了解决面向大模型计算任务的单芯片算力瓶颈问题,分布式计算技术应运而生。随着数据类型和AI(Artificial Intelligence,人工智能)计算任务的多元化,基于同构芯片的分布式体系逐渐难以满足需求,GPU(Graphics processing unit,图像处理器)、FPGA(Field Programmable Gate Array,现场可编程门阵列)、TPU(Tensor Processing Unit,谷歌的张量处理器)等AI异构计算架构逐渐兴起,与通用处理器相比,异构计算平台在计算效率上体现了强大的优势,举例来说,NVIDAP100为Intel Xeon E5-2690v4 的频率的三分之一,但并行计算能力确实 Intel Xeon E5-2690v4的上百倍。专用神经网络的推理加速芯片TPU,对比同期的CPU(Central Processing Unit,中央处理器)和GPU,平均性能可以达到CPU和GPU的15-30倍,每瓦算力是30-80倍,而当TPU中使用GDDR5(Graphics Double DataRate, version 5,第五版图形用双倍数据传输率存储器)作为内存时,其算力和每瓦算力将会进一步提升3倍以上。由此可见,异构计算系统,可以充分发挥不同异构算力的特性,能够有效解决大模型计算任务中的单算力瓶颈问题。
针对大模型的能耗开销以及计算系统的异构发展趋势,为数据中心以及异构计算系统的能源消耗优化提供理论指导,异构计算系统中的大规模模型计算任务能源消耗核算成为趋势。相关技术在计算模型训练过程中的能耗开销时,采用均值法设计模型训练过程碳排放评估模型,以模型训练过程中使用的各硬件设备的平均功率以及训练时间为主要参数。相关技术在计算模型训练过程中的能耗开销时,采用均值法设计模型训练过程碳排放评估模型,该模型不考虑用于模型训练的计算系统架构以及处理器间数据通信等信息,以模型训练过程中使用的各硬件设备的平均功率以及训练时间为主要参数,计算模型训练对应的能耗数据。现有计算产业生态体系仍以CPU为核心的服务器系统架构依然是数据中心中服务器系统架构的主流,该方法为模型训练以及大规模计算产生的能耗评估提供了一定的技术参考,具有一定的通用性。但是,对于CPU和异构加速器构成的异构计算系统中,当调用异构加速器完成加速计算时,不可避免地伴随着从不同进程单元的存储设备加载和返回数据的通信过程,这会带来额外的通信开销。在实际的应用程序中,异构加速器上往往执行多个并行任务,任务分区策略会导致CPU和异构加速器之间具有频繁的通信开销。因此,通信操作本身产生不可忽略的能量消耗,它与分布式任务的数量成正比地增加。相关技术只考虑计算设备平均功率的均值法进行能耗计算,没有考虑异构计算架构及调用异构专用处理器进行计算时所产生的数据通信能耗开销,所以其并无法正在应用于面向异构计算系统的模型计算任务能耗评估中。
鉴于此,为了提高异构计算系统的能耗评估结果的准确度,本发明将整个任务执行过程划分为通信阶段和计算阶段,在计算异构计算系统的功耗时不仅考虑主控制器与各异构计算单元执行任务的动态能量消耗,还考虑到主控制器与各异构计算单元频繁通信所导致的通信功耗和异构计算单元等待过程中的静态功耗,能够更加有效且准确的评估计算任务产生的整体系统能耗。
在介绍了本发明的技术方案后,下面详细的说明本发明的各种非限制性实施方式。为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于所属领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
首先请参见图1,图1为本实施例提供的异构计算系统在一种示例性的实施方式下的结构框架示意图,本实施例适用于由不同异构计算资源构成的异构计算平台,该异构计算平台包括主控制器和至少一个异构计算单元,主控制器可为CPU,每个异构计算单元为异构加速器,包括但并不限制于GPU、FPGA和TPU。各异构计算单元与主控制器通过目标总线相连,本实施例可包括以下内容:
异构计算系统可包括能耗计算器101、主控制器102和至少一个异构计算单元103;主控制器102和各异构计算单元103通过目标总线相连,并通过目标总线进行通信;目标总线包括但并不限制于PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)总线,主控制器所在主机的内存由主控制器和各异构计算单元共享。主控制器只允许在给定时间将数据传输到其中一个异构计算单元,因此,数据通信是串行的,各异构计算单元可以独立运行。能耗计算器101可以部署于主控制器102上,其也可以部署于任何一个或多个异构计算单元103上。作为一种实用性更好的方式,可将能耗计算器101部署至主控制器102所在的主机上。
其中,主控制器102用于将接收到的待处理任务分配到至少一个异构计算单元103,并接收各异构计算单元103反馈的任务处理结果;各异构计算单元103用于对接收到的任务进行内核计算。主控制器102接收到待处理任务之后,将待处理任务分配到至少一个异构计算单元103进行加速计算。当检测到待处理任务被分配至至少一个异构计算单元103之后,可以开始计算异构计算系统的总能耗。检测可以是自动后台设置的一监测进程,也可为主控制器发送的一触发信号。主控制器任务分配的过程例如可为:待处理任务为一任务序列Task={task1,task2,task3,…,taskn,task(n+1)…},分配的异构计算单元为N;对于任务序列中每个子任务依次分配到异构计算单元上,以task1为例对于任务task1,首先由主控制器如CPU通过目标总线如PCIe数据总线向异构计算单元1传输所需的数据,数据传输完成后,异构计算单元1开始支持内核计算过程;同时,CPU开始向异构计算单元2传输 task2所需的数据;依次进行任务分配以及通信传输过程,在taskn分配到异构计算单元N后,由于异构计算单元数量达到限制,task(n+1)再循环分配到异构计算单元1上,直到所有子任务分配完毕。
能耗计算器103用于执行存储器中存储的计算机程序时实现如下的步骤:当检测到待处理任务被分配到至少一个异构计算单元,根据待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;根据任务执行时序信息,确定执行待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据动态能量消耗、静态功耗和通信功耗确定异构计算系统的能耗。
在本实施例中,待处理任务可为任何一种需要大量计算资源的任务,包括但并不限制于任何一种基于深度学习算法的网络模型的训练及推理任务,也即网络模型计算任务。通信操作是指主控制器与各异构计算单元之间的数据传输操作,计算操作包括主控制器执行待处理任务过程中的计算操作,也包括各异构计算单元对接收到的相应待处理任务进行处理过程中的计算操作。任务执行时序信息包括异构计算系统中主控制器和各异构计算单元在执行待处理任务过程中的执行时间和相应执行时间段内的执行操作。
其中,动态能量消耗为计算机系统总体功耗的主要贡献,是功耗优化的主要目标,动态能量消耗是主控制器和各异构计算单元对待处理任务执行计算操作时的功耗,静态功耗是指各异构计算单元在等待分配任务及等待数据传输等处于不对待处理任务进行内核计算操作时所消耗的能量,通信功耗是指主控制器和各异构计算单元之间频繁的通信操作导致的功耗,是连接主控制器和各异构计算单元的目标总线考虑PCIe数据总线传输数据产生的通信功耗,可包括在执行过程中功耗和在空闲状态下功耗。在上个步骤确定了异构计算系统中主控制器和各异构计算单元在执行待处理任务过程中的执行时间和相应时间段的执行操作之后,根据动态能量消耗、各异构计算单元的静态功耗和通信功耗对应的执行时间和执行操作便可计算得到相应的功耗值,将动态能量消耗、各异构计算单元的静态功耗和通信功耗的总和作为异构计算系统执行待处理任务总共消耗的能量。
在本实施例提供的技术方案中,对于由主控制器与各异构计算单元的异构计算系统在执行计算任务过程中,将任务执行过程划分为通信阶段和计算阶段,在计算异构计算系统的功耗时不仅考虑主控制器与各异构计算单元执行任务的动态能量消耗,还考虑到主控制器与各异构计算单元频繁通信所导致的通信功耗和异构计算单元等待过程中的静态功耗,能够更加有效且准确的评估计算任务产生的整体系统能耗,能够为降低系统能耗的优化设计提供更精确的指导。
需要说明的是,本发明中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
在上述实施例中,对于如何执行步骤S101并不做限定,本实施例中给出一种简单易行且能够降低整个系统能耗的任务执行时序信息确定方式,可包括如下步骤:
基于待处理任务按照串行方式进行数据传输,各异构计算单元按照并行方式计算待处理任务,根据待处理任务的分配情况和任务优先级确定执行待处理任务的任务执行时序信息。
在本实施例中,整个待处理任务的执行过程可分为计算操作和通信操作两种类型,可分别以C和T表示,为了尽可能地减少待处理任务行过程中异构计算单元的空闲等待时间,待处理任务的计算操作和通信操作是并行流水设计。计算操作包括主控制器的计算与异构计算单元的内核计算,对于异构计算单元内核计算采用并行计算,待处理任务在分配至各异构计算单元时,需要将相应的数据下发至各异构计算单元,数据传输是按照串行方式进行,且需要主控制器将数据和任务下发至各异构计算单元之后,各异构计算单元才开始进行内核计算。换言之,对待处理任务的每个子任务,各子任务先通过中央处理器为其传输相应的输入数据,再利用相应的异构计算单元进行内核计算;在各子任务的数据传输过程中,中央处理器基于预设顺序按照同一时间向一个异构计算单元传输对应数据的方式,与各异构计算单元进行数据传输。
为了进一步提高任务执行效率,降低系统能耗,各异构计算单元的并行计算既可以包括空间上的并行计算,也可包括时间上的并行计算,换言之,在待处理任务进行内核计算过程中,各异构计算单元同一时间分别对待处理任务的不同子任务进行内核计算,同一个异构计算单元同一时间可分别对不同子任务进行数据传输和数据计算。
为了进一步提升实用性,适用于更多应用场景,在对待处理任务的并行和串行处理过程中,还需要考虑到任务优先级,任务的优先级信息可在生成任务执行时序信息之前获取。示例性的,在确定任务执行时序信息时,可根据待处理任务的各子任务之间的优先级,确定各子任务执行顺序的依赖关系;对于不具有任务依赖关系的第一类子任务,各异构计算单元同一时间分别对第一类子任务进行内核计算;对于具有任务依赖关系的第二类子任务,各异构计算单元按照先后顺序依次对第二类子任务进行内核计算。
可以理解的是,待处理任务在执行过程中,会分割为多个子任务,也即待处理任务为一个任务序列,在待处理任务在执行过程中,必然会存在不同子任务抢夺资源的场景,也即当任务序列中某一时刻存在多个资源冲突的任务时,可按照各子任务的任务编号值从小到大依次进行数据传输;其中,各子任务的任务编号值与任务执行时间相关。
举例来说,待处理任务为一任务序列Task={task1,task2,task3,…taskn},time(taski)表示任务i的执行时间,包括:任务计算时间(time(C(taski))和任务通信时间(time(T(taski))。当任务序列中某一时刻存在多个资源冲突的任务时,优先选择任务编号较小的任务执行。例如,任务task1的通信操作T(task1)和任务task2的通信操作T(task2)由于争夺同一PCIe资源而发生冲突,因此不能同时执行,根据前述的冲突仲裁方法,任务task 1的任务编号较小,故优先执行任务task 1的通信操作T(task1)。用EST(taski)表示taski任务的最早开始时间,对于给定任务序列Task={task1,task2,task3,…taskn},在不考虑软件预取机制的基础上,通过计算任务 taski的最早开始时间EST(taski)来描述构建通信-计算管道的过程。对于每个任务,其必须先由主控制器如CPU为其传输相应的输入数据,才能开始加速器上的内核计算操作,因此,EST(T (taski))<EST(C(taski));同时,目标总线如PCIe总线只能同时向一个加速器传输数据,因此CPU向不同异构计算单元上的数据传输操作是串行的,按顺序进行(EST(T(task1))<EST(T(task2))<EST(T(task3))<EST(T(task4))<…,不能重叠;根据任务依赖性,假设EST(C(task 1))<EST(C(task 4)),任务1的计算操作优先于任务4的计算操作,不同异构计算单元之间的计算部分可以重叠,也即具有空间上的并行计算,由于DMA(Direct Memory Access,直接内存访问)组件是独立于异构计算单元执行的,因此后一个数据块的传输和前一个数据块的计算也可以在同一异构计算单元内重叠,也即具有时间上的并行计算。综上,根据任务数量、异构计算单元个数以及任务的执行优先级分析,可以得到能够反映执行待处理任务的通信与计算并行流水执行情况的任务执行时序信息。
在上述实施例中,对于如何执行步骤S102并不做限定,本实施例中给出执行待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗的一种简单易行且精准的计算方式,可包括如下步骤:
根据任务执行时序信息,确定待处理任务执行过程中的通信串行阶段和并行计算阶段;基于通信串行阶段和并行计算阶段,计算待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗。
在本实施例中,待处理任务的计算操作和通信操作是并行流水设计,通过对流水分布的分析得出流水计算过程中分别用于通信任务和计算任务的信串行阶段和并行计算阶段。通信串行阶段和并行计算阶段构成待处理任务的任务执行全过程,通信串行阶段至少为一个,并行计算阶段至少为一个,换言之,如图2所示,待处理任务的整个执行过程可被划分为Ns个通信串行阶段和Np个并行计算阶段。T(taskN)表示第N个任务的通信操作C(taskN)表示第N个任务的计算操作。若待处理任务所分配的异构计算单元为N个,其中,每个通信串行阶段为N个异构计算单元执行内核计算任务开始前的串行数据传输阶段,每个并行计算阶段是指N个异构计算单元执行内核计算任务的阶段。也即从任务执行时序信息中确定各异构计算单元执行内核计算任务开始前的串行数据传输过程,以作为通信串行阶段;将任务执行时序信息中各异构计算单元执行内核计算任务的过程,作为并行计算阶段。最后通过反映计算操作与通信操作的流水并行的任务时序信息中的任务划分以及数据通信产生的能耗开销等因素,结合获取的串行并行数据信息,计算待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗。
当确定通信串行阶段和并行计算阶段之后,由于异构计算单元和中央处理器在通信串行阶段和并行计算阶段均有功耗,所以可基于通信串行阶段和并行计算阶段确定各异构计算单元和中央处理器执行待处理任务过程中的动态能量消耗。由于通信串行阶段是通信功耗的产生阶段,所以根据并行计算阶段及异构计算单元总数计算执行待处理任务过程中通信功耗;最后根据异构计算单元总数,计算各异构计算单元的静态功耗。值得注意的是,本实施例的异构计算单元总数是指S101步骤中所分配的异构计算单元的总数。
上述实施例对如何计算执行待处理任务过程中的动态能量消耗并不做任何限定,本发明还提供了一种简单、高效且精准的动态能量消耗计算方式,以本实施例的主控制器为CPU,可包括下述内容:
在上述实施例确定任务执行时序信息之后,在能耗方面,通过对任务执行时序信息中的流水分布的分析,异构计算单元上的任务划分和主控制器频率调节是影响能耗的关键因素,动态功耗与主控制器和各异构计算单元的执行频率可以近似成比例的关系,基于此,本实施例可先获取中央处理器和各异构计算单元的执行频率;基于中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定中央处理器完成所有通信串行阶段对应的总动态能量消耗;对每个并行计算阶段,根据当前并行计算阶段下的各异构计算单元完成相应任务所需的最长执行时间及其对应的执行频率,确定所有异构计算单元的异构动态能量消耗;根据总动态能量消耗和每个并行计算阶段的异构动态能量消耗,计算执行待处理任务过程中的动态能量消耗。
在本实施例中,总动态能量消耗为中央处理器在执行待处理任务的整个过程中的动态能量消耗。异构动态能量消耗为一个异构计算单元在执行待处理任务的整个过程中的动态能量消耗,所有异构计算单元的异构动态能量消耗之和与总动态能量消耗即为执行待处理任务过程中的动态能量消耗。
作为一种更加高效便捷的计算方式,可在本地预先存储总动态能量消耗计算关系式和总异构动态能量消耗计算关系式,通过调用总动态能量消耗计算关系式计算中央处理器完成所有通信串行阶段对应的总动态能量消耗;可通过调用总异构动态能量消耗计算关系式,计算所有并行计算阶段下的异构动态能量消耗,最后根据总动态能量消耗和总异构动态能量消耗的和作为执行待处理任务过程中的动态能量消耗。其中,总动态能量消耗计算关系式可表示为:
;
式中,E c 为总动态能量消耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间。
其中,总异构动态能量消耗计算关系式可表示为:
;
式中,Edt为所有并行计算阶段下的异构动态能量消耗,Np为并行计算阶段的总数,fd为异构计算单元的执行频率,Wd为异构计算单元的执行频率为fd时的功耗,μk(task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数。
上述实施例对如何计算执行待处理任务过程中的通信功耗并不做任何限定,本发明还提供了一种简单、高效且精准的通信功耗计算方式,以本实施例的主控制器为CPU,可包括下述内容:
获取待处理任务的总执行时间;获取目标容量的数据从中央处理器传输到第k个并行计算阶段的异构计算单元的存储器所需的单次数据传输时间;根据并行计算阶段总数、异构计算单元总数和单次数据传输时间,确定总通信时间,并根据总执行时间和总通信时间确定目标总线的空闲时间;根据总通信时间、目标总线处于工作状态下的功耗、空闲时间及目标总线处于空闲状态下的功耗,计算执行待处理任务过程中的通信功耗。
在本实施例中,目标总线连接中央处理器与各异构计算单元;在CPU+异构计算单元组成的异构系统中,目标总线为PCIe总线,除了动态功耗之外,CPU与多个异构计算单元之间频繁的通信操作也带来了不可忽略的通信功耗,由于总线不支持动态电压和频率缩放(DVFS)技术,因此假定数据通信操作的执行速度和功耗是恒定的。考虑到目标总线如PCIe总线作为一种特殊类型的功能单元,其在执行过程和空闲状态下均有功耗,所以通信功耗包括工作状态和空闲状态下两部分功耗。总通信时间为timeT,其可通过下述关系式计算得到: ,相应的,目标总线的空闲时间为:timetotal-timeT。
作为一种更加高效便捷的计算方式,可在本地预先存储通信能耗关系式,可通过调用通信能耗关系式计算执行待处理任务过程中的通信功耗,通信能耗关系式可表示为:
;
式中,E b 为通信能耗,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,N为异构计算单元总数,N p 为并行计算阶段的总数,time total 为待处理任务的总执行时间,为将目标容量数据D(taski)从中央处理器传输到第k个并行计算阶段的第i个异构计算单元的存储器所需的单次数据传输时间。
上述实施例对如何计算执行待处理任务过程中的静态功耗并不做任何限定,本发明还提供了一种简单、高效且精准的静态功耗计算方式,本实施例中的待处理任务在执行过程中,异构计算单元的静态功耗保持不变,静态功耗计算过程可包括下述内容:
获取待处理任务的总执行时间;获取各异构计算单元在待处理任务执行过程中的静态功耗;基于各异构计算单元在待处理任务执行过程中的静态功耗保持不变的基础上,根据各异构计算单元的静态功耗、总执行时间和异构计算单元总数确定待处理任务执行过程中的静态功耗。
作为一种更加高效便捷的计算方式,可在本地预先存储静态功耗计算关系式,可通过调用静态功耗计算关系式计算待处理任务执行过程中的静态功耗;静态功耗计算关系式可表示为:
;
式中,E total 为静态功耗,N为异构计算单元总数,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
上述实施例对如何计算异构计算系统的能耗并不做任何限定,作为一种高效且精准的计算方式,本实施例可预先存储系统能耗确定关系式,通过调用系统能耗确定关系式,计算异构计算系统的能耗;系统能耗确定关系式可表示为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
最后,基于上述本发明的技术方案,下面结合图3对本发明的技术方案涉及的一些可能的应用场景进行举例介绍,图3为本发明提供的一种能耗确定方法所适用的硬件组成框架示意图,可包括下述内容:
该硬件组成框架可以包括第一电子设备31和第二电子设备32,第一电子设备31和第二电子设备32之间通过网络33连接。第一电子设备31部署用于执行上述任意一实施例所记载的能耗确定方法的异构计算系统,异构计算系统为如图4所示的CPU+异构计算单元组成的异构计算系统,异构计算单元为GPU,异构计算单元通过PCIe总线与CPU相连,同时主机内存由异构计算单元共享,CPU只允许在给定时间将数据传输到其中一个异构计算单元,因此,数据通信是串行的,而各异构计算单元可以独立运行。在实际应用中,当CPU调用异构计算单元执行计算任务时,CPU与异构计算单元之间会产生频繁的数据通信开销,与整个系统能耗相比,数据传输操作带来的通信开销是不可忽略的,特别是那些需要在CPU和异构计算单元之间频繁交换数据的应用程序。第二电子设备32部署用于提供人机交互界面的用户端。
第一电子设备31通过下述方法步骤完成上述实施例所记载的能耗确定过程中的全部或部分步骤:
本实施例的异构计算系统配置3块GPU用于模型计算,待处理任务为模型计算任务,该模型计算任务的任务序列可为Task={task1,task2,task3,task4},也即共4个子任务,按照通信与计算并行流水规则将任务序列中的这4个子任务分配到3个GPU设备上。由于CPU到GPU的数据传输是串行的,且每个GPU在处理任务时,都需要主处理器CPU为其传输相应的输入数据,才能开始计算,最后得到并行流水如图5所示,其中,纵轴表示不同的GPU,也即设备1、设备2、设备3是指这三个GPU,横轴表示执行时间,虚线框表示CPU处理器向GPU内存传输数据的过程,实线框表示GPU执行内核函数的时间。由图可知,PCIe总线只能同时向一个GPU传输数据,因此不同行内的传输操作按顺序进行(EST(T(task1))<EST(T(task2))<EST(T(task3))<EST(T(task4)),不能重叠;同时,在执行中,GPU作为异构计算单元,计算出的数据需要由主控制器CPU提前传输到GPU。因此,EST(T(taski))<EST(C(taski))。在时空图中同一条线的内部计算部分不能重叠。根据任务依赖性,假设EST(C(task1))<EST(C(task4)),任务task1的计算操作优先于任务task4的计算操作。基于图5所示,可以将整个流水过程分为2个通信串行阶段和2个并行计算阶段,其中通信串行阶段1包括:T(task1)、T(task2)、T(task3)这三个过程,通信串行阶段2包括T(task4)这一个过程;同理,并行计算阶段1包括:C(task1)、C(task2)、C(task3) 这三个过程;并行计算阶段2包括:C(task4)这一个过程,即:Ns=2,Np=2。
若执行该待处理任务的总时间为200个小时,异构计算系统中各设备汇总的功耗和时间如表1所示:
表1 设备功耗及运行时长信息表
基于上述数据,调用下述系统能耗确定关系式计算异构计算系统的能耗:
;
异构计算系统总的能耗为:E total=200*60+250*180*3+75*120+5*80+3*15 *200=142.2+9.4+9=160.6 KWh。
基于上述本发明的技术方案,本发明实施例的应用场景之一,可以通过第二电子设备32与用户之间的交互来实现,在这一应用场景中,用户通过第二电子设备32将表1和待处理任务上传至第一电子设备31,第一电子设备31可将最终计算得到的系统能耗160.6KWh反馈至第二电子设备32。用户也可通过第二电子设备32发送任何数据处理请求、任何指令以及访问信息请求,其中,访问信息可以是通过第二电子设备32与第一电子设备31之间进行交互来进行访问第一电子设备31上的信息,或者,是用于直接访问第二电子设备32自身的信息,本实施例对此不做限定。
需要注意的是,上述应用场景仅是为了便于理解本发明的思想和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
由上可知,本实施例可以有效提高异构计算系统的能耗确定精度。
此外,本发明还针对异构计算系统给出了一种应用该类系统的能耗计算方法,请参见图6,图6为本实施例提供的一种能耗确定方法的流程示意图,本实施例可包括以下内容:
S601:当检测到待处理任务被分配到至少一个异构计算单元,根据待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息。
S602:根据任务执行时序信息,确定执行待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,并根据动态能量消耗、静态功耗和通信功耗确定异构计算系统的能耗。
本实施例的各方法步骤可参阅上述实施例所记载的相应方法步骤的描述,此处,便不再赘述。
由上可知,本实施例可以有效提高异构计算系统的能耗确定精度。
本发明还针对能耗确定方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明提供的能耗确定装置进行介绍,该装置用以实现本发明提供的能耗确定方法,在本实施例中,能耗确定装置可以包括或被分割成一个或多个程序模块,该一个或多个程序模块被存储在存储介质中,并由一个或多个处理器所执行,已完成实施例一公开的能耗确定方法。本实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述能耗确定装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能,下文描述的能耗确定装置与上文描述的能耗确定方法可相互对应参照。
基于功能模块的角度,参见图7,图7为本实施例提供的能耗确定装置在一种具体实施方式下的结构图,该装置可包括:
任务执行时序确定模块701,用于当检测到待处理任务被分配到至少一个异构计算单元,根据待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息。
功耗计算模块702,用于根据任务执行时序信息,确定执行待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据动态能量消耗、静态功耗和通信功耗确定异构计算系统的能耗。
示例性的,在本实施例的一些实施方式中,上述功耗计算模块702还可用于:
根据任务执行时序信息,确定待处理任务执行过程中的通信串行阶段和并行计算阶段;
基于通信串行阶段和并行计算阶段,计算待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;
其中,通信串行阶段和并行计算阶段构成待处理任务的任务执行全过程。
作为上述实施例的一种示例性的实施方式,上述功耗计算模块702还可用于:
基于通信串行阶段和并行计算阶段,确定各异构计算单元和中央处理器执行待处理任务过程中的动态能量消耗;
根据并行计算阶段及异构计算单元总数,计算执行待处理任务过程中通信功耗;
根据异构计算单元总数,计算各异构计算单元的静态功耗。
作为上述实施例的另一种示例性的实施方式,上述功耗计算模块702还可用于:
从任务执行时序信息中确定各异构计算单元执行内核计算任务开始前的串行数据传输过程,以作为通信串行阶段;
将任务执行时序信息中各异构计算单元执行内核计算任务的过程,作为并行计算阶段。
示例性的,在本实施例的另一些实施方式中,上述任务执行时序确定模块701还可用于:
基于待处理任务按照串行方式进行数据传输,各异构计算单元按照并行方式计算待处理任务,根据待处理任务的分配情况和任务优先级确定执行待处理任务的任务执行时序信息。
作为上述实施例的一种示例性的实施方式,上述任务执行时序确定模块701还可用于:
对待处理任务的每个子任务,各子任务先通过中央处理器为其传输相应的输入数据,再利用相应的异构计算单元进行内核计算;
在各子任务的数据传输过程中,中央处理器基于预设顺序按照同一时间向一个异构计算单元传输对应数据的方式,与各异构计算单元进行数据传输。
作为上述实施例的另一种示例性的实施方式,上述任务执行时序确定模块701还可用于:
当待处理任务的各子任务在同一时刻存在资源冲突,按照各子任务的任务编号值从小到大依次进行数据传输;
其中,各子任务的任务编号值与任务执行时间相关。
作为上述实施例的再一种示例性的实施方式,上述任务执行时序确定模块701还可用于:
在待处理任务进行内核计算过程中,各异构计算单元同一时间分别对待处理任务的不同子任务进行内核计算,同一个异构计算单元同一时间可分别对不同子任务进行数据传输和数据计算。
作为上述实施例的再一种示例性的实施方式,上述任务执行时序确定模块701还可用于:
根据待处理任务的各子任务之间的优先级,确定各子任务执行顺序的依赖关系;
对于不具有任务依赖关系的第一类子任务,各异构计算单元同一时间分别对第一类子任务进行内核计算;
对于具有任务依赖关系的第二类子任务,各异构计算单元按照先后顺序依次对第二类子任务进行内核计算。
示例性的,在本实施例的再一些实施方式中,上述功耗计算模块702还可用于:
获取中央处理器和各异构计算单元的执行频率;
基于中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定中央处理器完成所有通信串行阶段对应的总动态能量消耗;
对每个并行计算阶段,根据当前并行计算阶段下的各异构计算单元完成相应任务所需的最长执行时间及其对应的执行频率,确定所有异构计算单元的异构动态能量消耗;
根据总动态能量消耗和每个并行计算阶段的异构动态能量消耗,计算执行待处理任务过程中的动态能量消耗。
作为上述实施例的一种示例性的实施方式,上述功耗计算模块702还可用于:
调用总动态能量消耗计算关系式,计算中央处理器完成所有通信串行阶段对应的总动态能量消耗;总动态能量消耗计算关系式为:
;
式中,E c 为总动态能量消耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间。
作为上述实施例的另一种示例性的实施方式,上述功耗计算模块702还可用于:
调用总异构动态能量消耗计算关系式,计算所有并行计算阶段下的异构动态能量消耗;总异构动态能量消耗计算关系式为:
;
式中,E dt 为所有并行计算阶段下的异构动态能量消耗,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数。
示例性的,在本实施例的再一些实施方式中,上述功耗计算模块702还可用于:
获取待处理任务的总执行时间;
获取目标容量的数据从中央处理器传输到第k个并行计算阶段的异构计算单元的存储器所需的单次数据传输时间;
根据并行计算阶段总数、异构计算单元总数和单次数据传输时间,确定总通信时间,并根据总执行时间和总通信时间确定目标总线的空闲时间;目标总线用于连接中央处理器与各异构计算单元;
根据总通信时间、目标总线处于工作状态下的功耗、空闲时间及目标总线处于空闲状态下的功耗,计算执行待处理任务过程中的通信功耗。
作为上述实施例的一种示例性的实施方式,上述功耗计算模块702还可用于:
调用通信能耗关系式计算执行待处理任务过程中的通信功耗,通信能耗关系式为:
;
式中,E b 为通信能耗,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,N为异构计算单元总数,N p 为并行计算阶段的总数,time total 为待处理任务的总执行时间,为将目标容量数据D(taski)从中央处理器传输到第k个并行计算阶段的第i个异构计算单元的存储器所需的单次数据传输时间。
示例性的,在本实施例的再一些实施方式中,上述功耗计算模块702还可用于:
获取待处理任务的总执行时间;
获取各异构计算单元在待处理任务执行过程中的静态功耗;
基于各异构计算单元在待处理任务执行过程中的静态功耗保持不变的基础上,根据各异构计算单元的静态功耗、总执行时间和异构计算单元总数确定待处理任务执行过程中的静态功耗。
作为上述实施例的一种示例性的实施方式,上述功耗计算模块702还可用于:
调用静态功耗计算关系式,计算待处理任务执行过程中的静态功耗;静态功耗计算关系式为:
;
式中,E total 为静态功耗,N为异构计算单元总数,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
示例性的,在本实施例的再一些实施方式中,上述功耗计算模块702还可用于:
调用系统能耗确定关系式,计算异构计算系统的能耗;系统能耗确定关系式为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
本实施例能耗确定装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例可以有效提高异构计算系统的能耗确定精度。
上文中提到的能耗确定装置是从功能模块的角度描述,进一步的,本发明还提供一种电子设备,是从硬件角度描述。图8为本发明实施例提供的电子设备在一种实施方式下的结构示意图。如图8所示,该电子设备包括存储器80,用于存储计算机程序;处理器81,用于执行计算机程序时实现如上述任一实施例提到的能耗确定方法的步骤。
其中,处理器81可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器81还可为控制器、微控制器、微处理器或其他数据处理芯片等。处理器81可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器81也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器81可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器81还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器80可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器80还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器80在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。存储器80在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器80还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器80不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行能耗确定方法过程中的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器80至少用于存储以下计算机程序801,其中,该计算机程序被处理器81加载并执行之后,能够实现前述任一实施例公开的能耗确定方法的相关步骤。另外,存储器80所存储的资源还可以包括操作系统802和数据803等,存储方式可以是短暂存储或者永久存储。其中,操作系统802可以包括Windows、Unix、Linux等。数据803可以包括但不限于能耗确定结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏82、输入输出接口83、通信接口84或者称为网络接口、电源85以及通信总线86。其中,显示屏82、输入输出接口83比如键盘(Keyboard)属于用户接口,示例性的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口84示例性的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线86可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图8中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器87。
本实施例电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例可以有效提高异构计算系统的能耗确定精度。
可以理解的是,如果上述实施例中的能耗确定方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明还提供了一种可读存储介质,存储有计算机程序,计算机程序被处理器执行时如上任意一实施例能耗确定方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种异构计算系统、能耗确定方法、装置、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,基于本发明中的实施例,对于本技术领域的普通技术人员来说,在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (24)
1.一种异构计算系统,其特征在于,包括主控制器、至少一个异构计算单元及能耗计算器;
所述主控制器和各异构计算单元通过目标总线相连,并通过所述目标总线进行通信;
所述主控制器用于将接收到的待处理任务分配到至少一个异构计算单元,并接收各异构计算单元反馈的任务处理结果;各异构计算单元用于对接收到的任务进行内核计算;
所述能耗计算器用于当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
2.根据权利要求1所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
根据所述任务执行时序信息,确定所述待处理任务执行过程中的通信串行阶段和并行计算阶段;
基于通信串行阶段和并行计算阶段,计算所述待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;
其中,所述通信串行阶段和所述并行计算阶段构成所述待处理任务的任务执行全过程。
3.根据权利要求2所述的异构计算系统,其特征在于,所述主控制器为中央处理器,所述基于通信串行阶段和并行计算阶段,计算所述待处理任务执行过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
基于所述通信串行阶段和所述并行计算阶段,确定各异构计算单元和中央处理器执行所述待处理任务过程中的动态能量消耗;
根据所述并行计算阶段及异构计算单元总数,计算执行所述待处理任务过程中通信功耗;
根据异构计算单元总数,计算各异构计算单元的静态功耗。
4.根据权利要求2所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定所述待处理任务执行过程中的通信串行阶段和并行计算阶段,包括:
从所述任务执行时序信息中确定各异构计算单元执行内核计算任务开始前的串行数据传输过程,以作为通信串行阶段;
将所述任务执行时序信息中各异构计算单元执行内核计算任务的过程,作为并行计算阶段。
5.根据权利要求1所述的异构计算系统,其特征在于,所述根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息,包括:
基于所述待处理任务按照串行方式进行数据传输,各异构计算单元按照并行方式计算所述待处理任务,根据所述待处理任务的分配情况和任务优先级确定执行所述待处理任务的任务执行时序信息。
6.根据权利要求5所述的异构计算系统,其特征在于,所述主控制器为中央处理器,所述基于所述待处理任务按照串行方式进行数据传输,包括:
对所述待处理任务的每个子任务,各子任务先通过中央处理器为其传输相应的输入数据,再利用相应的异构计算单元进行内核计算;
在各子任务的数据传输过程中,所述中央处理器基于预设顺序按照同一时间向一个异构计算单元传输对应数据的方式,与各异构计算单元进行数据传输。
7.根据权利要求5所述的异构计算系统,其特征在于,所述基于所述待处理任务按照串行方式进行数据传输,包括:
当所述待处理任务的各子任务在同一时刻存在资源冲突,按照各子任务的任务编号值从小到大依次进行数据传输;
其中,各子任务的任务编号值与任务执行时间相关。
8.根据权利要求5所述的异构计算系统,其特征在于,所述各异构计算单元按照并行方式计算所述待处理任务,包括:
在所述待处理任务进行内核计算过程中,各异构计算单元同一时间分别对所述待处理任务的不同子任务进行内核计算,同一个异构计算单元同一时间可分别对不同子任务进行数据传输和数据计算。
9.根据权利要求8所述的异构计算系统,其特征在于,所述各异构计算单元同一时间分别对所述待处理任务的不同子任务进行内核计算,包括:
根据所述待处理任务的各子任务之间的优先级,确定各子任务执行顺序的依赖关系;
对于不具有任务依赖关系的第一类子任务,各异构计算单元同一时间分别对第一类子任务进行内核计算;
对于具有任务依赖关系的第二类子任务,各异构计算单元按照先后顺序依次对第二类子任务进行内核计算。
10.根据权利要求1所述的异构计算系统,其特征在于,所述主控制器为中央处理器,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗,包括:
获取所述中央处理器和各异构计算单元的执行频率;
基于所述中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定所述中央处理器完成所有通信串行阶段对应的总动态能量消耗;
对每个并行计算阶段,根据当前并行计算阶段下的各异构计算单元完成相应任务所需的最长执行时间及其对应的执行频率,确定所有异构计算单元的异构动态能量消耗;
根据所述总动态能量消耗和每个并行计算阶段的异构动态能量消耗,计算执行所述待处理任务过程中的动态能量消耗。
11.根据权利要求10所述的异构计算系统,其特征在于,所述基于所述中央处理器的执行频率及其在每个通信串行阶段的执行总时间,确定所述中央处理器完成所有通信串行阶段对应的总动态能量消耗,包括:
调用总动态能量消耗计算关系式,计算所述中央处理器完成所有通信串行阶段对应的总动态能量消耗;所述总动态能量消耗计算关系式为:
;
式中,E c 为总动态能量消耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间。
12.根据权利要求10所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗,包括:
调用总异构动态能量消耗计算关系式,计算所有并行计算阶段下的异构动态能量消耗;所述总异构动态能量消耗计算关系式为:
;
式中,E dt 为所有并行计算阶段下的异构动态能量消耗,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数。
13.根据权利要求1所述的异构计算系统,其特征在于,所述主控制器为中央处理器,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
获取所述待处理任务的总执行时间;
获取目标容量的数据从中央处理器传输到第k个并行计算阶段的异构计算单元的存储器所需的单次数据传输时间;
根据并行计算阶段总数、异构计算单元总数和所述单次数据传输时间,确定总通信时间,并根据所述总执行时间和所述总通信时间确定目标总线的空闲时间;所述目标总线用于连接中央处理器与各异构计算单元;
根据所述总通信时间、所述目标总线处于工作状态下的功耗、所述空闲时间及所述目标总线处于空闲状态下的功耗,计算执行所述待处理任务过程中的通信功耗。
14.根据权利要求1所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
调用通信能耗关系式计算执行所述待处理任务过程中的通信功耗,所述通信能耗关系式为:
;
式中,E b 为通信能耗,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,N为异构计算单元总数,N p 为并行计算阶段的总数,time total 为待处理任务的总执行时间,为将目标容量数据D(taski)从中央处理器传输到第k个并行计算阶段的第i个异构计算单元的存储器所需的单次数据传输时间。
15.根据权利要求1所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
获取所述待处理任务的总执行时间;
获取各异构计算单元在待处理任务执行过程中的静态功耗;
基于各异构计算单元在待处理任务执行过程中的静态功耗保持不变的基础上,根据各异构计算单元的静态功耗、所述总执行时间和异构计算单元总数确定所述待处理任务执行过程中的静态功耗。
16.根据权利要求1所述的异构计算系统,其特征在于,所述根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗,包括:
调用静态功耗计算关系式,计算所述待处理任务执行过程中的静态功耗;所述静态功耗计算关系式为:
;
式中,E total 为静态功耗,N为异构计算单元总数,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
17.根据权利要求1至16任意一项所述的异构计算系统,其特征在于,所述根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗,包括:
调用系统能耗确定关系式,计算异构计算系统的能耗;所述系统能耗确定关系式为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
18.根据权利要求17所述的异构计算系统,其特征在于,所述能耗计算器部署于所述主控制器上。
19.根据权利要求17所述的异构计算系统,其特征在于,所述能耗计算器部署于任何一个或多个异构计算单元上。
20.一种能耗确定方法,其特征在于,包括:
当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;
根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;
根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
21.根据权利要求20所述的能耗确定方法,其特征在于,所述根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗,包括:
调用系统能耗确定关系式,计算异构计算系统的能耗;所述系统能耗确定关系式为:
;
式中,E total 为异构计算系统的能耗,N S 为通信串行阶段的总数,f c 为中央处理器的执行频率,W c 为中央处理器的执行频率为f c 时的功耗,为第j个通信串行阶段的中央处理器执行总时间,N p 为并行计算阶段的总数,f d 为异构计算单元的执行频率,W d 为异构计算单元的执行频率为f d 时的功耗,μ k (task)为第k个并行计算阶段的异构计算单元完成相应任务所需的最长执行时间,N为异构计算单元总数,WP(b,1)为中央处理器与各异构计算单元相连的目标总线处于工作状态下的功耗,WP(b,0)为目标总线处于空闲状态下的功耗,time T 为总通信时间,time total 为待处理任务的总执行时间,P s 为异构计算单元的静态功耗。
22.一种能耗确定装置,其特征在于,包括:
任务执行时序确定模块,用于当检测到待处理任务被分配到至少一个异构计算单元,根据所述待处理任务执行过程中的通信操作和计算操作,得到任务执行时序信息;
功耗计算模块,用于根据所述任务执行时序信息,确定执行所述待处理任务过程中的动态能量消耗、各异构计算单元的静态功耗和通信功耗;根据所述动态能量消耗、所述静态功耗和所述通信功耗确定异构计算系统的能耗。
23.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求20或21所述能耗确定方法的步骤。
24.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求20或21所述能耗确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640960.XA CN117349029A (zh) | 2023-12-04 | 2023-12-04 | 异构计算系统、能耗确定方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640960.XA CN117349029A (zh) | 2023-12-04 | 2023-12-04 | 异构计算系统、能耗确定方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117349029A true CN117349029A (zh) | 2024-01-05 |
Family
ID=89363505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311640960.XA Pending CN117349029A (zh) | 2023-12-04 | 2023-12-04 | 异构计算系统、能耗确定方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349029A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130103844A1 (en) * | 2011-10-21 | 2013-04-25 | Nokia Corporation | Method and apparatus for maintaining one or more communication sessions |
CN106874158A (zh) * | 2017-01-11 | 2017-06-20 | 广东工业大学 | 一种异构系统全程序功耗计量方法 |
CN109960576A (zh) * | 2019-03-29 | 2019-07-02 | 北京工业大学 | 一种面向cpu-gpu异构的低能耗任务调度策略 |
CN109976890A (zh) * | 2019-03-28 | 2019-07-05 | 东南大学 | 一种最小化异构私有云计算资源能耗的变频方法 |
CN113392065A (zh) * | 2021-07-14 | 2021-09-14 | 中科晶锐(苏州)科技有限公司 | 异构计算系统及计算方法 |
CN115269145A (zh) * | 2022-07-25 | 2022-11-01 | 哈尔滨工业大学(深圳) | 一种面向海上无人设备的高能效异构多核调度方法及装置 |
-
2023
- 2023-12-04 CN CN202311640960.XA patent/CN117349029A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130103844A1 (en) * | 2011-10-21 | 2013-04-25 | Nokia Corporation | Method and apparatus for maintaining one or more communication sessions |
CN106874158A (zh) * | 2017-01-11 | 2017-06-20 | 广东工业大学 | 一种异构系统全程序功耗计量方法 |
CN109976890A (zh) * | 2019-03-28 | 2019-07-05 | 东南大学 | 一种最小化异构私有云计算资源能耗的变频方法 |
CN109960576A (zh) * | 2019-03-29 | 2019-07-02 | 北京工业大学 | 一种面向cpu-gpu异构的低能耗任务调度策略 |
CN113392065A (zh) * | 2021-07-14 | 2021-09-14 | 中科晶锐(苏州)科技有限公司 | 异构计算系统及计算方法 |
CN115269145A (zh) * | 2022-07-25 | 2022-11-01 | 哈尔滨工业大学(深圳) | 一种面向海上无人设备的高能效异构多核调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
胡雷钧;陈乃刚;李健;韩峰;赵雅倩;: "FPGA异构计算平台及其应用", 电力信息与通信技术, no. 07, pages 10 - 15 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101855311B1 (ko) | 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘 | |
Kang et al. | Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks | |
JP2018533795A (ja) | 計算グラフのストリームベースのアクセラレータ処理 | |
WO2015196409A1 (en) | Intelligent gpu scheduling in a virtualization environment | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、系统、设备、装置和介质 | |
US9104491B2 (en) | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources | |
US11880715B2 (en) | Method and system for opportunistic load balancing in neural networks using metadata | |
US20140053161A1 (en) | Method for Adaptive Scheduling of Multimedia Jobs | |
US20160210171A1 (en) | Scheduling in job execution | |
CN113515382A (zh) | 云资源的分配方法、装置、电子设备及程序产品 | |
CN103262039A (zh) | 用于处理装置的同步操作的方法和系统 | |
CN113849238B (zh) | 数据通信方法、装置、电子设备及可读存储介质 | |
Lim et al. | ODMDEF: on-device multi-DNN execution framework utilizing adaptive layer-allocation on general purpose cores and accelerators | |
CN111598768B (zh) | 图像优化处理方法、装置、计算机设备及存储介质 | |
US11954518B2 (en) | User-defined metered priority queues | |
CN105117281B (zh) | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 | |
CN110825502B (zh) | 神经网络处理器和用于神经网络处理器的任务调度方法 | |
CN117349029A (zh) | 异构计算系统、能耗确定方法、装置、电子设备及介质 | |
CN115775199A (zh) | 数据处理方法和装置、电子设备和计算机可读存储介质 | |
US20190318229A1 (en) | Method and system for hardware mapping inference pipelines | |
CN112114967B (zh) | 一种基于服务优先级的gpu资源预留方法 | |
WO2023225991A1 (en) | Dynamic establishment of polling periods for virtual machine switching operations | |
Höttger et al. | Constrained mixed-critical parallelization for distributed heterogeneous systems | |
Kim et al. | A hierarchical tiling algorithm for tile based rendering with Global Scratch Counter under multi core environment | |
CN116933698A (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 |