CN112214315B - 一种芯片控制方法、装置、人工智能芯片及终端设备 - Google Patents
一种芯片控制方法、装置、人工智能芯片及终端设备 Download PDFInfo
- Publication number
- CN112214315B CN112214315B CN202011013518.0A CN202011013518A CN112214315B CN 112214315 B CN112214315 B CN 112214315B CN 202011013518 A CN202011013518 A CN 202011013518A CN 112214315 B CN112214315 B CN 112214315B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- chip
- subtask
- computing element
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 40
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 230000001965 increasing effect Effects 0.000 claims abstract description 35
- 238000003062 neural network model Methods 0.000 claims abstract description 35
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 30
- 230000009467 reduction Effects 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 14
- 238000000354 decomposition reaction Methods 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 11
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
-
- 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)
- Feedback Control In General (AREA)
Abstract
本申请属于人工智能芯片技术领域,尤其涉及一种芯片控制方法、装置、人工智能芯片及终端设备。所述方法应用于人工智能芯片中,所述方法包括:获取待处理的神经网络模型计算任务;将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。通过本申请,使得人工智能芯片在启动工作及结束工作的时候均可正常工作。
Description
技术领域
本申请属于人工智能芯片技术领域,尤其涉及一种芯片控制方法、装置、人工智能芯片及终端设备。
背景技术
随着人工智能技术的不断发展,人工智能芯片的算力需求呈指数级别的增长,算力大意味着功耗也随之增大,当人工智能芯片从待机状态进入全速工作时或者从全速工作退出至待机状态时,功耗变化非常之大,也即工作电流抖动非常之大,但是电源供电芯片对电流的抖动有一定的要求,如图1所示,如果抖动超过了该要求,则会发生供电电压不稳定的现象,也即供电电压出现较大波动,如果波动太大超出人工智能芯片的正常工作电压,则可能导致人工智能芯片无法正常工作。
发明内容
有鉴于此,本申请实施例提供了一种芯片控制方法、装置、人工智能芯片及终端设备,以解决大算力的人工智能芯片在启动工作和结束工作的时候电流抖动大,以至于芯片无法正常工作的问题。
本申请实施例的第一方面提供了一种芯片控制方法,应用于人工智能芯片中,可以包括:
获取待处理的神经网络模型计算任务;
将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;
执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;
执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;
执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。
在本申请实施例的一种具体实现中,所述在所述第一子任务的执行过程中,逐步提升芯片功耗,包括:
将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,N为正整数;
将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段;
在第n个功耗提升阶段,从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,并启动所述待启动群组,1≤n≤N;
所述在所述第三子任务的执行过程中,逐步降低芯片功耗,包括:
将所述第三子任务按照执行顺序依次分解为N个功耗降低阶段;
在第n个功耗降低阶段,从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,并关闭所述待关闭群组。
进一步地,所述将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,包括:
确定所述人工智能芯片的功耗波动阈值;
根据所述功耗波动阈值将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,其中,每个计算元件群组的功耗小于所述功耗波动阈值。
进一步地,所述从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,包括:
分别确定各个计算元件群组的工作优先级;
从尚未启动的计算元件群组中选取一个工作优先级最高的计算元件群组作为所述待启动群组;
所述从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,包括:
从已启动的计算元件群组中选取一个工作优先级最低的计算元件群组作为所述待关闭群组。
进一步地,所述分别确定各个计算元件群组的工作优先级,包括:
分别确定各个计算元件群组的累计运行时长;
根据各个计算元件群组的累计运行时长分别确定各个计算元件群组的优先级,其中,任一计算元件群组的优先级与其累计运行时长负相关。
进一步地,每个功耗提升阶段和每个功耗降低阶段均包括卷积运算和非卷积运算,每个计算元件群组均包括计算单元阵列和矢量处理单元,所述计算单元阵列用于进行卷积计算,所述矢量处理单元用于进行非卷积计算。
在本申请实施例的另一种具体实现中,所述在所述第一子任务的执行过程中,逐步提升芯片功耗,包括:
将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段,N为正整数;
分别设置各个功耗提升阶段的目标频率,其中,第n+1个功耗提升阶段的目标频率大于第n个功耗提升阶段的目标频率,1≤n≤N;
在第n个功耗提升阶段,将所述人工智能芯片中的工作频率提升至第n个功耗提升阶段的目标频率;
所述在所述第三子任务的执行过程中,逐步降低芯片功耗,包括:
将所述第三子任务按照执行顺序依次分解为N个功率降低阶段;
分别设置各个功率降低阶段的目标频率,其中,第n+1个功率降低阶段的目标频率小于第n个功率降低阶段的目标频率;
在第n个功率降低阶段,将所述人工智能芯片中的工作频率降低至第n个功率降低阶段的目标频率。
本申请实施例的第二方面提供了一种芯片控制装置,可以包括:
计算任务获取模块,用于获取待处理的神经网络模型计算任务;
任务分解模块,用于将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;
功耗提升模块,用于执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;
功耗保持模块,用于执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;
功耗降低模块,用于执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。
本申请实施例的第三方面提供了一种人工智能芯片,所述人工智能芯片执行时实现上述任一种芯片控制方法的步骤。
本申请实施例的第四方面提供了一种终端设备,所述终端设备包括所述芯片。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例在获取到待处理的神经网络模型计算任务之后,将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务,并依次执行这三个子任务,在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗,在所述第二子任务的执行过程中,保持所述峰值功耗,在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。通过这样的方式,无论是在人工智能芯片启动工作的时候,还是在结束工作的时候,都可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为人工智能芯片的供电电压出现较大波动的情形的示意图;
图2为本申请实施例中一种芯片控制方法的一个实施例流程图;
图3为将神经网络模型计算任务按照执行顺序依次分解为三个子任务的示意图;
图4为将人工智能芯片中的各个计算元件划分为若干个计算元件群组的示意图;
图5为将第一子任务按照执行顺序依次分解为若干个功耗提升阶段的示意图;
图6为依次启动各个计算元件群组的示意图;
图7为依次提升人工智能芯片的工作频率的示意图;
图8为将第三子任务按照执行顺序依次分解为若干个功耗降低阶段的示意图;
图9为依次关闭各个计算元件群组的示意图;
图10为依次降低人工智能芯片的工作频率的示意图;
图11为本申请实施例中一种芯片控制装置的一个实施例结构图;
图12为本申请实施例中一种终端设备的示意框图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例提供的芯片控制方法主要应用于人工智能(ArtificialIntelligence,AI)芯片中,所述人工智能芯片为能够运行人工智能算法的芯片,尤其是针对人工智能算法做了特殊加速设计的芯片,现阶段,这些人工智能算法一般以深度学习算法为主,也可以包括其它机器学习算法。
请参阅图2,本申请实施例中一种芯片控制方法的一个实施例可以包括:
步骤S201、获取待处理的神经网络模型计算任务。
所述神经网络模型计算任务可以是基于任意一种神经网络模型的计算任务,包括但不限于AlexNet、VGGNet、Google Inception Net以及ResNet等神经网络模型的计算任务。
所述神经网络模型计算任务可以由所述人工智能芯片外部的中央处理单元(Central Processing Unit,CPU)下发至所述人工智能芯片。在获取到计算任务之前,所述人工智能芯片处于待机状态,芯片功耗极为微小。
步骤S202、将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务。
如图3所示,所述第一子任务为所述人工智能芯片在启动工作时执行的子任务,所述第二子任务为所述人工智能芯片在全速工作时执行的子任务,所述第三子任务为所述人工智能芯片在结束工作时执行的子任务。三个子任务的具体分解方式可以根据实际情况进行设置,本申请实施例对此不作具体限定。但需要注意的是,在分解过程中,需要保证三个子任务满足以下的执行顺序,即所述第一子任务应早于所述第二子任务执行,且所述第二子任务应早于所述第三子任务执行。
步骤S203、执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗。
在本申请实施例的一种具体实现中,可以通过如下的逐步分批次增加计算元件的方式来实现逐步提升芯片功耗:
步骤S2031a、将所述人工智能芯片中的各个计算元件划分为N个计算元件群组。
其中,N为正整数,且N≥2。
所述人工智能芯片中包括较大算力的计算单元阵列(Processing Element,PE)以及为提供芯片灵活性的矢量处理单元(Vector Unit,VU)等计算元件,所述计算单元阵列一般用于进行卷积计算,所述矢量处理单元一般用于进行非卷积计算。
在进行计算元件群组划分的过程中,可以首先确定所述人工智能芯片的功耗波动阈值,所述功耗波动阈值为保证所述人工智能芯片正常工作的前提下所能承受的最大功耗波动,其具体取值可以根据对所述人工智能芯片的实际测试情况进行设置,首先,获取对所述人工智能芯片的功耗测试记录,该功耗测试记录为对测试过程的记录信息,在测试过程中,可以将所述人工智能芯片的功耗从一个较低的值(记为LowVal)迅速提升至一个较高的值(记为HighVal),或者从一个较高的值迅速降低至一个较低的值,两者的差值(HighVal-LowVal)即为功耗波动值,在功耗发生波动的同时,获取此时的芯片工作状态,判断其是否发生异常。反复重复以上测试过程,每次测试通过对LowVal及HighVal取值的调整得到不同的功耗波动值。在测试完成之后,可以从所述功耗测试记录中提取所述人工智能芯片的各个工作状态样本,其中,每个工作状态样本均包括一个功耗波动值以及一个与该功耗波动值对应的芯片工作状态。剔除掉芯片工作状态为异常的工作状态样本,只保留芯片工作状态为正常的工作状态样本作为候选工作样本,最后将候选工作状态样本中最大的功耗波动值确定为所述功耗波动阈值。此处将所述功耗波动阈值记为MaxValue,对于不同的人工智能芯片,其对应的功耗波动阈值也不相同。
在确定所述功耗波动阈值之后,则可以根据所述功耗波动阈值将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,其中,每个计算元件群组均可独立工作,且每个计算元件群组的功耗小于所述功耗波动阈值。以任意一个计算元件群组为例,假设其中共包括K个计算元件,将第k个计算元件的功耗记为Valuek,1≤k≤K,则该计算元件群组应满足以下条件:
通过这样的方式,可以将每个计算元件群组所带来的功耗波动均控制在一个较小的范围内,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
优选地,可以将所述人工智能芯片中的PE和VU对等分为N份,即每个计算元件群组中均包括相同数量的计算单元阵列以及矢量处理单元,从而保证了各个计算元件群组计算能力的均衡性。图4所示即为N=4时的计算元件群组划分示意图。
步骤S2032a、将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段。
图5所示即为所述第一子任务的分解示意图。各个功耗提升阶段的具体分解方式可以根据实际情况进行设置,本申请实施例对此不作具体限定。但需要注意的是,在分解过程中,需要保证各个功耗提升阶段满足以下的执行顺序,即第1个功耗提升阶段应早于第2个功耗提升阶段执行,第2个功耗提升阶段应早于第3个功耗提升阶段执行,…,第n-1个功耗提升阶段应早于第n个功耗提升阶段执行,…,第N-1个功耗提升阶段应早于第N个功耗提升阶段执行,1≤n≤N。优选地,每个功耗提升阶段均包括卷积运算和非卷积运算。
步骤S2033a、在各个功耗提升阶段,依次启动各个计算元件群组。
具体地,在第n个功耗提升阶段,从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,并启动所述待启动群组,在所述第一子任务的初始状态下,所有的计算元件群组均处于未启动状态,将n的取值从1遍历到N,即可依次启动各个计算元件群组。
在从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组的过程中,可以根据实际情况随机进行选取,也可以分别确定各个计算元件群组的工作优先级,然后从尚未启动的计算元件群组中选取一个工作优先级最高的计算元件群组作为所述待启动群组。
在分别确定各个计算元件群组的工作优先级时,可以首先分别确定各个计算元件群组的累计运行时长,然后根据各个计算元件群组的累计运行时长分别确定各个计算元件群组的优先级,其中,任一计算元件群组的优先级与其累计运行时长负相关,即某个计算元件群组的累计运行时长越长,则其优先级越低,反之,某个计算元件群组的累计运行时长越短,则其优先级越高。通过这样的方式,累计运行时长较短的计算元件群组可以早于其它累计运行时长较长的计算元件群组启动,使得所有计算元件的运行时长尽量等长,避免出现只对部分计算元件过度使用所导致的损耗不均的情况。
图6所示即为依次启动各个计算元件群组的示意图。如图所示,N=4,在第1个功耗提升阶段,启动优先级最高的一个计算元件群组,此时只有1个计算元件群组处于工作状态,其余3个计算元件群组仍处于未启动状态,功耗开始提升;在第2个功耗提升阶段,启动优先级次高的一个计算元件群组,此时只有2个计算元件群组处于工作状态,其余2个计算元件群组仍处于未启动状态,功耗继续提升;在第3个功耗提升阶段,启动优先级次低的一个计算元件群组,此时有3个计算元件群组处于工作状态,其余1个计算元件群组仍处于未启动状态,功耗进一步提升;在第4个功耗提升阶段,启动优先级最低的一个计算元件群组,此时4个计算元件群组均处于工作状态,功耗提升至峰值功耗。
通过上述逐步分批次增加计算元件的方式可以实现逐步提升芯片功耗,在人工智能芯片启动工作的时候,可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
在本申请实施例的另一种具体实现中,还可以通过如下的逐步提升工作频率的方式来实现逐步提升芯片功耗:
步骤S2031b、将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段。
具体的分解过程可以参照步骤S2031a中的叙述,此处不再赘述。
步骤S2032b、分别设置各个功耗提升阶段的目标频率。
其中,第n+1个功耗提升阶段的目标频率大于第n个功耗提升阶段的目标频率。将各个功耗提升阶段的目标频率依次记为:freqU1、freqU2、…、freqUN,则有:freqU1<freqU2<…<freqUn<freqUn+1<…<freqUN-1<freqUN。
步骤S2033c、在各个功耗提升阶段,依次提升所述人工智能芯片的工作频率。
具体地,在第n个功耗提升阶段,将所述人工智能芯片的工作频率提升至第n个功耗提升阶段的目标频率,也即将所述人工智能芯片的工作频率由freqUn-1提升至freqUn。特殊地,freq0为所述人工智能芯片的待机频率,即在待机状态下的工作频率。
图7所示即为依次提升所述人工智能芯片的工作频率的示意图。如图所示,N=4,在第1个功耗提升阶段,将芯片的工作频率由freq0提升至freqU1,图中所示freqU1为100Hz,功耗开始提升;在第2个功耗提升阶段,将芯片的工作频率由freqU1提升至freqU2,图中所示freqU2为200Hz,功耗继续提升;在第3个功耗提升阶段,将芯片的工作频率由freqU2提升至freqU3,图中所示freqU3为400Hz,功耗进一步提升;在第4个功耗提升阶段,将芯片的工作频率由freqU3提升至freqU4,图中所示freqU4为600Hz,功耗提升至峰值功耗。
通过上述逐步提升工作频率的方式可以实现逐步提升芯片功耗,在人工智能芯片启动工作的时候,可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
步骤S204、执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗。
即保持人工智能芯片全速工作的状态,人工智能芯片的功耗将稳定在所述峰值功耗附近,不会产生较大起伏。
步骤S205、执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。
容易理解地,步骤S205为步骤S203的逆过程,在本申请实施例的一种具体实现中,可以通过如下的逐步分批次减少计算元件的方式来实现逐步降低芯片功耗:
步骤S2051a、将所述第三子任务按照执行顺序依次分解为N个功耗降低阶段。
图8所示即为所述第三子任务的分解示意图。各个功耗降低阶段的具体分解方式可以根据实际情况进行设置,本申请实施例对此不作具体限定。但需要注意的是,在分解过程中,需要保证各个功耗降低阶段满足以下的执行顺序,即第1个功耗降低阶段应早于第2个功耗降低阶段执行,第2个功耗降低阶段应早于第3个功耗降低阶段执行,…,第n-1个功耗降低阶段应早于第n个功耗降低阶段执行,…,第N-1个功耗降低阶段应早于第N个功耗降低阶段执行。优选地,每个功耗降低阶段均包括卷积运算和非卷积运算。
步骤S2052b、在各个功耗降低阶段,依次关闭各个计算元件群组。
具体地,在第n个功耗降低阶段,从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,并关闭所述待关闭群组,在所述第三子任务的初始状态下,所有的计算元件群组均处于工作状态,将n的取值从1遍历到N,即可依次关闭各个计算元件群组。
在从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组的过程中,可以根据实际情况随机进行选取,也可以从已启动的计算元件群组中选取一个工作优先级最低的计算元件群组作为所述待关闭群组。通过这样的方式,累计运行时长较短的计算元件群组可以晚于其它累计运行时长较长的计算元件群组关闭,使得所有计算元件的运行时长尽量等长,避免出现只对部分计算元件过度使用所导致的损耗不均的情况。
图9所示即为依次关闭各个计算元件群组的示意图,N=4,图9可视为图6的逆过程,在第1个功耗降低阶段,关闭优先级最低的一个计算元件群组,此时只有1个计算元件群组处于关闭状态,其余3个计算元件群组仍处于工作状态,功耗开始降低;在第2个功耗降低阶段,关闭优先级次低的一个计算元件群组,此时只有2个计算元件群组处于关闭状态,其余2个计算元件群组仍处于工作状态,功耗继续降低;在第3个功耗降低阶段,关闭优先级次高的一个计算元件群组,此时有3个计算元件群组处于关闭状态,其余1个计算元件群组仍处于工作状态,功耗进一步降低;在第4个功耗降低阶段,也即所述神经网络模型计算任务完成时,关闭优先级最高的一个计算元件群组,此时4个计算元件群组均处于关闭状态,此时,人工智能芯片恢复至待机状态,功耗降低至最低水平。
通过上述逐步分批次减少计算元件的方式可以实现逐步降低芯片功耗,在人工智能芯片结束工作的时候,可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
在本申请实施例的另一种具体实现中,还可以通过如下的逐步降低工作频率的方式来实现逐步降低芯片功耗:
步骤S2051b、将所述第三子任务按照执行顺序依次分解为N个功耗降低阶段。
具体的分解过程可以参照步骤S2051a中的叙述,此处不再赘述。
步骤S2052b、分别设置各个功耗降低阶段的目标频率。
其中,第n+1个功耗降低阶段的目标频率小于第n个功耗降低阶段的目标频率。将各个功耗降低阶段的目标频率依次记为:freqD1、freqD2、…、freqDN,则有:freqD1>freqD2>…>freqDn>freqDn+1>…>freqDN-1>freqDN。
步骤S2053b、在各个功耗降低阶段,依次降低所述人工智能芯片的工作频率。
具体地,在第n个功耗降低阶段,将所述人工智能芯片的工作频率降低至第n个功耗降低阶段的目标频率,也即将所述人工智能芯片的工作频率由freqDn-1降低至freqDn,特殊地,freqD0=freqUN,freqDN为所述人工智能芯片的待机频率。
图10所示即为依次降低所述人工智能芯片的工作频率的示意图。如图所示,N=4,在第1个功耗降低阶段,将芯片的工作频率由freqD0降低至freqD1,图中所示freqD1为400Hz,功耗开始降低;在第2个功耗降低阶段,将芯片的工作频率由freqD1降低至freqD2,图中所示freqD2为200Hz,功耗继续降低;在第3个功耗降低阶段,将芯片的工作频率由freqD2降低至freqD3,图中所示freqD3为100Hz,功耗进一步降低;在第4个功耗降低阶段,也即所述神经网络模型计算任务完成时,将芯片的工作频率由freqD3降低至待机频率,此时,人工智能芯片恢复至待机状态,功耗降低至最低水平。
通过上述逐步降低工作频率的方式可以实现逐步降低芯片功耗,在人工智能芯片启动工作的时候,可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
综上所述,本申请实施例在获取到待处理的神经网络模型计算任务之后,将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务,并依次执行这三个子任务,在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗,在所述第二子任务的执行过程中,保持所述峰值功耗,在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。通过这样的方式,无论是在人工智能芯片启动工作的时候,还是在结束工作的时候,都可以减少芯片功耗的剧烈变化,保证电流和电压的平稳,使得人工智能芯片能够正常工作。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的一种芯片控制方法,图11示出了本申请实施例提供的一种芯片控制装置的一个实施例结构图。
本实施例中,一种芯片控制装置可以包括:
计算任务获取模块1101,用于获取待处理的神经网络模型计算任务;
任务分解模块1102,用于将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;
功耗提升模块1103,用于执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;
功耗保持模块1104,用于执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;
功耗降低模块1105,用于执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束。
在本申请实施例的一种具体实现中,所述功耗提升模块可以包括:
计算元件群组划分子模块,用于将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,N为正整数;
功耗提升阶段划分子模块,用于将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段;
待启动群组选取子模块,用于在第n个功耗提升阶段,从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,并启动所述待启动群组,1≤n≤N;
所述功耗降低模块可以包括:
功耗降低阶段划分子模块,用于将所述第三子任务按照执行顺序依次分解为N个功耗降低阶段;
待关闭群组选取子模块,用于在第n个功耗降低阶段,从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,并关闭所述待关闭群组。
进一步地,所述计算元件群组划分子模块可以包括:
功耗波动阈值确定单元,用于确定所述人工智能芯片的功耗波动阈值;
计算元件群组划分单元,用于根据所述功耗波动阈值将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,其中,每个计算元件群组的功耗小于所述功耗波动阈值。
进一步地,所述待启动群组选取子模块可以包括:
优先级确定单元,用于分别确定各个计算元件群组的工作优先级;
待启动群组选取单元,用于从尚未启动的计算元件群组中选取一个工作优先级最高的计算元件群组作为所述待启动群组;
进一步地,所述待关闭群组选取子模块可以包括:
待关闭群组选取单元,用于从已启动的计算元件群组中选取一个工作优先级最低的计算元件群组作为所述待关闭群组。
进一步地,所述优先级确定单元可以包括:
累计运行时长确定子单元,用于分别确定各个计算元件群组的累计运行时长;
优先级确定子单元,用于根据各个计算元件群组的累计运行时长分别确定各个计算元件群组的优先级,其中,任一计算元件群组的优先级与其累计运行时长负相关。
进一步地,每个功耗提升阶段和每个功耗降低阶段均包括卷积运算和非卷积运算,每个计算元件群组均包括计算单元阵列和矢量处理单元,所述计算单元阵列用于进行卷积计算,所述矢量处理单元用于进行非卷积计算。
在本申请实施例的另一种具体实现中,所述功耗提升模块可以包括:
功耗提升阶段划分子模块,用于将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段,N为正整数;
目标频率设置第一子模块,用于分别设置各个功耗提升阶段的目标频率,其中,第n+1个功耗提升阶段的目标频率大于第n个功耗提升阶段的目标频率,1≤n≤N;
工作频率提升子模块,用于在第n个功耗提升阶段,将所述人工智能芯片中的工作频率提升至第n个功耗提升阶段的目标频率;
所述功耗降低模块可以包括:
功耗降低阶段划分子模块,用于将所述第三子任务按照执行顺序依次分解为N个功率降低阶段;
目标频率设置第二子模块,用于分别设置各个功率降低阶段的目标频率,其中,第n+1个功率降低阶段的目标频率小于第n个功率降低阶段的目标频率;
工作频率降低子模块,用于在第n个功率降低阶段,将所述人工智能芯片中的工作频率降低至第n个功率降低阶段的目标频率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图12示出了本申请实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。
如图12所示,该实施例的终端设备12包括:处理器120、存储器121、存储在所述存储器121中并可在所述处理器120上运行的计算机程序122、以及人工智能芯片123。所述人工智能芯片执行时实现上述任一种芯片控制方法实施例中的步骤,例如图2所示的步骤S201至步骤S205。或者,所述处理器120执行所述计算机程序122时实现上述各装置实施例中各模块/单元的功能,例如图11所示模块1101至模块1105的功能。
示例性的,所述计算机程序122可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器121中,并由所述处理器120执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序122在所述终端设备12中的执行过程。
所述终端设备12可以是桌上型计算机、笔记本、掌上电脑、智能手机及智能电视等计算设备。本领域技术人员可以理解,图12仅仅是终端设备12的示例,并不构成对终端设备12的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备12还可以包括输入输出设备、网络接入设备、总线等。
所述处理器120可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述处理器120可以是所述终端设备12的神经中枢和指挥中心,所述处理器120可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
所述存储器121可以是所述终端设备12的内部存储单元,例如终端设备12的硬盘或内存。所述存储器121也可以是所述终端设备12的外部存储设备,例如所述终端设备12上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器121还可以既包括所述终端设备12的内部存储单元也包括外部存储设备。所述存储器121用于存储所述计算机程序以及所述终端设备12所需的其它程序和数据。所述存储器121还可以用于暂时地存储已经输出或者将要输出的数据。
所述终端设备12还可以包括通信模块,所述通信模块可以提供应用在网络设备上的包括无线局域网(Wireless Local Area Networks,WLAN)(如Wi-Fi网络),蓝牙,Zigbee,移动通信网络,全球导航卫星系统(Global Navigation Satellite System,GNSS),调频(Frequency Modulation,FM),近距离无线通信技术(Near Field Communication,NFC),红外技术(Infrared,IR)等通信的解决方案。所述通信模块可以是集成至少一个通信处理模块的一个或多个器件。该通信模块可以包括天线,该天线可以只有一个阵元,也可以是包括多个阵元的天线阵列。所述通信模块可以通过天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器。所述通信模块还可以从处理器接收待发送的信号,对其进行调频、放大,经天线转为电磁波辐射出去。
所述终端设备12还可以包括电源管理模块,所述电源管理模块可以接收外接电源、电池和/或充电器的输入,为所述处理器、所述存储器和所述通信模块等供电。
所述终端设备12还可以包括显示模块,所述显示模块可用于显示由用户输入的信息或提供给用户的信息。所述显示模块可包括显示面板,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给所述处理器以确定触摸事件的类型,随后所述处理器根据触摸事件的类型在所述显示面板上提供相应的视觉输出。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在所述终端设备上运行时,使得所述终端设备可实现上述各个方法实施例中的步骤。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (15)
1.一种芯片控制方法,其特征在于,应用于人工智能芯片中,所述方法包括:
获取待处理的神经网络模型计算任务;
将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;
执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;其中,每一步提升的芯片功耗小于功耗波动阈值,所述功耗波动阈值为在所述人工智能芯片正常工作的前提下所能承受的最大功耗波动;
执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;
执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束;其中,每一步降低的芯片功耗小于所述功耗波动阈值。
2.根据权利要求1所述的芯片控制方法,其特征在于,所述在所述第一子任务的执行过程中,逐步提升芯片功耗,包括:
将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,N为正整数;
将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段;
在第n个功耗提升阶段,从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,并启动所述待启动群组,1≤n≤N。
3.根据权利要求2所述的芯片控制方法,其特征在于,所述在所述第三子任务的执行过程中,逐步降低芯片功耗,包括:
将所述第三子任务按照执行顺序依次分解为N个功耗降低阶段;
在第n个功耗降低阶段,从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,并关闭所述待关闭群组。
4.根据权利要求2所述的芯片控制方法,其特征在于,所述将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,包括:
确定所述功耗波动阈值;
根据所述功耗波动阈值将所述人工智能芯片中的各个计算元件划分为N个计算元件群组,其中,每个计算元件群组的功耗小于所述功耗波动阈值。
5.根据权利要求4所述的芯片控制方法,其特征在于,所述确定所述功耗波动阈值,包括:
获取对所述人工智能芯片的功耗测试记录;
从所述功耗测试记录中提取所述人工智能芯片的各个工作状态样本,其中,每个工作状态样本均包括一个功耗波动值以及一个与该功耗波动值对应的芯片工作状态;
将候选工作状态样本中最大的功耗波动值确定为所述功耗波动阈值,所述候选工作状态样本为芯片工作状态为正常的工作状态样本。
6.根据权利要求2所述的芯片控制方法,其特征在于,所述从尚未启动的计算元件群组中选取一个计算元件群组作为待启动群组,包括:
分别确定各个计算元件群组的工作优先级;
从尚未启动的计算元件群组中选取一个工作优先级最高的计算元件群组作为所述待启动群组。
7.根据权利要求3所述的芯片控制方法,其特征在于,所述从已启动的计算元件群组中选取一个计算元件群组作为待关闭群组,包括:
分别确定各个计算元件群组的工作优先级;
从已启动的计算元件群组中选取一个工作优先级最低的计算元件群组作为所述待关闭群组。
8.根据权利要求6或7所述的芯片控制方法,其特征在于,所述分别确定各个计算元件群组的工作优先级,包括:
分别确定各个计算元件群组的累计运行时长;
根据各个计算元件群组的累计运行时长分别确定各个计算元件群组的优先级,其中,任一计算元件群组的优先级与其累计运行时长负相关。
9.根据权利要求3至7中任一项所述的芯片控制方法,其特征在于,每个功耗提升阶段和每个功耗降低阶段均包括卷积运算和非卷积运算,每个计算元件群组均包括计算单元阵列和矢量处理单元,所述计算单元阵列用于进行卷积计算,所述矢量处理单元用于进行非卷积计算。
10.根据权利要求1所述的芯片控制方法,其特征在于,所述在所述第一子任务的执行过程中,逐步提升芯片功耗,包括:
将所述第一子任务按照执行顺序依次分解为N个功耗提升阶段,N为正整数;
分别设置各个功耗提升阶段的目标频率,其中,第n+1个功耗提升阶段的目标频率大于第n个功耗提升阶段的目标频率,1≤n≤N;
在第n个功耗提升阶段,将所述人工智能芯片中的工作频率提升至第n个功耗提升阶段的目标频率。
11.根据权利要求10所述的芯片控制方法,其特征在于,所述在所述第三子任务的执行过程中,逐步降低芯片功耗,包括:
将所述第三子任务按照执行顺序依次分解为N个功率降低阶段;
分别设置各个功率降低阶段的目标频率,其中,第n+1个功率降低阶段的目标频率小于第n个功率降低阶段的目标频率;
在第n个功率降低阶段,将所述人工智能芯片中的工作频率降低至第n个功率降低阶段的目标频率。
12.根据权利要求1至7或10至11中任一项所述的芯片控制方法,其特征在于,在获取待处理的神经网络模型计算任务之前,以及在所述神经网络模型计算任务执行结束之后,所述人工智能芯片均处于待机状态。
13.一种芯片控制装置,其特征在于,包括:
计算任务获取模块,用于获取待处理的神经网络模型计算任务;
任务分解模块,用于将所述神经网络模型计算任务按照执行顺序依次分解为第一子任务、第二子任务和第三子任务;
功耗提升模块,用于执行所述第一子任务;在所述第一子任务的执行过程中,逐步提升芯片功耗,直至达到预设的峰值功耗;其中,每一步提升的芯片功耗小于功耗波动阈值,所述功耗波动阈值为在人工智能芯片正常工作的前提下所能承受的最大功耗波动;
功耗保持模块,用于执行所述第二子任务;在所述第二子任务的执行过程中,保持所述峰值功耗;
功耗降低模块,用于执行所述第三子任务;在所述第三子任务的执行过程中,逐步降低芯片功耗,直至所述神经网络模型计算任务执行结束;其中,每一步降低的芯片功耗小于所述功耗波动阈值。
14.一种人工智能芯片,其特征在于,所述人工智能芯片执行时实现如权利要求1至12中任一项所述的芯片控制方法的步骤。
15.一种终端设备,其特征在于,所述终端设备包括如权利要求14所述的人工智能芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011013518.0A CN112214315B (zh) | 2020-09-23 | 2020-09-23 | 一种芯片控制方法、装置、人工智能芯片及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011013518.0A CN112214315B (zh) | 2020-09-23 | 2020-09-23 | 一种芯片控制方法、装置、人工智能芯片及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214315A CN112214315A (zh) | 2021-01-12 |
CN112214315B true CN112214315B (zh) | 2024-03-29 |
Family
ID=74051825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011013518.0A Active CN112214315B (zh) | 2020-09-23 | 2020-09-23 | 一种芯片控制方法、装置、人工智能芯片及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214315B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102931655A (zh) * | 2011-08-12 | 2013-02-13 | 珠海全志科技股份有限公司 | 一种动态调节电压和频率的电路控制系统和方法 |
CN103197717A (zh) * | 2013-02-28 | 2013-07-10 | 华为技术有限公司 | 自适应电压调整方法、芯片以及系统 |
US8856566B1 (en) * | 2011-12-15 | 2014-10-07 | Apple Inc. | Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened |
CN104322042A (zh) * | 2012-08-29 | 2015-01-28 | 东莞宇龙通信科技有限公司 | 终端和终端工作状态的调整方法 |
CN105487634A (zh) * | 2015-11-24 | 2016-04-13 | 无锡江南计算技术研究所 | 一种面向异构众核芯片的量化功耗控制方法 |
CN106502361A (zh) * | 2016-10-19 | 2017-03-15 | 盛科网络(苏州)有限公司 | 芯片的功耗调节方法、装置及系统 |
CN107239133A (zh) * | 2017-06-01 | 2017-10-10 | 合肥联宝信息技术有限公司 | 一种智能设备的控制方法及装置 |
CN107357405A (zh) * | 2017-06-08 | 2017-11-17 | 华为技术有限公司 | 功耗控制方法及相关设备 |
CN107678855A (zh) * | 2017-09-19 | 2018-02-09 | 中国电子产品可靠性与环境试验研究所 | 处理器动态调节方法、装置及处理器芯片 |
CN108933687A (zh) * | 2017-05-25 | 2018-12-04 | 华为技术有限公司 | 一种功耗控制方法及装置 |
CN109993303A (zh) * | 2019-03-29 | 2019-07-09 | 河南九乾电子科技有限公司 | 用于神经网络与深度学习的计算机加速装置 |
CN110045810A (zh) * | 2017-10-30 | 2019-07-23 | 三星电子株式会社 | 系统芯片以及操作系统芯片的方法 |
US10386909B1 (en) * | 2016-09-28 | 2019-08-20 | Cadence Design Systems, Inc. | Method and system to mitigate large power load steps due to intermittent execution in a computation system |
CN111077979A (zh) * | 2019-12-09 | 2020-04-28 | Oppo广东移动通信有限公司 | 功耗控制方法、存储介质及电子设备 |
CN111309137A (zh) * | 2020-02-18 | 2020-06-19 | 深圳云天励飞技术有限公司 | 一种芯片控制方法、装置、芯片及终端设备 |
CN111523653A (zh) * | 2019-02-03 | 2020-08-11 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190150095A1 (en) * | 2016-08-31 | 2019-05-16 | Ming Yu Lin | Power mode management |
-
2020
- 2020-09-23 CN CN202011013518.0A patent/CN112214315B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102931655A (zh) * | 2011-08-12 | 2013-02-13 | 珠海全志科技股份有限公司 | 一种动态调节电压和频率的电路控制系统和方法 |
US8856566B1 (en) * | 2011-12-15 | 2014-10-07 | Apple Inc. | Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened |
CN104322042A (zh) * | 2012-08-29 | 2015-01-28 | 东莞宇龙通信科技有限公司 | 终端和终端工作状态的调整方法 |
CN103197717A (zh) * | 2013-02-28 | 2013-07-10 | 华为技术有限公司 | 自适应电压调整方法、芯片以及系统 |
CN105487634A (zh) * | 2015-11-24 | 2016-04-13 | 无锡江南计算技术研究所 | 一种面向异构众核芯片的量化功耗控制方法 |
US10386909B1 (en) * | 2016-09-28 | 2019-08-20 | Cadence Design Systems, Inc. | Method and system to mitigate large power load steps due to intermittent execution in a computation system |
CN106502361A (zh) * | 2016-10-19 | 2017-03-15 | 盛科网络(苏州)有限公司 | 芯片的功耗调节方法、装置及系统 |
CN108933687A (zh) * | 2017-05-25 | 2018-12-04 | 华为技术有限公司 | 一种功耗控制方法及装置 |
CN107239133A (zh) * | 2017-06-01 | 2017-10-10 | 合肥联宝信息技术有限公司 | 一种智能设备的控制方法及装置 |
CN107357405A (zh) * | 2017-06-08 | 2017-11-17 | 华为技术有限公司 | 功耗控制方法及相关设备 |
CN107678855A (zh) * | 2017-09-19 | 2018-02-09 | 中国电子产品可靠性与环境试验研究所 | 处理器动态调节方法、装置及处理器芯片 |
CN110045810A (zh) * | 2017-10-30 | 2019-07-23 | 三星电子株式会社 | 系统芯片以及操作系统芯片的方法 |
CN111523653A (zh) * | 2019-02-03 | 2020-08-11 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
CN109993303A (zh) * | 2019-03-29 | 2019-07-09 | 河南九乾电子科技有限公司 | 用于神经网络与深度学习的计算机加速装置 |
CN111077979A (zh) * | 2019-12-09 | 2020-04-28 | Oppo广东移动通信有限公司 | 功耗控制方法、存储介质及电子设备 |
CN111309137A (zh) * | 2020-02-18 | 2020-06-19 | 深圳云天励飞技术有限公司 | 一种芯片控制方法、装置、芯片及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112214315A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324902B (zh) | 一种调整移动终端工作频率的方法、移动终端及存储介质 | |
CN110458294B (zh) | 模型运行方法、装置、终端及存储介质 | |
US11586903B2 (en) | Method and system of controlling computing operations based on early-stop in deep neural network | |
CN107220033A (zh) | 用于控制线程池中线程数量的方法和装置 | |
US10915812B2 (en) | Method and system of managing computing paths in an artificial neural network | |
CN107423127B (zh) | 应用程序的管控方法、装置、存储介质及电子设备 | |
US11513799B2 (en) | Chained buffers in neural network processor | |
CN103189853A (zh) | 用于提供高效情境分类的方法和装置 | |
CN113010312B (zh) | 一种超参数调优方法、装置及存储介质 | |
US9746897B2 (en) | Method for controlling a multi-core central processor unit of a device establishing a relationship between device operational parameters and a number of started cores | |
CN109376055A (zh) | 供电管理方法、系统和电子设备 | |
US8453002B2 (en) | Apparatus and method for controlling power state transitions based on timer events | |
CN112214315B (zh) | 一种芯片控制方法、装置、人工智能芯片及终端设备 | |
KR102567807B1 (ko) | 뉴럴 프로세서 회로에서의 보안 모드 스위칭 | |
CN111309137B (zh) | 一种芯片控制方法、装置、芯片及终端设备 | |
CN116521350B (zh) | 基于深度学习算法的etl调度方法及装置 | |
JP2022516549A (ja) | チップ動作周波数の設定 | |
CN106484074B (zh) | 非易失性存储装置、方法、计算机系统及待机或休眠实现方法 | |
CN114595047A (zh) | 一种批量任务处理方法和装置 | |
CN113885969A (zh) | 嵌入式设备、嵌入式软件加载方法与存储介质 | |
CN107748682B (zh) | 后台应用管控方法、装置、存储介质及电子设备 | |
CN112989036A (zh) | 一种文本分类的特征提取方法及装置 | |
CN111783969A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112421760A (zh) | 一种ups隔离变压器的励磁电流的控制方法及装置 | |
CN111192063A (zh) | 一种在线客服排队处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |