CN116868168A - 一种加速器的运行方法及装置 - Google Patents

一种加速器的运行方法及装置 Download PDF

Info

Publication number
CN116868168A
CN116868168A CN202180093745.5A CN202180093745A CN116868168A CN 116868168 A CN116868168 A CN 116868168A CN 202180093745 A CN202180093745 A CN 202180093745A CN 116868168 A CN116868168 A CN 116868168A
Authority
CN
China
Prior art keywords
accelerator
task
configuration parameters
execution time
target
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
Application number
CN202180093745.5A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116868168A publication Critical patent/CN116868168A/zh
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种加速器的运行方法及装置,涉及芯片技术领域,可提高多加速器协同工作时的工作效率,降低资源和功耗的浪费。该装置包括:N个加速器;调度器(102);以及控制器(103),N为大于1的整数;其中,调度器(102)用于:获取N个加速器中每个加速器在执行任务时的历史配置参数;控制器(103)用于:根据获取到的历史配置参数,从N个加速器中识别第一加速器,第一加速器满足预设的性能瓶颈条件;根据第一加速器的历史配置参数优化第二加速器的目标配置参数,以使得第二加速器按照优化后的目标配置参数运行。

Description

一种加速器的运行方法及装置 技术领域
本申请涉及芯片技术领域,尤其涉及一种加速器的运行方法及装置。
背景技术
目前,系统级芯片(System on Chip,SOC)系统已经较为成熟的应用在各种电子设备(例如手机、服务器)中。在SOC系统中,可以将CPU(central processing unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、NPU(Neural Network Processing Unit,神经网络处理器)以及ISP(Image Signal Processing,图像信号处理器)等加速器及相关电路集成在一个或多个芯片中,提高芯片的集成度,从而降低电子设备的开发成本。
芯片运行时通常会产生一个或多个需要完成的任务流,一个任务流中可以包括多项任务,这多项任务可以由芯片上的多个加速器协同完成。并且,在一些复杂、大型的计算场景下,芯片可能需要多次循环执行相同的任务流。那么,当运行过程中某一加速器执行任务的时间过长时,与木桶效应类似的,该加速器会导致整个任务流在循环执行时出现性能瓶颈。此时,如果芯片中的其他加速器仍以较高的性能或功耗运行,则会造成资源和功耗的浪费,降低芯片内多个加速器的协同效率。
发明内容
本申请提供一种加速器的运行方法及装置,提高多加速器协同工作时的工作效率,降低资源和功耗的浪费。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供一种多加速器的协同处理装置,包括:N个加速器;调度器;以及控制器,N为大于1的整数;其中,上述调度器用于:获取N个加速器中每个加速器在执行任务时的历史配置参数;上述控制器用于:根据获取到的历史配置参数,从上述N个加速器中识别第一加速器,第一加速器满足预设的性能瓶颈条件;根据第一加速器的历史配置参数优化第二加速器(第二加速器为所述N个加速器中除第一加速器外的加速器)的目标配置参数,以使得第二加速器按照优化后的目标配置参数运行。
也就是说,上述协同处理装置可以根据各个加速器执行任务时的历史配置参数识别出当前任务流中成为性能瓶颈的第一加速器。这样,可基于第一加速器的运行情况对第二加速器等其他加速器进行功耗优化,从而在不影响整个任务流性能的同时,降低整个芯片系统执行该任务流时的功耗,降低资源和功耗的浪费。
在一种可能的实现方式中,第二加速器按照目标配置参数执行任务时的第一执行时间大于或等于第二加速器按照其历史配置参数执行任务时的第二执行时间。也就是说,优化后第二加速器按照其目标配置参数执行任务时的执行时间有所提高,可接近或等于第一加速器执行任务时的执行时间,从而降低第一加速器成为性能瓶颈时其他加速器的功耗浪费。
在一种可能的实现方式中,上述控制器根据获取到的历史配置参数,从N个加速器中识别第一加速器,具体包括:控制器根据上述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件。
示例性的,控制器根据上述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,具体包括:控制器根据N个加速器中每个加速器最近一次执行任务时的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间;控制器根据这N个预测执行时间可确定第一加速器满足预设的性能瓶颈条件。
例如,若第一预测执行时间为N个预测执行时间中的最大值,则控制器可确定与第一预测执行时间对应的第一加速器满足上述性能瓶颈条件,即第一加速器为第一任务流的性能瓶颈。也就是说,上述性能瓶颈条件为加速器的预测执行时间最大。
又例如,控制器根据N个加速器中每个加速器的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间之后,还用于:确定N个预测执行时间中每个预测执行时间的置信度;此时,若第一预测执行时间为N个预测执行时间中的最大值,且第一预测执行时间的置信度大于预设值,则控制器可确定与第一预测执行时间对应的第一加速器满足上述性能瓶颈条件,即第一加速器为第一任务流的性能瓶颈。也就是说,上述性能瓶颈条件为加速器的预测执行时间最大,且预测执行时间的置信度大于预设值。
或者,在另一种可能的实现方式中,控制器根据上述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,具体包括:控制器可确定N项历史配置参数中包含最大实际执行时间的第一历史配置参数;进而,控制器可确定与第一历史配置参数对应的第一加速器满足上述性能瓶颈条件。也就是说,上述性能瓶颈条件为加速器的际执行时间最大。
在一种可能的实现方式中,上述控制器根据第一加速器的历史配置参数优化第二加速器的目标配置参数,具体包括:控制器根据第一加速器的历史配置参数,设置第二加速器执行任务的目标执行时间;控制器按照第二加速器执行任务的目标执行时间,设置第二加速器的目标配置参数。
在一种可能的实现方式中,上述控制器根据第一加速器的历史配置参数,设置第二加速器执行任务的目标执行时间,具体包括:控制器获取第一加速器的历史配置参数中的实际执行时间;控制器获取为第二加速器预设的最大工作时延;进而,控制器可将实际执行时间与最大工作时延中的最小值确定为第二加速器执行任务的目标执行时间,使得第二加速器执行任务的目标执行时间能够尽可能的接近或等于第一加速器执行任务的实际执行时间。
或者,上述控制器根据第一加速器的历史配置参数,设置第二加速器执行任务的目标执行时间,具体包括:控制器根据第一加速器的历史配置参数获取第一加速器下一次执行任务时所需的第一预测执行时间;控制器获取为第二加速器预设的最大工作时延;进而,控制器可将第一预测执行时间与最大工作时延中的最小值确定为第二加速器执行任务的目标执行时间,使得第二加速器执行任务的目标执行时间能够尽可能的接近或等于第一加速器的预测执行时间。
也就是说,当整个N个加速器协同工作的运行性能受制于第一加速器时,则即使其他加速器(即第二加速器)运行第一任务流中相关任务的时间很短,也无法显著提高第一任务流的运行性能,反而会造成资源和功耗的浪费。因此,可设置第二加速器后续执行任务时的目标执行时间等于或接近第一加速器执行任务的实际执行时间(或预测执行时间),以降低第二加速器的功耗开销。
在一种可能的实现方式中,上述控制器按照第二加速器执行任务的目标执行时间,设置第二加速器的目标配置参数,具体包括:控制器查询是否记录有与第二加速器的目标执行时间对应的第二历史配置参数;若记录有与目标执行时间对应的第二历史配置参数,则控制器将第二历史配置参数设置为第二加速器的目标配置参数。
在一种可能的实现方式中,若没有记录与目标执行时间对应的第二历史配置参数,则上述控制器还用于:为第二加速器确定与上述目标执行时间时对应的频率区间;根据为第二加速器预设的性能曲线或功耗曲线在上述频率区间内确定目标频率,此时,该目标频率为第二加速器的目标配置参数中的一项。
在一种可能的实现方式中,上述控制器还用于:根据第一加速器的历史配置参数优化第三加速器(第三加速器为上述N个加速器中除第一加速器和第二加速器之外的加速器)的目标配置参数,以使得第三加速器按照优化后的目标配置参数运行。也就是说,对于非性能瓶颈的其他加速器,均可按照上述方法根据第一加速器的历史配置参数优化得到其他加速器的目标配置参数。
在一种可能的实现方式中,上述调度器具体用于:获取N个加速器中每个加速器执行每次任务时的历史配置参数,得到历史配置参数表。此时,控制器可在上述历史配置参数表中查询是否为第二加速器记录有与目标执行时间对应的第二历史配置参数。控制器也可根据上述历史配置参数表预测各个加速器的预测执行时间等。
在一种可能的实现方式中,上述N个加速器中的每个加速器用于循环执行第一任务流中的任务,第一任务流中可以包括M(M大于或等于N)个任务,即上述方法可应用于N个加速器协同循环执行第一任务流的场景中。
其中,上述历史配置参数可以包括执行任务时的实际执行时间、频率、电压、功耗、负载利用率、温度、最深空闲状态或最深空闲状态的退出时间、IPC、访存占用时间等参数,用于反映对应加速器在执行任务时加速器自身的运行状态。
第二方面,本申请提供一种加速器的运行方法,该方法可应用于包括N(N为大于1的整数)个加速器的多加速器的协同处理装置中,其中每个加速器用于执行对应的任务;该方法具体包括:获取上述N个加速器中每个加速器在执行任务时的历史配置参数;例如,加速器1的历史配置参数1,加速器2的历史配置参数2等;进而,可根据获取到的历史配置参数,从上述N个加速器中识别满足预设的性能瓶颈条件的第一加速器,并根据第一加速器的历史配置参数优化第二加速器的目标配置参数,以使得第二加速器按照优化后的目标配置参数运行,第二加速器为上述N个加速器中除第一加速器外的加速器。
也就是说,上述方法可以根据各个加速器最近执行任务时的历史配置参数识别出当前任务流中成为性能瓶颈的第一加速器。这样,可基于第一加速器的运行情况对其他加速器进行功耗优化,从而在不影响整个任务流性能的同时,降低整个芯片系统执 行该任务流时的功耗,降低资源和功耗的浪费。
在一种可能的实现方式中,上述第二加速器按照目标配置参数执行任务时的第一执行时间大于或等于第二加速器按照其历史配置参数执行任务时的第二执行时间。也就是说,优化后第二加速器按照目标配置参数执行任务时的执行时间有所提高,可接近或等于第一加速器执行任务时的执行时间,从而降低第一加速器成为性能瓶颈时其他加速器的功耗浪费。
在一种可能的实现方式中,根据获取到的历史配置参数,从N个加速器中识别第一加速器,具体包括:根据上述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件。
示例性的,可根据N个加速器中每个加速器的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间,例如,加速器1下一次执行任务1的预测执行时间1,加速器2下一次执行任务2的预测执行时间2等;当某一加速器的执行任务的时间过长时,其他加速器需要等待该加速器任务结束后才能开始执行自身的任务,导致整个任务流出现性能瓶颈;因此,若第一预测执行时间为上述N个预测执行时间中的最大值,则可将与第一预测执行时间对应的第一加速器确定为第一任务流的性能瓶颈,即第一加速器满足预设的性能瓶颈条件。此时,整个第一任务流的运行性能依赖于第一加速器执行任务时的执行时间等参数。
或者,在根据N个加速器中每个加速器的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间之后,还可以包括:确定上述N个预测执行时间中每个预测执行时间的置信度,每个预测执行时间的置信度用于指示该预测执行时间的准确度;此时,若第一预测执行时间为上述N个预测执行时间中的最大值,则需要进一步判断第一预测执行时间的置信度是否大于预设值,如果大于预设值,说明第一加速器后续执行任务的第一预测执行时间较大,则可将与第一预测执行时间对应的第一加速器确定为第一任务流的性能瓶颈。
在另一种可能的实现方式中,根据上述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,具体包括:确定上述N项历史配置参数中包含最大实际执行时间的第一历史配置参数;将与第一历史配置参数对应的第一加速器确定为第一任务流的性能瓶颈,即第一加速器满足预设的性能瓶颈条件。也就是说,也可基于各个加速器执行任务的实际执行时间预测成为第一任务流的性能瓶颈的加速器,本申请对此不做任何限制。
在一种可能的实现方式中,上述根据第一加速器的历史配置参数优化第二加速器的目标配置参数,具体包括:首先,可根据第一加速器的历史配置参数,设置第二加速器执行任务的目标执行时间;进而,可按照第二加速器执行任务的目标执行时间,设置第二加速器的频率、电压等其他目标配置参数,使得各个加速器使用目标配置参数运行时可以在不影响当前运行性能的同时能够减少功耗开销。
示例性的,根据第一加速器的历史配置参数,设置N个加速器中第二加速器执行任务的目标执行时间,具体可以包括:获取第一加速器的历史配置参数中的实际执行时间;获取为第二加速器预设的最大工作时延;将实际执行时间与最大工作时延中的最小值确定为第二加速器执行任务的目标执行时间。
示例性的,根据第一加速器的历史配置参数,设置N个加速器中第二加速器执行任务的目标执行时间,具体可以包括:根据第一加速器的历史配置参数获取第一加速器下一次执行任务时所需的第一预测执行时间;获取为第二加速器预设的最大工作时延;将第一预测执行时间与最大工作时延中的最小值确定为第二加速器执行任务的目标执行时间。
也就是说,当整个第一任务流的运行性能受制于第一加速器时,则即使其他加速器(即第二加速器)运行第一任务流中相关任务的时间很短,也无法显著提高第一任务流的运行性能,反而会造成资源和功耗的浪费。因此,可设置第二加速器后续执行任务时的目标执行时间等于或接近第一加速器执行任务的实际执行时间(或预测执行时间),以降低第二加速器的功耗开销。
在一种可能的实现方式中,上述按照第二加速器执行任务的目标执行时间,设置第二加速器的目标配置参数,具体包括:查询是否记录有与第二加速器的目标执行时间对应的第二历史配置参数;若记录有与目标执行时间对应的第二历史配置参数,则将第二历史配置参数设置为第二加速器的目标配置参数。
相应的,若没有记录与目标执行时间对应的第二历史配置参数,则上述方法还包括:为第二加速器确定与上述目标执行时间时对应的频率区间;根据为第二加速器预设的性能曲线或功耗曲线在上述频率区间内确定目标频率,此时,该目标频率为第二加速器的目标配置参数中的一项;也就是说,芯片系统可按照性能优先或功耗优先的原则确定第二加速器获得能效甜点的最低频率。
在一种可能的实现方式中,上述方法还包括:根据第一加速器的历史配置参数优化第三加速器(第三加速器为上述N个加速器中除第一加速器和第二加速器之外的加速器)的目标配置参数,以使得第三加速器按照优化后的目标配置参数运行。也就是说,对于非性能瓶颈的其他加速器,均可按照上述方法根据第一加速器的历史配置参数优化得到其他加速器的目标配置参数。
在一种可能的实现方式中,上述N个加速器中的每个加速器用于循环执行第一任务流中的任务,第一任务流中可以包括M(M大于或等于N)个任务,即上述方法可应用于N个加速器协同循环执行第一任务流的场景中。
其中,上述历史配置参数可以包括执行任务时的实际执行时间、频率、电压、功耗、负载利用率、温度、最深空闲状态或最深空闲状态的退出时间、IPC、访存占用时间等参数,用于反映对应加速器在执行任务时加速器自身的运行状态。
第三方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行第二方面或第二方面的任一种可能的实现方式所提供的加速器的运行方法。
可以理解地,上述提供的任一种装置或计算机存储介质均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请提供的一种多加速器的协同处理装置的结构示意图;
图2为本申请提供的一种加速器的运行方法的应用场景示意图一;
图3为本申请提供的一种加速器的运行方法的交互示意图一;
图4为本申请提供的一种加速器的运行方法的应用场景示意图二;
图5为本申请提供的一种加速器的运行方法的应用场景示意图三;
图6为本申请提供的一种加速器的运行方法的交互示意图二。
具体实施方式
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,本申请实施例采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请提供的一种加速器的运行方法可应用于包含多加速器的协同处理装置中。示例性的,该协同处理装置可以为图1所示的芯片系统100。
例如,芯片系统100中可以包括CPU、GPU、NPU、ISP以及ASIC(Application Specific Integrated Circuit,专用集成电路)中的一个或多个加速器。这些加速器可以通过总线101相互连接。
其中,CPU是芯片系统100的主要硬件之一。CPU是芯片系统100中负责读取指令,对指令译码并执行指令的核心部件。
GPU可称为显示核心、视觉处理器、显示芯片,可执行芯片系统100中与图像和图形相关运算的任务。
NPU可应用于物联网等人工智能系统,可用于加速神经网络的运算,解决传统芯片在神经网络运算时效率低下的问题。
ISP主要用来对前端图像传感器输出的信号进行处理元,以匹配不同厂商的图像传感器。
ASIC是一种为专门目的而设计的集成电路,可应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
当然,芯片系统100中还可以包括DPU(Deep learning Processing Unit,深度学习处理器)、HPU(Holographics Processing Unit,全息图像处理器)、TPU(Tensor Processing Unit,张量处理器)等一个或多个加速器。或者,芯片系统100中还可以设置与各个加速器分别对应的逻辑控制电路,用于调整加速器的工作状态。例如,CPU的逻辑控制电路可以控制CPU进入C-state(睡眠状态),使CPU进入低功耗空闲状态。或者,CPU的逻辑 控制电路可以控制CPU进入P-state(运行状态),使CPU在不同电压和/或频率下运行。
在一些实施例中,芯片系统100中的多个加速器可以协同工作执行一项或多项任务流(一项任务流中可以包括多个任务)。例如,在ADAS(Advanced Driving Assistance System,高级驾驶辅助系统)或大型数据中心的网络训练系统中,设置在电子设备中的芯片系统100通常需要多个加速器重复执行一项或多项任务流。
以循环执行任务流1举例,如图2所示,在第一次执行任务流1时,可以先由ISP执行任务流1中的任务1,再由CPU执行任务流1中的任务2,再由NPU执行任务流1中的任务3,最后由GPU执行任务流1中的任务4,从而完成本次任务流1。其中,任务1、任务2、任务3以及任务4可以是一个或多个任务。
类似的,在第二次执行任务流1时,同样还是先由ISP执行任务流1中的任务1,再由CPU执行任务流1中的任务2,再由NPU执行任务流1中的任务3,最后由GPU执行任务流1中的任务4,从而完成本次任务流1。类似的,第三次或者更多次循环执行任务流1的过程与上述过程类似,故此处不再赘述。
仍如图2所示,第一次执行任务流1时,由于ISP、CPU等加速器均处于空闲状态,因此,ISP执行完任务1后,可直接由CPU执行任务2,CPU执行完任务2后,可直接由NPU执行任务3等,即每个加速器执行任务的过程是连续的。但是,第二次执行任务流1时,ISP需要等待第一次执行的任务1完成后,才能开始执行本次的任务1。类似的,其他加速器也需要等到上一次执行的任务完成后,才能执行本次的任务。
在这种场景下,当某一加速器执行任务的时间过长时,该加速器会成为芯片系统100的性能瓶颈,造成整个任务流发生阻塞。例如,仍如图2所示,在第二次执行任务流1时,由于NPU执行任务3的时间过长,即使GPU第一次执行的任务4完成后,GPU还需要等待NPU执行完本次的任务3,才能开始执行任务4,使这一次任务流1的执行时间增加。并且,在后续第三次执行任务流1时,ISP还需等待GPU第二次执行的任务4完成后,才能开始执行任务1。后续,每两次循环执行任务流1的时间间隔均为NPU执行任务3的执行时间,使得整个任务流1的执行时间依赖于NPU执行任务3的执行时间。
并且,仍以NPU为上述场景中的性能瓶颈举例,由于执行任务流1的整体性能受到NPU执行任务的时间长短的制约,此时,如果芯片系统100中的其他加速器以较高的性能或功耗运行,也无法改善执行任务流1的整体性能,反而会造成资源和功耗的浪费。
对此,在本申请实施例中,仍如图1所示,芯片系统100中还可以设置调度器102和控制器103。调度器102和控制器103均与总线101相连。
其中,调度器101可用于统计各个加速器执行每一次任务的历史配置参数。例如,该历史配置参数可以包括加速器运行一项任务时的频率、电压、功耗、负载利用率以及任务的执行时间等一项或多项。当然,该历史配置参数还可以包括加速器运行一项任务时的温度、最深空闲状态或最深空闲状态的退出时间等。
示例性的,上述历史配置参数中的一些参数是加速器工作时需要配置的参数,例如,频率、电压、最深空闲状态或最深空闲状态的退出时间等。上述历史配置参数中的另一些参数(例如,功耗、负载利用率以及任务的执行时间等)是加速器按照上述配置的参数运行后得到的结果参数。这些参数均可反映出各个加速器在执行某一任务时该加速器的运行 状态。
调度器101可将统计出的各个加速器的历史配置参数发送给控制器103。进而,控制器103可根据各个加速器的历史配置参数确定任务流中成为性能瓶颈的目标加速器。进而,控制器103可根据目标加速器的运行情况为其他加速器设置对应的目标配置参数,以减少在目标加速器成为性能瓶颈时其他加速器的功耗浪费。目标配置参数中可以包括加速器运行对应任务的频率、电压等参数。当然,与上述历史配置参数类似的,目标配置参数中还可以包括加速器运行一项任务时的最深空闲状态和最深空闲状态的退出时间等一项或多项。
示例性的,如果目标加速器运行任务流1中相关任务的执行时间为45ms,则即使其他加速器运行任务流1中相关任务的时间很短,整个任务流1的运行性能仍然受制于目标加速器的执行时间。那么,控制器103可以为其他加速器确定执行时间小于45ms且功耗更小的目标配置参数。进而,控制器103可将为各个加速器确定的目标配置参数下发至对应的加速器中,从而控制各个加速器按照最新的目标配置参数运行任务流1中的相关任务,降低各个加速器在运行任务流1时的功耗浪费。
可以看出,本申请实施例中在芯片系统100中设置调度器102和控制器103,可以通过调度器102统计任务流运行时各个加速器的历史配置参数,进而,控制器103可根据各个加速器的历史配置参数识别出当前任务流中成为性能瓶颈的目标加速器。这样,控制器103可基于目标加速器的运行情况对其他加速器进行功耗优化,从而在不影响整个任务流性能的同时,降低整个芯片系统100执行该任务流时的功耗,降低资源和功耗的浪费。
其中,芯片系统100中各个加速器和各个模块交互的具体过程将在后续实施例中详细阐述,故此处不予赘述。
需要说明的是,上述调度器102和控制器103可以是芯片系统100中的软件单元,也可以是芯片系统100中的硬件单元,还可以是由软件单元和硬件单元共同实现的。在一些实施例中,调度器102可称为任务调度器,控制器103可称为功耗控制器等。或者,还可以将芯片系统100中的调度器102和控制器103设置为一个或更多个功能模块,本申请实施例对此不作任何限制。
另外,上述芯片系统100中还可以包括存储器、调制解调器(modem)等部件,本申请实施例对此不做任何限制。
其中,存储器可用于存储数据、软件程序以及模块,主要包括存储程序区和存储数据区,存储程序区可存储操作系统、至少一个功能所需的应用程序等,存储数据区可存储该设备的使用时所创建的数据等。例如,存储器包括但不限于静态随机存储器(static RAM,SRAM)、动态随机存储器(dynamic RAM,DRAM)、同步动态随机存储器(synchronous DRAM,SDRAM)或者高速随机存取存储器等。进一步的,存储器还可以包括其他非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
调制解调器可用于发送端和接收端中。在发送端,调制解调器可可将计算机串行口产生的数字信号调制成可以通过电话线传输的模拟信号;在接收端,调制解调器可将输入计算机的模拟信号转换成相应的数字信号,送入计算机接口。
图3为本申请实施例提供的一种加速器的运行方法的流程示意图,该方法可以由上 述实施例提供的协同处理装置(例如,芯片系统100)来执行,该方法包括以下几个步骤。
S301、芯片系统100中的N个加速器开始循环执行第一任务流中的M个任务,N和M为大于1的整数。
示例性的,上述N个加速器中可以包括CPU、GPU、NPU、ISP以及ASIC中的多个加速器。芯片系统100中的N个加速器可构成异构处理器系统,这N个加速器可以协同工作完成相关的任务流。
例如,可以将芯片系统100设置在数据中心(data center)的服务器中用于模型训练。在进行复杂、大型的模型训练时,可能需要芯片系统100中的N个加速器循环执行一项或多项任务流。其中,一项任务流中可以包括多个任务,这多个任务可以由芯片系统100中的N个加速器分别执行。
又例如,可以将芯片系统100设置在ADAS等辅助驾驶场景的电子设备中用于实现辅助驾驶的相关功能。此时,也可能需要芯片系统100中的N个加速器循环执行一项或多项任务流。
以任务流1为第一任务流举例,仍如图2所示,芯片系统100在运行时需要ISP、CPU、NPU以及GPU循环执行任务流1中的各个任务。例如,任务流1中包括任务1至任务4,在每一次执行任务流1时,可先由ISP执行任务1,再由CPU执行任务2,再由NPU执行任务3,最后由NPU执行任务4。其中,除了第一次执行任务1的ISP外,每个加速器需要等待上一个加速器完成自己的任务后,才能开始执行对应任务。并且,每个加速器还需要等待上一次循环过程中自身的任务结束后,才能开始执行本次的任务。
S302、芯片系统100中的调度器102获取N个加速器在执行每一次任务时的历史配置参数,得到历史配置参数表。
仍以任务流1为第一任务流举例,在步骤S302中,每个加速器在执行完成本次任务后,可向调度器102上报本次任务的历史配置参数。其中,该历史配置参数可包括加速器执行本次任务时的实际执行时间、频率、电压、功耗或负载利用率等一项或多项参数。当然,该历史配置参数还可以包括加速器运行任务时的温度、最深空闲状态或最深空闲状态的退出时间、IPC(instruction perclock,每个时钟执行的指令数)、访存占用时间等参数。历史配置参数中的各项参数均可反映出加速器在执行本次任务时加速器自身的运行状态。
例如,ISP在第一次执行任务流1中的任务1时,ISP的频率为1000MHz、电压为1V、功耗为200mW、负载利用率为100%、实际执行时间为30ms。进而,当任务1执行结束后,ISP可将上述信息作为历史配置参数1上报给调度器102。或者,调度器102也可以主动从ISP等加速器中获取各个加速器执行相应任务时的历史配置参数,本申请实施例对此不做任何限制。
在一些实施例中,ISP在执行任务1的过程中可能会有一些配置参数实时波动。例如,在ISP执行任务1的30ms内,ISP的功耗可能会发生变化。那么,ISP可将本次开始执行任务1时的功耗作为上述历史配置参数1中的参数上报给调度器102。或者,ISP可将本次结束执行任务1时的功耗作为上述历史配置参数1中的参数上报给调度器102。又或者,ISP还可以将执行任务1的过程中功耗的平均值(或加权平均值)作为上述历史配置参数 1中的参数上报给调度器102,本申请实施例对此不做任何限制。
调度器102获取到ISP上报执行任务流1(例如,任务流1的任务流ID为0)中任务1(例如,任务1的任务ID为1)的历史配置参数1后,可将历史配置参数1记录在表1所示的历史配置参数表中。历史配置参数表中建立了各个加速器、任务流、任务以及历史配置参数之间的对应关系。其中,表1所示的历史配置参数表中未示出具体单位,该历史配置参数表中的各项数据仅为示例,本领域技术人员可根据实际应用场景和实际经验设置该历史配置参数表中的各项数据和单位。
表1
在一些实施例中,各个加速器每次执行任务时配置参数中设置的频率可以不同。一般,当加速器执行任务时的频率越高时,产生的功耗也会越大。例如,如果ISP在第二次执行任务1时的频率为800MHz,此时,ISP的电压为0.85V、功耗为150、负载利用率为100%、实际执行时间为40ms,则ISP可将上述信息作为历史配置参数2上报给调度器102。仍如表1所示,由于历史配置参数2与已经记录的历史配置参数1中的工作频率不同,调度器102可将历史配置参数2作为一条新的历史配置参数记录在历史配置参数表中。
在另一些实施例中,各个加速器每次执行任务时配置参数中设置的频率可以相同。例如,如果ISP在第二次执行任务1时的频率仍为1000MHz,此时,ISP的电压、功耗等参数可能与第一次执行任务1时历史配置参数1中的参数不同。如果在1000MHz的频率下,ISP第一次和第二次执行任务1得到的历史配置参数不同,则调度器102可在表1所示的历史配置参数表中更新频率为1000MHz的历史配置参数。例如,调度器102可将ISP第二次执行任务1得到的历史配置参数替换上述历史配置参数1。又例如,调度器102可将ISP第一次和第二次执行任务1得到的历史配置参数中的各项参数进行平均(或加权平均)后代替上述历史配置参数1。例如,在相同的1000MHz的频率下,ISP第一次执行任务1的实际执行时间为30ms,ISP第一次执行任务1的实际执行时间为32ms,那么,调度器102可将这两次实际执行时间的平均值(即31ms)作为ISP在1000MHz频率下的实际执行时间更新在上述历史配置参数表中。经过更新后,表1所示的历史配置参数表中记录的ISP在 1000MHz的配置参数可以反映出ISP最新的运行状态。
其中,表1中记录的频率、电压等各项历史配置参数可以与ISP实际执行任务时的各项历史配置参数之间具有一定误差。例如,可预先设置频率的误差在±10MHz以内,那么,当ISP上报本次执行任务1的频率为996MHz时,可在表1中记录ISP的频率为1000MHz。
类似的,其他加速器(例如CPU、NPU以及GPU)在执行任务流1中相关任务时均可按照上述方法,向调度器102上报每次执行任务的历史配置参数。调度器102可将得到的历史配置参数更新在表1所示的历史配置参数表中。例如,当NPU以500MHz的固定频率循环执行任务流1中的任务3时,调度器102可将每次NPU上报的历史配置参数更新在表1所示的历史配置参数表中。这样,ISP、CPU、NPU以及GPU等加速器在循环执行任务流1中的各个任务时,调度器102可通过上述历史配置参数表获取到每个加速器执行相应任务时的运行状态。后续,芯片系统100可基于各个加速器在不同历史配置参数下的运行状态为各个加速器寻找后续运行时能够降低功耗且保证运行性能的目标配置参数,以降低整个任务流1运行时产生的功耗。
需要说明的是,表1中记录的历史配置参数是以ISP、CPU、NPU以及GPU等加速器在循环执行任务流1时举例说明的。可以理解的是,上述一个或多个加速器还可以执行其他任务流中的任务。例如,CPU还可以执行任务流2(任务流2的任务流ID可以为1)中的任务,那么,CPU也可以将执行任务流2中相关任务的历史配置参数上报给调度器102。调度器102可以将CPU执行任务流2中相关任务的历史配置参数添加至表1所示的历史配置参数表中,或者,调度器102也可以创建与任务流2对应的历史配置参数表,将CPU执行任务流2中相关任务的历史配置参数添加至该历史配置参数表中。
另外,如果加速器上报的历史配置参数中还包括执行任务的温度、加速器处于P-state(即工作状态)的时间以及加速器处于C-state(即空闲状态)的时间等。其中,C-state中又进一步包括C1状态(挂起)、C2状态(停止允许)以及C3状态(深度睡眠)等。上述历史配置参数表中还可以包括不同状态的进入或退出时间等,本申请实施例对此不做任何限制。
S303、芯片系统100中的控制器103根据上述历史配置参数表预测N个加速器下一次执行任务时的预测执行时间。
仍以表1所示的历史配置参数表举例,控制器103可从调度器102中获取最新的历史配置参数表。为了预测各个加速器循环执行任务流1时的性能瓶颈,控制器103可以定期从调度器102中获取最新的历史配置参数表,并根据最新的历史配置参数表预测每个加速器下一次执行相应任务时的执行时间(即预测执行时间)。
例如,表1中记录了ISP在频率为1000MHz、800MHz和600MHz三种不同配置条件下执行任务1的三组历史配置参数。在一些实施例中,控制器103可根据ISP最近一次执行任务1时的历史配置参数,预测ISP在相同的配置条件下再次执行任务1所需的预测执行时间1。例如,如果最近一次ISP的历史配置参数为:频率为800MHz、电压为0.85V、功耗为150mW、负载利用率为100%,则如表2所示,控制器103可将在相同的配置条件下再次执行任务1所需的预测执行时间1设置为30ms(即预测执行时间与实际执行时间相同)。
如果下一次ISP执行任务1的实际执行时间与上述预测执行时间1相同(即30ms),则控制器103可确定30ms的预测执行时间1的置信度为100%,即置信度用于指示对应预 测执行时间的准确度。如果下一次ISP执行任务1的实际执行时间与上述预测执行时间1不同,则控制器103可重新计算预测执行时间1以及预测执行时间1的置信度。这样,经过多次迭代和循环后,控制器103可得到ISP在频率为800MHz、电压为0.85V、功耗为150mW、负载利用率为100%的配置条件下执行任务1的预测执行时间以及置信度。
在另一些实施例中,控制器103可根据表1中为ISP记录的每一组历史配置参数,分别按照上述方法计算ISP在每一种配置条件下执行任务1的预测执行时间以及置信度。
表2
同样,控制器103可按照上述方法得到CPU、NPU以及GPU在不同配置条件下执行对应任务的预测执行时间以及置信度,得到表2所示的与各组历史配置参数对应的预测信息,该预测信息中包括为每个加速器在不同配置条件下预测得到的预测执行时间和置信度。
需要说明的是,上述预测信息中也可以不包括预测执行时间的置信度。例如,控制器103可针对不同加速器的每一组历史配置参数,使用预设的预测算法计算对应的预测执行时间,此时,控制器103不需要再计算预测执行时间的置信度。
S304、芯片系统100中的控制器103根据最近一次N个加速器执行任务后预测出的预测执行时间,识别执行第一任务流时成为性能瓶颈的第一加速器。
一般,在多个加速器循环执行任务流中的各项任务时,当某一加速器(例如加速器1)执行任务的执行时间过长时,其他加速器均需要等待加速器1任务结束后才能开始执行自身的任务,导致整个任务流发生阻塞。此时,加速器1可称为执行上述任务流时的性能瓶颈。
与上述原理类似的,在步骤S304中,控制器103可以获取最近一次N个加速器中每个加速器执行任务后,控制器103为该加速器预测出的预测执行时间。例如,控制器103可以获取最近一次ISP执行任务1时的频率为800MHz、电压为0.85V、功耗为150mW以及负载利用率为100%,则控制器103可以通过表2查询到对应的预测执行时间A为41ms。类似的,控制器103还可以获取到最近一次CPU执行任务2后,针对CPU执行任务2的预测出的预测执行时间B。并且,控制器103还可以获取到最近一次NPU执行任务3后,针 对NPU执行任务3预测出的预测执行时间C。并且,控制器103还可以获取到最近一次GPU执行任务4后,针对GPU执行任务4预测出的预测执行时间D。
进而,控制器103可以根据预测执行时间A、预测执行时间B、预测执行时间C以及预测执行时间D,确定满足预设的性能瓶颈条件的第一加速器。例如,该性能瓶颈条件为预测执行时间最大的加速器。那么,如果预测执行时间C为上述4个预测执行时间中的最大值,则控制器103可将与预测执行时间C对应的NPU确定为后续执行任务流1的性能瓶颈,即NPU为满足性能瓶颈条件的第一加速器。
在另一些实施例中,上述性能瓶颈条件还可以进一步包括预测执行时间的置信度大于预设值1。例如,如果预测执行时间C为上述4个预测执行时间中的最大值,则控制器103还可以进一步查询预测执行时间C的置信度是否大于预设值1(例如99%)。如果预测执行时间C为上述4个预测执行时间中的最大值,且预测执行时间C的置信度大于预设值1,则控制器103可将与预测执行时间C对应的NPU确定为后续执行任务流1的性能瓶颈。
在另一些实施例中,上述性能瓶颈条件还可以进一步包括加速器的负载利用率大于预设值2。例如,如果预测执行时间C为上述4个预测执行时间中的最大值,则控制器103还可以进一步查询NPU最近一次执行任务3时的负载利用率是否大于预设值2(例如98%)。如果预测执行时间C为上述4个预测执行时间中的最大值,且NPU最近一次执行任务3时的负载利用率大于预设值2,则控制器103可将与预测执行时间C对应的NPU确定为后续执行任务流1的性能瓶颈。
也就是说,控制器103可基于最近一次为各个加速器预测的下一次执行任务时的预测执行时间,识别出后续执行任务流1时成为性能瓶颈的第一加速器(例如上述NPU),即满足性能瓶颈条件的第一加速器。
当然,在一些实施例中,控制器103也可能会确定出目前没有加速器成为执行任务流1时的性能瓶颈。例如,仍以上述预测执行时间C为上述4个预测执行时间中的最大值举例,如果预测执行时间C的取值最大,但预测执行时间C的置信度小于上述预设值1,则控制器103可确定NPU不是执行任务流1的性能瓶颈。在这种场景下,还没有加速器成为执行任务流1时的性能瓶颈。那么,芯片系统100可继续执行上述步骤S302-S304,基于各个加速器最新的历史配置参数重新识别执行任务流1时成为性能瓶颈的加速器,进而执行下述步骤S305-S306。
S305、芯片系统100中的控制器103根据第一加速器的预测执行时间,设置其他加速器的目标配置参数。
仍以NPU为执行上述任务流1时的性能瓶颈举例,控制器103确定NPU为执行上述任务流1时的性能瓶颈后,可根据NPU的预测执行时间(即上述预测执行时间C)确定其他加速器后续执行任务时的目标执行时间。进而,控制器103可根据其他加速器的目标执行时间,确定后续执行任务时的频率、电压、功耗等其他目标配置参数。
示例性的,当NPU的预测执行时间C为50ms时,由于预测出整个任务流1的运行性能受制于NPU的预测执行时间C,则即使其他加速器运行任务流1中相关任务的时间很短,也无法显著提高任务流1的运行性能,反而会造成资源和功耗的浪费。那么,控制器103可提高其他加速器(例如第二加速器、第三加速器等)后续执行任务时的目标执行时间,使得其他加速器后续执行任务时的目标执行时间接近或等于50ms。
例如,如图4所示,控制器103可以获取预先为ISP设置的最大工作时延T1。最大工作时延T1为芯片系统100中为ISP设置的允许ISP执行任务时花费的时间上限值。进而,控制器103可将最大工作时延T1与预测执行时间C之间的最小值确定为ISP的目标执行时间1,即目标执行时间1=F(min(最大工作时延T1,预测执行时间C))。例如,如果ISP的最大工作时延T1=60ms,则ISP的目标执行时间1为取值较小的预测执行时间C,即50ms。目标执行时间1可作为后续ISP执行任务流1中任务1的一项目标配置参数。这样,ISP可以在不超过ISP的最大工作时延T1的情况下选择较长的时间(即目标执行时间1)执行后续任务流1中的任务1。当执行任务1的目标执行时间1越长时,ISP的功耗也会随之降低。
仍以ISP的目标执行时间1为50ms举例,控制器103确定出ISP的目标执行时间1后,可进一步确定ISP后续执行任务1时的频率、电压等其他目标配置参数。例如,控制器103可以查询表1所示的历史配置参数表中是否包括实际执行时间为50ms的ISP的历史配置参数。如果包括实际执行时间为50ms的ISP的历史配置参数,则控制器103可将对应的历史配置参数确定为ISP的目标配置参数。这样,控制器103可利用表1中现有的历史配置参数,为ISP设置后续执行任务1时使用的目标配置参数中的各项参数。
相应的,如果表1中不包括实际执行时间为50ms的ISP的历史配置参数,则控制器103可按照性能优先的原则确定ISP获得能效甜点的最低频率P1。例如,如图5中的(a)所示,ISP的性能X与频率P之间关系可以用曲线C1表示。当ISP执行任务1的实际执行时间小于50ms时,ISP的频率在0至P0之间。进而,控制器103可按照与曲线C1对应的函数关系,计算频率在0至P0之间时ISP能达到最大的能效甜点W1。曲线C1上的能效甜点W1(X1,P1)用于指示ISP的性能X与功耗P的最佳平衡点,即性能与功耗的最大比值。进而,控制器103可将与能效甜点W对应的频率P1确定为ISP后续执行任务1时使用的频率,此时,ISP的目标配置参数包括频率P1和目标执行时间1。
或者,如果表1中不包括实际执行时间为50ms的ISP的历史配置参数,则控制器103也可按照功耗优先的原则确定ISP能获得最低功耗的频率P2。例如,根据图5中的(a)所示的曲线C1,控制器103可以确定ISP满足性能需求(即实际执行时间小于50ms)时的频率在0至P0之间。进而,如图5中的(b)所示,ISP的功耗W与频率P之间关系可以用曲线C2表示。控制器103可按照与曲线C2对应的函数关系,计算当频率小于P0时,ISP的功耗最低时(即X2)对应的频率P2。进而,控制器103可将频率P2确定为ISP后续执行任务1时使用的频率,此时,ISP的目标配置参数包括频率P2和目标执行时间1。
当然,控制器103为ISP确定出目标配置参数中频率后,还可以确定ISP的目标配置参数中的电压等其他参数,目标配置参数中的各项参数可与历史配置参数中的各项参数相同或不同,本申请实施例对此不做任何限制。
例如,芯片系统100中可以存储有ISP在不同频率下工作时对应的电压。那么,控制器103可根据目标配置参数中为ISP确定的频率,将与该频率对应的电压确定为目标配置参数中ISP的电压。
又例如,如果ISP工作时的总时长为80ms,当控制器103为ISP确定出执行任务1的目标执行时间1为50ms后,可确定ISP处于P-state的时间为50ms,ISP处于C-state的时间为30ms。进一步地,当ISP处于C-state的时间为30ms时,控制器103还可以进 一步确定ISP是否能够进入C1状态、C2状态以及C3状态等不同的空闲状态,以及进入某一空闲状态的时间等参数,这些参数均可作为ISP的目标配置参数。
又或者,如果表1中不包括实际执行时间为50ms的ISP的历史配置参数,则控制器103还可以根据表1中已记录的与不同实际执行时间对应的历史配置参数,预测当实际执行时间为50ms时ISP对应的历史配置参数。例如,表1中如果记录有实际执行时间为20ms、30ms以及40ms时ISP的三组历史配置参数,则控制器103可按照这三组历史配置参数按照预设的数学模型预测出实际执行时间为50ms时的历史配置参数。进而,控制器103可将预测出的实际执行时间为50ms时的历史配置参数确定为ISP的目标配置参数。
在另一些实施例中,控制器103确定出ISP的目标执行时间1为50ms后,也可以直接按照图5中的(a)或(b)所示的对应关系,确定ISP的目标配置参数中的频率。此时,控制器103无需在表1所示的历史配置参数表中查询与50ms的实际执行时间对应的历史配置参数,便可为ISP确定出对应的目标配置参数。
上述实施例中是以控制器103为ISP先确定目标执行时间1,再进一步确定频率等其他目标配置参数举例说明的。可以理解的是,控制器103还可以按照上述方法确定CPU和GPU等其他加速器的目标配置参数,使得除了成为性能瓶颈的NPU之外的其他加速器均可获得对应的目标配置参数,本申请实施例对此不做任何限制。
另外,在一些场景中,可预先设置芯片系统100中的一个或多个加速器不参与上述目标配置参数的确定过程。例如,由于CPU等高性能的加速器需要处理不定期的突发性任务,如果降低CPU的频率可能会导致CPU遇到突发性任务后无法有效完成该任务的情况,因此,可设置CPU不参与上述目标配置参数的确定过程。此时,控制器103可以按照上述方法确定ISP和GPU的目标配置参数,而CPU可继续按照当前的配置参数工作。
S306、芯片系统100中的控制器103控制各个加速器按照对应的目标配置参数继续运行第一任务流。
仍以NPU为执行上述任务流1时的性能瓶颈举例,控制器103按照上述方法确定了ISP、CPU和GPU的目标配置参数后,可将ISP的目标配置参数下发给ISP,将CPU的目标配置参数下发给CPU,并将GPU的目标配置参数下发给GPU。
ISP接收到相应的目标配置参数后,可将正在使用的频率、电压等配置参数修改为目标配置参数中对应的参数,使得ISP可按照对应的目标配置参数继续执行任务流1中的任务1。类似的,CPU接收到相应的目标配置参数后,可将正在使用的频率、电压等配置参数修改为目标配置参数中对应的参数,使得CPU可按照对应的目标配置参数继续执行任务流1中的任务2。GPU接收到相应的目标配置参数后,可将正在使用的频率、电压等配置参数修改为目标配置参数中对应的参数,使得GPU可按照对应的目标配置参数继续执行任务流1中的任务4。
这样一来,除NPU之外芯片系统100中每个加速器执行任务时的各项配置参数与对应的目标配置参数相同,而各个加速器的目标配置参数,是控制器103基于NPU的预测执行时间为各个加速器确定的在不影响当前运行性能的同时能够减少功耗开销的具体配置参数。那么,各个加速器按照对应的目标配置参数运行后,可以在不影响任务流1的运行性能的同时,最大程度的降低各个加速器的功耗,从而减少资源和功耗的浪费。
在一些场景中,当芯片系统100的整体功耗降低后,会导致可利用的资源增加,此时, 原本作为性能瓶颈的NPU可以获得更多的资源运行相应任务。这样,NPU后续执行任务的实际执行时间也可能降低,甚至可使得任务流1运行过程中的性能瓶颈消失,从而提升整个芯片系统100的性能。
另外,仍以NPU为执行上述任务流1时的性能瓶颈举例,当各个加速器按照对应的目标配置参数执行任务流1中的各项任务后,各个加速器可以继续将每次执行任务后得到的历史配置参数上报给调度器102,使得芯片系统100可循环执行步骤S302-S306,从而能够实时检测出循环执行任务流1时的性能瓶颈,并根据成为性能瓶颈的加速器的预测执行时间动态的调整其他加速器的配置参数,从而持续性的降低芯片系统100在运行任务流1时的资源和功耗浪费。
在本申请的另一些实施例中,芯片系统100的调度器102在上述步骤S302中获取到历史配置参数表后,也可以直接基于该历史配置参数表识别执行第一任务流时成为性能瓶颈的第一加速器,无需预测每个加速器执行任务的预测执行时间。也就是说,如图6所示,在步骤S302之后,芯片系统100可执行下述步骤S601-S603,步骤S601-S603可替换上述实施例中的步骤S303-S306。
S601、芯片系统100中的控制器103根据最近一次N个加速器执行任务时的实际执行时间,识别执行第一任务流时成为性能瓶颈的第一加速器。
与上述步骤S303-S304不同的是,在步骤S601中,控制器103可以从表1所示的历史配置参数表中获取最近一次N个加速器执行任务时的实际执行时间。例如,最近一次ISP执行任务1的实际执行时间为T1,最近一次CPU执行任务2的实际执行时间为T2,最近一次NPU执行任务3的实际执行时间为T3,最近一次GPU执行任务4的实际执行时间为T4。进而,控制器103可根据实际执行时间为T1、实际执行时间为T2、实际执行时间为T3以及实际执行时间为T4,确定满足预设的性能瓶颈条件的第一加速器。
例如,该性能瓶颈条件为实际执行时间最大的加速器。那么,如果T2为T1-T4中的最大值,则控制器103可将与T2对应的CPU确定为执行第一任务流时成为性能瓶颈的第一加速器,即CPU为满足性能瓶颈条件的第一加速器。
S602、芯片系统100中的控制器103根据第一加速器的实际执行时间,设置其他加速器的目标配置参数。
仍以CPU为执行上述任务流1时的性能瓶颈举例,在步骤S602中,与步骤S305不同的是,控制器103可根据CPU的实际执行时间设置芯片系统100中其他加速器的目标配置参数,而不是根据CPU的预测执行时间设置其他加速器的目标配置参数。
其中,控制器103根据CPU的实际执行时间设置其他加速器的目标配置参数的过程,与根据CPU的预测执行时间设置其他加速器的目标配置参数的过程类似,故此处不予赘述。
S603、芯片系统100中的控制器103控制各个加速器按照对应的目标配置参数继续运行第一任务流。
其中,步骤S603中控制器103控制各个加速器按照对应的目标配置参数继续运行第一任务流的过程,与上述步骤S306中控制器103控制各个加速器按照对应的目标配置参数继续运行第一任务流的过程相同,故此处不予赘述。
也就是说,在步骤S301-S603中,芯片系统100可根据每个加速器执行任务时的实际执行时间识别出任务流中成为性能瓶颈的第一加速器,进而,可第一加速器的实际执行时 间为各个加速器确定的在不影响当前运行性能的同时能够减少功耗开销的目标配置参数。那么,各个加速器按照对应的目标配置参数运行后,可以在不影响任务流的运行性能的同时,最大程度的降低各个加速器的功耗,从而减少资源和功耗的浪费。
上述主要从芯片系统100的角度对本申请实施例提供的加速器的运行方法进行了介绍。可以理解的是,上述加速器的运行方法也可应用于其他包含多加速器的协同处理装置,例如,服务器、基站或移动终端等。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)执行上述方法实施例所提供的方法中的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当一个设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施例所提供的方法中的步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (30)

  1. 一种多加速器的协同处理装置,其特征在于,包括:N个加速器,调度器以及控制器,N为大于1的整数;其中,
    所述调度器用于:获取所述N个加速器中每个加速器在执行任务时的历史配置参数;
    所述控制器用于:根据获取到的历史配置参数,从所述N个加速器中识别第一加速器,所述第一加速器满足预设的性能瓶颈条件;根据所述第一加速器的历史配置参数优化第二加速器的目标配置参数,以使得所述第二加速器按照优化后的目标配置参数运行,所述第二加速器为所述N个加速器中除所述第一加速器外的加速器。
  2. 根据权利要求1所述的装置,其特征在于,所述第二加速器按照所述目标配置参数执行任务时的第一执行时间大于或等于所述第二加速器按照历史配置参数执行任务时的第二执行时间。
  3. 根据权利要求1所述的装置,其特征在于,所述控制器根据获取到的历史配置参数,从所述N个加速器中识别第一加速器,具体包括:
    所述控制器根据所述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件。
  4. 根据权利要求3所述的装置,其特征在于,所述控制器根据所述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,具体包括:
    所述控制器根据所述N个加速器中每个加速器最近一次执行任务时的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间;
    所述控制器根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件。
  5. 根据权利要求4所述的装置,其特征在于,所述控制器根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件,具体包括:
    若第一预测执行时间为所述N个预测执行时间中的最大值,则所述控制器确定与所述第一预测执行时间对应的第一加速器满足所述性能瓶颈条件。
  6. 根据权利要求4所述的装置,其特征在于,在所述控制器根据所述N个加速器中每个加速器的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间之后,所述控制器还用于:确定所述N个预测执行时间中每个预测执行时间的置信度;
    其中,所述控制器根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件,具体包括:
    若第一预测执行时间为所述N个预测执行时间中的最大值,且所述第一预测执行时间的置信度大于预设值,则所述控制器确定与所述第一预测执行时间对应的第一加速器满足所述性能瓶颈条件。
  7. 根据权利要求3所述的装置,其特征在于,所述历史配置参数包括最近一次执行任务时的实际执行时间;其中,所述控制器根据所述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,具体包括:
    所述控制器确定所述N项历史配置参数中实际执行时间最大的第一历史配置参 数;
    所述控制器确定与所述第一历史配置参数对应的第一加速器满足所述性能瓶颈条件。
  8. 根据权利要求1-7中任一项所述的装置,其特征在于,所述控制器根据所述第一加速器的历史配置参数优化第二加速器的目标配置参数,具体包括:
    所述控制器根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间;
    所述控制器按照所述第二加速器执行任务的目标执行时间,设置所述第二加速器的目标配置参数。
  9. 根据权利要求8所述的装置,其特征在于,所述控制器根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间,具体包括:
    所述控制器获取所述第一加速器的历史配置参数中的实际执行时间;
    所述控制器获取为所述第二加速器预设的最大工作时延,所述最大工作时延为所述第二加速器执行任务时花费的时间上限值;
    所述控制器将所述实际执行时间与所述最大工作时延中的最小值确定为所述第二加速器执行任务的目标执行时间。
  10. 根据权利要求8所述的装置,其特征在于,所述控制器根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间,具体包括:
    所述控制器获取所述第一加速器下一次执行任务时所需的第一预测执行时间;
    所述控制器获取为所述第二加速器预设的最大工作时延,所述最大工作时延为所述第二加速器执行任务时花费的时间上限值;
    所述控制器将所述第一预测执行时间与所述最大工作时延中的最小值确定为所述第二加速器执行任务的目标执行时间。
  11. 根据权利要求8-10中任一项所述的装置,其特征在于,所述控制器按照所述第二加速器执行任务的目标执行时间,设置所述第二加速器的目标配置参数,具体包括:
    所述控制器查询是否记录有与所述第二加速器的所述目标执行时间对应的第二历史配置参数;
    若记录有与所述目标执行时间对应的第二历史配置参数,则所述控制器将所述第二历史配置参数设置为所述第二加速器的目标配置参数。
  12. 根据权利要求11所述的装置,其特征在于,若没有记录与所述目标执行时间对应的第二历史配置参数,则所述控制器还用于:
    为所述第二加速器确定与所述目标执行时间时对应的频率区间;
    根据为所述第二加速器预设的性能曲线或功耗曲线在所述频率区间内确定目标频率,所述目标频率为所述第二加速器的目标配置参数中的一项。
  13. 根据权利要求1-12中任一项所述的装置,其特征在于,所述控制器还用于:
    根据所述第一加速器的历史配置参数优化第三加速器的目标配置参数,以使得所述第三加速器按照优化后的目标配置参数运行,所述第三加速器为所述N个加速器中除所述第一加速器和所述第二加速器之外的加速器。
  14. 根据权利要求1-13中任一项所述的装置,其特征在于,所述调度器获取所述N个加速器中每个加速器在执行任务时的历史配置参数,具体包括:
    所述调度器获取所述N个加速器中每个加速器执行每次任务时的历史配置参数,得到历史配置参数表。
  15. 根据权利要求1-14中任一项所述的装置,其特征在于,所述N个加速器中的每个加速器用于循环执行第一任务流中的任务,所述第一任务流包括M个任务,M大于或等于N。
  16. 一种加速器的运行方法,其特征在于,所述方法应用于多加速器的协同处理装置,所述装置包括N个加速器,其中每个加速器用于执行对应的任务,N为大于1的整数;所述方法包括:
    获取所述N个加速器中每个加速器在执行任务时的历史配置参数;
    根据获取到的历史配置参数,从所述N个加速器中识别第一加速器,所述第一加速器满足预设的性能瓶颈条件;
    根据所述第一加速器的历史配置参数优化第二加速器的目标配置参数,以使得所述第二加速器按照优化后的目标配置参数运行,所述第二加速器为所述N个加速器中除所述第一加速器外的加速器。
  17. 根据权利要求16所述的方法,其特征在于,根据获取到的历史配置参数,从所述N个加速器中识别第一加速器,具体包括:
    根据所述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件。
  18. 根据权利要求17所述的方法,其特征在于,根据所述N个加速器的历史配置参数,确定第一加速器满足预设的性能瓶颈条件,包括:
    根据所述N个加速器中每个加速器最近一次执行任务时的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间;
    根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件。
  19. 根据权利要求18所述的方法,其特征在于,根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件,包括:
    若第一预测执行时间为所述N个预测执行时间中的最大值,则确定与所述第一预测执行时间对应的第一加速器满足所述性能瓶颈条件。
  20. 根据权利要求18所述的方法,其特征在于,在根据所述N个加速器中每个加速器的历史配置参数预测对应加速器下一次执行任务时所需的预测执行时间,得到N个预测执行时间之后,还包括:
    确定所述N个预测执行时间中每个预测执行时间的置信度;
    其中,根据所述N个预测执行时间确定所述第一加速器满足预设的性能瓶颈条件,包括:
    若第一预测执行时间为所述N个预测执行时间中的最大值,且所述第一预测执行时间的置信度大于预设值,则确定与所述第一预测执行时间对应的第一加速器满足所述性能瓶颈条件。
  21. 根据权利要求17所述的方法,其特征在于,所述历史配置参数包括最近一次执行任务时的实际执行时间;其中,根据所述N个加速器的历史配置参数,确定第一 加速器满足预设的性能瓶颈条件,包括:
    确定所述N项历史配置参数中实际执行时间最大的第一历史配置参数;
    确定与所述第一历史配置参数对应的第一加速器满足所述性能瓶颈条件。
  22. 根据权利要求16-21中任一项所述的方法,其特征在于,根据所述第一加速器的历史配置参数优化第二加速器的目标配置参数,包括:
    根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间;
    按照所述第二加速器执行任务的目标执行时间,设置所述第二加速器的目标配置参数。
  23. 根据权利要求22所述的方法,其特征在于,根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间,包括:
    获取所述第一加速器的历史配置参数中的实际执行时间;
    获取为所述第二加速器预设的最大工作时延,所述最大工作时延为所述第二加速器执行任务时花费的时间上限值;
    将所述实际执行时间与所述最大工作时延中的最小值确定为所述第二加速器执行任务的目标执行时间。
  24. 根据权利要求22所述的方法,其特征在于,根据所述第一加速器的历史配置参数,设置所述第二加速器执行任务的目标执行时间,包括:
    获取所述第一加速器下一次执行任务时所需的第一预测执行时间;
    获取为所述第二加速器预设的最大工作时延,所述最大工作时延为所述第二加速器执行任务时花费的时间上限值;
    将所述第一预测执行时间与所述最大工作时延中的最小值确定为所述第二加速器执行任务的目标执行时间。
  25. 根据权利要求16-24中任一项所述的方法,其特征在于,按照所述第二加速器执行任务的目标执行时间,设置所述第二加速器的目标配置参数,包括:
    查询是否记录有与所述第二加速器的所述目标执行时间对应的第二历史配置参数;
    若记录有与所述目标执行时间对应的第二历史配置参数,则将所述第二历史配置参数设置为所述第二加速器的目标配置参数。
  26. 根据权利要求25所述的方法,其特征在于,若没有记录与所述目标执行时间对应的第二历史配置参数,则所述方法还包括:
    为所述第二加速器确定与所述目标执行时间时对应的频率区间;
    根据为所述第二加速器预设的性能曲线或功耗曲线在所述频率区间内确定目标频率,所述目标频率为所述第二加速器的目标配置参数中的一项。
  27. 根据权利要求16-26中任一项所述的方法,其特征在于,所述方法还包括:
    根据所述第一加速器的历史配置参数优化第三加速器的目标配置参数,以使得所述第三加速器按照优化后的目标配置参数运行,所述第三加速器为所述N个加速器中除所述第一加速器和所述第二加速器之外的加速器。
  28. 根据权利要求16-27中任一项所述的方法,其特征在于,获取所述N个加速器 中每个加速器在执行任务时的历史配置参数,具体包括:
    获取所述N个加速器中每个加速器执行每次任务时的历史配置参数,得到历史配置参数表。
  29. 根据权利要求16-28中任一项所述的方法,其特征在于,所述N个加速器中的每个加速器用于循环执行第一任务流中的任务,所述第一任务流包括M个任务,M大于或等于N。
  30. 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行权利要求16-29中任一项所述的加速器的运行方法。
CN202180093745.5A 2021-02-24 2021-02-24 一种加速器的运行方法及装置 Pending CN116868168A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/077739 WO2022178731A1 (zh) 2021-02-24 2021-02-24 一种加速器的运行方法及装置

Publications (1)

Publication Number Publication Date
CN116868168A true CN116868168A (zh) 2023-10-10

Family

ID=83048599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180093745.5A Pending CN116868168A (zh) 2021-02-24 2021-02-24 一种加速器的运行方法及装置

Country Status (2)

Country Link
CN (1) CN116868168A (zh)
WO (1) WO2022178731A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588808B2 (en) * 2013-05-31 2017-03-07 Nxp Usa, Inc. Multi-core system performing packet processing with context switching
US20160378551A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive hardware acceleration based on runtime power efficiency determinations
US10755242B2 (en) * 2016-09-23 2020-08-25 Intel Corporation Bitcoin mining hardware accelerator with optimized message digest and message scheduler datapath
US11157064B2 (en) * 2017-09-28 2021-10-26 Intel Corporation Techniques to dynamically enable and disable accelerator devices in compute environments
US10444813B2 (en) * 2017-09-28 2019-10-15 Intel Corporation Multi-criteria power management scheme for pooled accelerator architectures
US11334399B2 (en) * 2019-08-15 2022-05-17 Intel Corporation Methods and apparatus to manage power of deep learning accelerator systems

Also Published As

Publication number Publication date
WO2022178731A1 (zh) 2022-09-01

Similar Documents

Publication Publication Date Title
Geng et al. Energy-efficient computation offloading for multicore-based mobile devices
US7730340B2 (en) Method and apparatus for dynamic voltage and frequency scaling
US11934871B1 (en) Task scheduling method and apparatus, electronic device, and readable storage medium
US8543993B2 (en) Compiler, compile method, and processor core control method and processor
US8984520B2 (en) Resource modeling and scheduling for extensible computing platforms
US7689838B2 (en) Method and apparatus for providing for detecting processor state transitions
KR101411756B1 (ko) 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit
US20150046679A1 (en) Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems
CN110717574B (zh) 一种神经网络运行方法、装置及异构智能芯片
KR20130004502A (ko) 프로세서에서 스레드들을 실행하는 시스템 및 방법
WO2017080276A1 (zh) 资源管理方法和系统、计算机存储介质
JP2009025939A (ja) タスク制御方法及び半導体集積回路
US11537429B2 (en) Sub-idle thread priority class
US20130080809A1 (en) Server system and power managing method thereof
US20030177163A1 (en) Microprocessor comprising load monitoring function
CN114217966A (zh) 基于资源调整的深度学习模型动态批处理调度方法和系统
WO2012113232A1 (zh) 调整时钟中断周期的方法和装置
US20230127112A1 (en) Sub-idle thread priority class
CN103543982B (zh) 一种时钟频率管理方法及移动设备
Liu et al. Task offloading with execution cost minimization in heterogeneous mobile cloud computing
CN110955503A (zh) 任务调度方法及装置
WO2024021475A1 (zh) 一种容器调度方法及装置
CN116868168A (zh) 一种加速器的运行方法及装置
Chen et al. Adaptive dynamic power management for hard real-time pipelined multiprocessor systems
KR101573781B1 (ko) 우선 순위 기반 저전력 태스크 스케줄링 장치 및 방법

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