一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片功耗调整、神经网络训练方法、装置以及芯片系统与流程

2022-02-19 00:58:20 来源:中国专利 TAG:


1.本公开涉及芯片技术领域,具体而言,涉及一种芯片功耗调整、神经网络训练方法、装置以及芯片系统。


背景技术:

2.在芯片设计领域,为了提高芯片的合格率,可以设置芯片的合格规则,该合格规则可以指示被认定为合格的芯片中所包含不能正常工作的处理核的上限值。但是,该方法在提高了芯片合格率的同时,降低了芯片系统的性能。比如,不能正常工作的处理核的上限值为一个,那么现有技术虽然可以提高芯片的合格率,但是该芯片仅能通过剩余的处理核对应性能来工作。特别是对芯片的工作频率要求较高的芯片,例如,ai(artificial intelligence,人工智能)训练芯片。由于对ai训练芯片的高算力要求,促使芯片系统的设计面积更大,线宽更小,进而提高了芯片系统设计的成本,还影响芯片系统的合格率。在采用上述合格规则提高芯片合格率的同时,会造成功耗的损失,从而影响ai训练芯片的性能,进而影响ai训练芯片的工作效率。


技术实现要素:

3.本公开实施例至少提供一种芯片功耗调整、神经网络训练方法、装置以及芯片系统。
4.第一方面,本公开实施例提供了一种芯片功耗调整方法,该方法应用于包含至少一个芯片的芯片系统,每个芯片包含至少一个处理核,包括:获取所述芯片系统的芯片测试信息;所述芯片测试信息用于指示每个芯片中所包含的每个处理核的运行状态;在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,确定所述芯片系统针对所述冗余元件的待分配功耗;所述冗余元件包含:冗余芯片和/或冗余处理核;基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗;所述目标元件为所述芯片系统中除冗余元件之外的部分或者全部元件。
5.通过上述描述可知,本公开实施例,通过获取芯片系统的芯片测试信息,可以确定芯片系统中所包含的冗余元件,同时还可以确定该芯片系统中针对该冗余元件的待分配功耗,进而利用待分配功耗调整芯片系统中除了冗余元件之外的部分或者全部元件(也即,目标元件)的工作参数,从而实现芯片系统中目标元件功耗的调整。通过针对冗余元件的待分配功耗调整目标元件的工作参数,可以提高芯片系统中功耗的利用率,从而减少了芯片系统中功耗的损失,同时还可以提高芯片系统的性能。
6.一种可选的实施方式中,所述获取所述芯片系统的芯片测试信息,包括以下至少之一:在检测到所述芯片系统每次执行上电操作的过程中,在所述芯片系统的存储器中读取所述芯片测试信息;在检测到当前时刻达到所述芯片系统的预设检测时刻的情况下,在所述芯片系统的存储器中读取所述芯片测试信息;在检测到针对所述芯片系统的存储器的修改操作的情况下,在所述芯片系统的存储器中读取所述芯片测试信息。
7.在本公开实施例中,通过设置上述获取芯片测试信息的触发条件,可以并通过定期读取芯片测试信息来实时的检测芯片系统内元件工作状态的变化,从而及时的发现故障的元件,进而可以及时调整芯片系统中各芯片的处理核的功耗及任务的分配,使芯片系统不断保持高效运行。
8.一种可选的实施方式中,所述基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,包括:获取所述芯片系统中第一剩余元件的元件优先级;所述第一剩余元件为所述芯片系统中除所述冗余元件之外的剩余芯片和/或剩余处理核;基于所述元件优先级,在所述第一剩余元件中确定所述目标元件,并基于所述待分配功耗调整所述目标元件的工作参数,其中,所述工作参数包含:工作电压和/或工作频率。
9.在本公开实施例中,通过获取芯片系统中第一剩余元件的元件优先级,并基于元件优先级在第一剩余元件中确定目标元件的方式,可以实现待分配功耗在第一剩余元件中的有效利用,将更多的功耗优先分配给元件优先级更高的元件,从而加快芯片系统的任务完成进度,提高芯片系统性能。
10.一种可选的实施方式中,所述基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,包括:获取所述目标元件的功耗约束信息;基于所述功耗约束信息和所述待分配功耗,调整所述目标元件的工作参数。
11.上述实施方式中,通过目标元件的功耗约束信息,在待分配功耗中为目标元件进行功耗分配,可以降低芯片系统的性能损耗,同时还可以提高芯片系统的性能,进而保证芯片系统不断保持高效运行。
12.一种可选的实施方式中,所述基于所述功耗约束信息和所述待分配功耗,调整所述目标元件的工作参数,包括:获取所述芯片系统中预先设定的所述目标元件的工作参数的调整范围;所述调整范围用于指示所述芯片系统中各个芯片和各个处理核处于正常工作状态下的工作参数的调整范围;在所述调整范围内,基于所述功耗约束信息调整所述目标元件的工作参数,以在所述待分配功耗中为所述目标元件分配相应的功耗。
13.一种可选的实施方式中,所述调整范围为基于第一范围和第二范围确定的,所述第一范围为基于所述目标元件的标准工作参数确定的所述目标元件处于正常运行状态下的工作参数的参数范围,所述第二范围为基于所述目标元件的调整工作参数确定的所述目标元件处于正常运行状态下的工作参数的参数范围,所述调整工作参数为基于预设调整数值对工作参数进行调整之后的参数。
14.在本公开实施例中,通过预先为该芯片系统设定工作电压和工作频率的调整范围,进而基于该调整范围对芯片系统进行时序收敛,可以使得芯片系统在该调整范围内都可以工作,从而扩大了芯片系统中各个元件的工作参数的调整范围。在此基础上,基于该调整范围和功耗约束信息对目标元件的工作参数进行调整时,就可以在保证目标元件正常工作的同时,提高目标元件的工作性能,使芯片系统中的功耗资源得到充分利用,以最大限度地提高芯片系统的性能,使芯片系统更好地完成训练任务。
15.一种可选的实施方式中,所述方法还包括:在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,生成时钟关闭指令,以通过所述时钟关闭指令关闭所述芯片系统中与所述冗余元件相对应的时钟电路。
16.在本公开实施例中,通过生成时钟关闭指令,可以关闭冗余元件对应的时钟电路,
以节省冗余元件的全部功耗,此时,可以得到芯片系统的待分配功耗,将得到的待分配功耗分配给芯片系统中除冗余元件之外的元件中,可以提高芯片系统的性能。
17.一种可选的实施方式中,所述方法还包括:在所述芯片系统的工作过程中,按照预设检查周期检查所述芯片系统中处于异常工作元件,其中,所述异常工作元件包含处于异常工作状态的芯片和/或处理核;在检查到所述异常工作元件的情况下,更新所述芯片测试信息,并调整所述芯片系统中除所述冗余元件和所述异常工作元件之外的第二剩余元件的工作参数。
18.通过上述处理方式,通过定期检测芯片系统中的异常工作元件,可以及时发现处于异常运行的元件,从而能够在保证训练任务的正常执行的情况下,及时调整芯片系统中正常工作的元件的功耗,进而降低了芯片系统的性能损耗,同时还提升了正常工作元件的性能,从而使得芯片系统更好的完成对应的训练任务。
19.第二方面,本公开实施例还提供一种神经网络训练方法,包括:获取目标训练任务;在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件,以通过所述训练元件执行所述目标训练任务。
20.通过上述处理方式,在芯片系统的使用过程中,通过将目标训练任务分配给芯片系统中除冗余元件之外的剩余元件来执行,可以保证目标训练任务的正常进行,进而提高芯片系统的处理效率和处理质量。
21.第三方面,本公开实施例还提供一种芯片功耗调整装置,包括:第一获取单元,用于获取芯片系统的芯片测试信息;所述芯片测试信息用于指示每个芯片中所包含的每个处理核的运行状态;第一确定单元,用于在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,确定所述芯片系统针对所述冗余元件的待分配功耗;所述冗余元件包含:冗余芯片和/或冗余处理核;调整单元,用于基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗;所述目标元件为所述芯片系统中除冗余元件之外的部分或者全部元件。
22.第四方面,本公开实施例还提供一种神经网络训练装置,包括:第二获取单元,用于获取针对待训练神经网络的目标训练任务;第二确定单元,用于在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件,以通过所述训练元件执行所述目标训练任务;其中,所述剩余元件为通过上述第一方面中任一项所述的芯片功耗调整方法进行功耗调整之后的元件。
23.第五方面,本公开实施例还提供一种芯片系统,包括:至少一个芯片和控制器,每个芯片包含至少一个处理核;所述控制器,被配置成通过上述第一方面中任一项所述的芯片功耗调整方法调整所述芯片中除冗余元件之外的目标元件的功耗,所述冗余元件包含:冗余芯片和/或冗余处理核。
24.第六方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,以及执行上述第二方面中的步骤。
25.第七方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中
任一种可能的实施方式中的步骤,以及执行上述第二方面中的步骤。
26.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
27.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
28.图1示出了本公开实施例所提供的一种芯片功耗调整方法的流程图;
29.图2示出了本公开实施例所提供的一种包含8个芯片的芯片系统的结构示意图;
30.图3示出了本公开实施例所提供的一种芯片系统中第一范围和第二范围的效果示意图;
31.图4示出了本公开实施例所提供的一种神经网络训练方法的流程图;
32.图5示出了本公开实施例所提供的一种芯片功耗调整装置的示意图;
33.图6示出了本公开实施例所提供的一种神经网络训练装置的示意图;
34.图7示出了本公开实施例所提供的一种芯片系统的示意图;
35.图8示出了本公开实施例所提供的一种电子设备的示意图;
36.图9示出了本公开实施例所提供的另一种电子设备的示意图。
具体实施方式
37.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
38.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
39.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
40.经研究发现,在芯片设计领域,为了提高芯片的合格率,可以设置芯片的合格规则,该合格规则可以指示该合格芯片中所包含不能正常工作的处理核的上限值。但是,该方法在提高了芯片合格率的同时,带来了功耗的损失。
41.基于上述研究,本公开提供了一种芯片功耗调整、神经网络训练方法、装置以及芯
片系统。通过上述描述可知,本公开实施例,通过获取芯片系统的芯片测试信息,可以确定芯片系统中所包含的冗余元件,同时还可以确定该芯片系统中针对该冗余元件的待分配功耗,进而利用待分配功耗调整芯片系统中除了冗余元件之外的部分或者全部元件(也即,目标元件)的工作参数,从而实现芯片系统中目标元件功耗的调整。通过针对冗余元件的待分配功耗调整目标元件的工作参数,可以提高芯片系统中功耗的利用率,从而减少了芯片系统中功耗的损失,同时还可以提高芯片系统的性能。
42.为便于对本实施例进行理解,首先对本公开实施例所公开的一种芯片功耗调整方法进行详细介绍,本公开实施例所提供的芯片功耗调整方法的执行主体一般为具有一定计算能力的电子设备。
43.参见图1所示,为本公开实施例提供的一种芯片功耗调整方法的流程图,所述方法包括步骤s101~s105,其中:
44.s101:获取所述芯片系统的芯片测试信息;所述芯片测试信息用于指示每个芯片中所包含的每个处理核的运行状态。
45.在本公开实施例中,芯片系统可以是任意一种类型的芯片系统,还可以为对芯片的工作频率和/或工作电压有特定要求的芯片系统,例如,ai训练芯片,其中,该ai训练芯片主要用于ai训练任务,其中,ai训练任务可以理解为神经网络模型的训练任务。对此,本公开对该芯片系统的类型不做具体限定,以能够实现为准。
46.在上述芯片系统中包含至少一个芯片,每个芯片中包含至少一个处理核。芯片系统的芯片测试信息可以为用于指示芯片中所包含的每个处理核的运行状态的信息。该芯片测试信息记录在芯片系统的寄存器中。
47.假设,在一个芯片系统中包含2个芯片,分别为芯片1和芯片2,每个芯片中包含3个处理核,分别为core1,core2,core3,此时,芯片系统的芯片测试信息可以为“芯片1,正常工作”、“芯片1,core1,正常工作”、“芯片1,core2,正常工作”、“芯片1,core3,异常工作”,“芯片2,正常工作”、“芯片2,core1,正常工作”、“芯片2,core2,正常工作”、“芯片2,core3,正常工作”。
48.在本公开实施例中,该芯片测试信息中所包含的运行状态不是固定不变的,可以设置该芯片测试信息中信息随着芯片系统中每个芯片的处理核的运行状态的变化而变化。
49.s103:在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,确定所述芯片系统针对所述冗余元件的待分配功耗;所述冗余元件包含:冗余芯片和/或冗余处理核。
50.这里,冗余元件为在芯片系统的设计阶段,基于预设的冗余规则在该芯片系统中确定出的无法正常工作的芯片和/或处理核。其中,冗余元件的数目与冗余规则相关联,也即,该冗余规则中预先设定了每个芯片系统中所允许包含的冗余元件的上限值。
51.具体地,该冗余规则可以理解为:在每个芯片系统中发生故障的芯片的数量不超过n个,和/或,每个芯片系统的芯片中发生故障的处理核的数量不超过m个,其中,n可以设置为1,且m也可以设置为1,除此之外,n和m还可以设置为其他数值,且n和m的数值可以相同,还可以不相同。
52.例如,芯片系统中包含8个芯片,每个芯片包含8个处理核,那么该芯片系统中包含64个处理核。此时,上述冗余规则可以确定为:该芯片系统中发生故障的芯片的数量不能超
过一个,和/或,针对每个芯片来说,发生故障的处理核的数量不能超过一个。
53.在本公开实施例中,若一个芯片中发生故障的处理核的数量大于冗余规则中所规定的数量,则确定该芯片为故障芯片,或者为冗余芯片。此时,该芯片无法正常完成芯片系统分配的任务。若一个芯片中发生故障的处理核的数量小于冗余规则中所规定的数量(例如,1个),则确定该芯片不是冗余芯片,此时,该芯片可以正常完整芯片系统所分配的任务,且该芯片中所包含的“1个发生故障的处理核”为冗余处理核。若一个芯片中不包含发生故障的处理核,则该芯片不是冗余芯片。
54.在本公开实施例中,上述待分配功耗可以理解为在芯片系统的设计阶段,预先为该冗余元件分配的功耗。若该冗余元件的数量为多个,那么待分配功耗为针对多个冗余元件的功耗的总和。
55.示例性地,假设,在一个芯片系统中包含2个芯片,每个芯片中包含3个处理核,此时,芯片系统中包含的元件为芯片1、芯片2、芯片1

core1、芯片1

core2、芯片1

core3、芯片2

core1、芯片2

core2、芯片2

core3。当芯片系统中包含的冗余元件为芯片2

core1时,此时,芯片系统的待分配功耗即为预先为芯片2

core1分配的功耗。
56.s105:基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗;所述目标元件为所述芯片系统中除冗余元件之外的部分或者全部元件。
57.这里,芯片系统中的目标元件用于表征芯片系统中包含的除冗余元件之外的元件,此时目标元件的数量可以为1个或者多个。
58.以上述举例说明的包含芯片1和芯片2的芯片系统为例,假设,冗余元件为“芯片2

core1”,此时,芯片系统中的目标元件可以为芯片1、芯片2

core2、芯片2

core3中的部分或者全部元件。
59.通过上述描述可知,本公开实施例,通过获取芯片系统的芯片测试信息,可以确定芯片系统中所包含的冗余元件,同时还可以确定该芯片系统中针对该冗余元件的待分配功耗,进而利用待分配功耗调整芯片系统中除了冗余元件之外的部分或者全部元件(也即,目标元件)的工作参数,从而实现芯片系统中目标元件功耗的调整。通过针对冗余元件的待分配功耗调整目标元件的工作参数,可以提高芯片系统中功耗的利用率,从而减少了芯片系统中功耗的损失,同时还可以提高芯片系统的性能。
60.在一个可选的实施方式中,针对s101,具体可以通过以下几种方式获取所述芯片系统的芯片测试信息,具体包括:
61.方式一:
62.在检测到所述芯片系统每次执行上电操作的过程中,在所述芯片系统的存储器中读取所述芯片测试信息。
63.在本公开实施例中,可以通过芯片系统中内置的检测单元检测芯片系统的上电操作。该检测单元在检测到芯片系统的上电操作之后,每次上电过程芯片系统中内置的mcu(microcontroller unit,微控制单元)可以读出片系统的存储器中读取所述芯片测试信息。
64.这里,存储器中存储的芯片测试信息可以为在芯片系统的测试阶段烧录至芯片系统中对应芯片的efuse中的芯片测试信息。通过上述描述可知,该芯片测试信息用于指示每
个芯片中所包含的每个处理核的运行状态。
65.具体实施时,可以通过在efuse中记录“good die”和“partial good die”等信息来指示芯片系统中每个芯片中的处理核的运行状态。当信息为“good die”时,表征该芯片系统中不包含处于非正常运行状态(例如,故障运行状态)的处理核;当信息为“partial good die”时,表征该芯片系统中包含处于非正常运行状态(例如,故障运行状态)的处理核。同时,该信息“partial good die”还可以指示处于非正常运行状态的处理核的相关信息。
66.方式二:
67.在检测到当前时刻达到所述芯片系统的预设检测时刻的情况下,在所述芯片系统的存储器中读取所述芯片测试信息。
68.针对方式二,检测当前时刻是否达到芯片系统的预设检测时刻,具体包括:
69.判断当前时刻是否满足芯片系统的检测周期;当判断出满足的情况下,确定当前时刻达到预设检测时刻。
70.也就是说,从上一次从存储器中读取芯片测试信息开始,检测当前时刻是否达到一个检测周期。当达到一个检测周期时,则达到预设检测时刻时,此时,需要重新读取芯片系统的存储器中的芯片测试信息。
71.例如,芯片系统的检测周期可以为5个小时,此时假设,该芯片系统上一次读取芯片测试信息的时间为2020年12月12日8时12分12秒。当该芯片系统持续工作时长达到芯片系统的检测周期,即5个小时,此时,时间达到2020年12月12日13时12分12秒,此时,当前时刻达到预测检测时刻,此时需要重新读取存储器中的芯片测试信息。
72.方式三:上述方式一和方式二的结合。
73.在检测到所述芯片系统每次执行上电操作的过程中,在所述芯片系统的存储器中读取所述芯片测试信息;以及在检测到当前时刻达到所述芯片系统的预设检测时刻的情况下,在所述芯片系统的存储器中读取所述芯片测试信息。
74.在本公开实施例中,可以通过芯片系统中内置的检测单元检测芯片系统的上电操作。该检测单元在检测到芯片系统的上电操作之后,每次上电过程芯片系统中内置的mcu可以读出片系统的存储器中读取所述芯片测试信息。在芯片系统上电之后,还可以通过上述方式二中所描述的实施方式一和实施方式二来检测当前时刻是否达到预设检测时刻时,执行获取芯片测试信息的操作。
75.例如,芯片系统的检测周期可以为5个小时,此时假设,该芯片系统初次上电使用的时间为2020年12月12日8时12分12秒,并在该时刻读取芯片系统中的芯片测试信息,之后芯片系统开始工作。当该芯片系统持续工作时长达到芯片系统的检测周期,即5个小时,此时,时间达到2020年12月12日13时12分12秒,此时,当前时刻达到预测检测时刻,此时需要重新读取存储器中的芯片测试信息。
76.这里,在芯片系统每次执行上电操作之后,均开始重新统计上述检测周期。
77.除此之外,还可以设置在芯片系统满足预设上电要求的情况下,在上一次所统计的检测周期的基础上,继续进行检测周期的统计。其中,满足预设上电要求可以理解为芯片系统的断电时间和当前时刻的上电时间之间的时间间隔满足预设要求。
78.例如,当该芯片系统在重新读取存储器中的芯片测试信息之后,持续工作了1小时
之后断电。若在一分钟之后芯片系统再次上电,此时满足预设上电要求,则在芯片系统再继续工作4小时之后,确定达到上述检测周期,也即达到预设检测时刻。此时,芯片系统可以从存储器中读取芯片测试信息。
79.方式四:
80.在检测到针对所述芯片系统的存储器的修改操作的情况下,在所述芯片系统的存储器中读取所述芯片测试信息。
81.针对方式四,检测到针对所述芯片系统的存储器的修改操作,具体包括:
82.创建监听任务,其中,该监听任务为对芯片系统的存储器的修改操作进行监听的任务;在基于该监听任务监听到针对该存储器的修改操作的情况下,确定满足读取芯片测试信息的条件,并在芯片系统的存储器中读取芯片测试信息。
83.这里,修改操作可以包含以下至少之一:数据写操作、数据更新(或者替换)操作、数据删除操作等。
84.以上述举例说明的包含芯片1和芯片2的芯片系统为例,假设,芯片系统中的芯片1中处理核core1发生了故障,则可以触发对芯片测试信息进行修改,并将芯片1中处理核core1的信息写入存储器(例如efuse)中;当监听任务监听到该存储器的数据写操作时,确定当前时刻达到了预设检测时刻,则在芯片系统的存储器中读取所述芯片测试信息。
85.在本公开实施例中,通过设置上述获取芯片测试信息的触发条件,可以并通过定期读取芯片测试信息来实时的检测芯片系统内元件工作状态的变化,从而及时的发现故障的元件,进而可以及时调整芯片系统中各芯片的处理核的功耗及任务的分配,使芯片系统不断保持高效运行。
86.针对上述步骤s103,在获取到芯片测试信息之后,可以基于该芯片测试信息中所记录的信息,确定芯片系统中是否包含冗余元件。
87.具体实施时,可以判断该芯片测试信息是否为“good die”,若是,则确定该芯片系统中不包含冗余元件;若芯片测试信息为“partial good die”,则确定该芯片系统中包含冗余元件,此时,可以通过“partial good die”确定冗余元件的具体元件信息。
88.在确定出芯片系统中包含冗余元件的情况下,基于步骤s103,可以确定芯片系统中针对该冗余元件的待分配功耗,并基于该待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗。
89.在一个可选的实施方式中,针对s105,基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,具体包括如下过程:
90.步骤s11:获取所述芯片系统中第一剩余元件的元件优先级;第一剩余元件为所述芯片系统中除所述冗余元件之外的剩余芯片和/或剩余处理核;
91.步骤s12:基于所述元件优先级,在所述第一剩余元件中确定所述目标元件,并基于所述待分配功耗调整所述目标元件的工作参数,其中,所述工作参数包含:工作电压和/或工作频率。
92.这里,元件优先级可以是芯片系统预先设定好的各个元件的优先级顺序。其中,可以根据各个元件需要完成的任务量确定上述优先级顺序,和/或,根据各个元件需要完成的任务的重要程度确定的上述优先级顺序。
93.例如,如图2所示的芯片系统,假设,在如图2所示的芯片系统中包含8个芯片,即芯
片1至芯片8,每个芯片中包含8个处理核,即core1至core8。此时,芯片系统中包含的元件为芯片1、芯片2、
……
、芯片8、芯片1

core1、芯片1

core2、芯片1

core3、
……
、芯片1

core8;芯片2

core1、芯片2

core2、芯片2

core3、
……
、芯片2

core8;
……
;芯片8

core1、芯片8

core2、芯片8

core3、
……
、芯片8

core8。此时,假设,芯片系统中包含的冗余元件为芯片1和芯片2

core1,此时,可以根据上述冗余元件确定芯片系统中的第一剩余元件,例如,第一剩余元件可以为除了芯片1和芯片2

core1之外的其他元件,例如,可以为芯片2

core2、芯片2

core3、
……
、芯片2

core4;
……
;芯片8

core1、芯片8

core2、芯片8

core3、
……
、芯片8

core8。
94.在确定优先级顺序时,可以根据第一剩余元件需要完成的任务量确定第一剩余元件的优先级顺序,和/或,根据第一剩余元件需要完成的任务的重要程度来确定优先级顺序。例如,假设,在芯片系统中,芯片2需要处理并行计算任务,其中,芯片2

core1用于接收数据,芯片2

core2、芯片2

core3用于对接收到的数据执行并行计算的任务,芯片2

core4用于存储并行计算得到的结果并传输至下一个模块;芯片3处理结果分析任务,此时,可以确定芯片2的任务量要大于芯片3,并且,芯片2

core2、芯片2

core3的任务量要大于芯片2

core1和芯片2

core4,此时,可以确定第一剩余元件中的优先级顺序为:芯片2

core2>芯片2

core3>芯片2

core1>芯片2

core4>芯片3

core1>芯片3

core2>芯片3

core3>芯片3

core4。
95.在基于元件优先级,在第一剩余元件中确定目标元件时,可以首先获取芯片系统中剩余芯片的芯片优先级,然后,按照芯片优先级从剩余芯片中选择目标芯片;并基于待分配功耗调整目标芯片的工作参数,从而实现调整目标芯片的功耗。在对目标芯片的功耗进行调整之后,若待分配功耗中还包含剩余功耗,则可以获取芯片系统中剩余处理核的处理核优先级,并按照处理核优先级从剩余处理核中选择目标处理核,并基于剩余的待分配功耗调整目标处理核的工作参数,从而实现调整目标处理核的功耗,其中,上述目标芯片和目标处理核即为上述目标元件。
96.在本公开实施例中,通过获取芯片系统中第一剩余元件的元件优先级,并基于元件优先级在第一剩余元件中确定目标元件的方式,可以实现待分配功耗在第一剩余元件中的有效利用,将更多的功耗优先分配给元件优先级更高的元件,从而加快芯片系统的任务完成进度,提高芯片系统性能。
97.在一个可选的实施方式中,针对s105,基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,具体还包括:
98.步骤s21:获取所述目标元件的功耗约束信息;
99.步骤s22:基于所述功耗约束信息和所述待分配功耗,调整所述目标元件的工作参数。
100.这里,功耗约束信息用于表征芯片系统中各个元件满足时序收敛要求时,为各个元件确定的工作电压的约束信息,以及工作频率的约束信息。该功耗约束信息用于指示该元件的工作电压的上限值和下限值,以及用于指示该元件的工作频率的上限值和下限值。当为元件分配工作电压和工作频率时,应当满足该功耗约束信息,即在该功耗约束信息内为该元件分配工作电压和工作范围。当为元件分配的工作电压和工作范围不满足该功耗约束信息时,该元件将无法正常工作。
101.在本公开实施例中,可以基于目标元件的功耗约束信息,调整目标元件的工作参数(例如,工作电压和/或工作频率),例如,可以增大目标元件的工作参数,从而实现在待分配功耗中为目标元件分配对应的功耗。
102.上述实施方式中,通过目标元件的功耗约束信息,在待分配功耗中为目标元件进行功耗分配,可以降低芯片系统的性能损耗,同时还可以提高芯片系统的性能,进而保证芯片系统不断保持高效运行。
103.在一个可选的实施方式中,上述步骤s22,基于所述功耗约束信息和所述待分配功耗,调整所述目标元件的工作参数,具体包括如下过程:
104.步骤s221:获取所述芯片系统中预先设定的所述目标元件的工作参数的调整范围;所述调整范围用于指示所述芯片系统中各个芯片和各个处理核处于正常工作状态下的工作参数的调整范围;
105.步骤s222:在所述调整范围内,基于所述功耗约束信息调整所述目标元件的工作参数,以在所述待分配功耗中为所述目标元件分配相应的功耗。
106.一般的集成芯片系统是可以支持固定电压下的固定的频率,从而能够满足固定的性能要求。如果芯片系统为ai训练芯片,考虑该ai训练芯片的主要作用是用来训练ai模型,所以ai训练芯片对于性能的要求并不是某个固定的数字,而是越快越好。这就意味着,ai训练芯片对于频率的要求也不是固定的,也是越高越好。若要提高芯片的工作频率(即,时钟频率)需要提高工作电压。为了能够提高芯片的工作电压,可以在芯片系统的设计阶段,通过该阶段的时序收敛的过程来扩大芯片系统各个元件工作参数的调整范围。
107.也就是说,在时序收敛阶段,并不是用一个固定的工作电压和工作频率来进行收敛,而是预先设定对应的调整范围,从而在该调整范围的上下限进行时序收敛工作,从而使得设计的芯片系统在这个电压频率范围内都可以工作。在芯片的实际使用过程中,就可以在功耗约束信息的约束下,通过调整芯片的工作电压和工作频率来实现在待分配功耗中为所述目标元件分配相应的功耗。
108.在本公开实施例中,上述调整范围为基于第一范围和第二范围确定的,第一范围为基于所述目标元件的标准工作参数确定的所述目标元件处于正常工作状态下的工作参数的参数范围,第二范围为基于所述目标元件的调整工作参数确定的所述目标元件处于正常工作状态下的工作参数的参数范围,调整工作参数为基于预设调整数值对工作参数进行调整之后的参数。
109.这里,第一范围是根据目标元件的标准工作参数确定的,且目标元件处于正常工作状态下的工作参数的参数范围。例如,tsmc(台积电)7nm的标准工作电压是0.75v,由于在实际工作中因为有上误差和噪声,所以标准工作电压可以理解为围绕0.75v的一个范围。
110.第二范围为基于目标元件的调整工作参数确定的目标元件处于正常工作状态下的工作参数的参数范围。在本公开实施例中,除了这个0.75的标准工作电压应用场景之外,还设置了一个升压100mv的工作场景,如图3所示,即围绕0.85v的一个范围,例如,第二范围可以为0.8075v

0.8925v。
111.在本公开实施例中,如图3所示,针对0.75所对应的范围(第一范围)和0.85所对应范围(第二范围),可以通过设置每个范围所对应的setup corner(第一角点)和hold corner(第二角点),从而保证了芯片系统中的处理核能够在0.75~0.85v之间的区域内工
作,工作频率从1ghz~1.4ghz。
112.这里,建立时间用于表征在触发器的时钟信号上升沿到来之前,数据稳定不变的时间,保持时间用于表征触发器的时钟信号上升沿到来以后,数据稳定不变的时间,以保证数据在时钟上升沿能够被打入触发器。
113.在本公开实施例中,在设置上述调整范围之后,就可以使得芯片系统在该调整范围所对应的工作电压范围和工作频率范围内工作。
114.在本公开实施例中,通过预先为该芯片系统设定工作电压和工作频率的调整范围,进而基于该调整范围对芯片系统进行时序收敛,可以使得芯片系统在该调整范围内都可以工作,从而扩大了芯片系统中各个元件的工作参数的调整范围。在此基础上,基于该调整范围和功耗约束信息对目标元件的工作参数进行调整时,就可以在保证目标元件正常工作的同时,提高目标元件的工作性能,使芯片系统中的功耗资源得到充分利用,以最大限度地提高芯片系统的性能,使芯片系统更好地完成训练任务。
115.在一个可选的实施方式中,本公开方法还包括如下步骤:
116.在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,还可以生成时钟关闭指令,以通过所述时钟关闭指令关闭所述芯片系统中与所述冗余元件相对应的时钟电路。
117.在本公开实施例中,通过生成时钟关闭指令,可以关闭冗余元件对应的时钟电路,以节省冗余元件的全部功耗,此时,可以得到芯片系统的待分配功耗,将得到的待分配功耗分配给芯片系统中除冗余元件之外的元件中,可以提高芯片系统的性能。
118.在一个可选的实施方式中,本公开方法还包括如下步骤:
119.步骤s41:在所述芯片系统的工作过程中,按照预设检查周期检查所述芯片系统中处于异常工作元件,其中,所述异常工作元件包含处于异常工作状态的芯片和/或处理核;
120.步骤s42:在检查到所述异常工作元件的情况下,更新所述芯片测试信息,并调整所述芯片系统中除所述冗余元件和所述异常工作元件之外的第二剩余元件的工作参数。
121.这里,第二剩余元件为芯片系统的第一剩余元件中除冗余元件之外的剩余芯片和/或剩余处理核。
122.在本公开实施例中,可以预先设定预设检查周期。在芯片系统上电工作的过程中,可以按照预设检查周期检查芯片系统中各个元件的工作状态,当检测到元件处于异常工作状态时,更新芯片系统中的芯片测试信息。比如,可以将处于异常工作状态的元件的运行状态写入该芯片测试信息中。
123.通过上述描述可知,当预先设定的监听任务监听到芯片测试信息发生改变时,可以获取芯片系统的存储器中存储的芯片测试信息,并基于该芯片测试信息确定处于异常工作状态的元件,即异常工作元件;进而,确定芯片系统针对该异常工作元件的功耗信息,并基于该功耗信息调整第二剩余元件的工作参数。
124.在本公开实施例中,在调整第二剩余元件的工作参数时,可以基于每个元件的元件优先级,从第二剩余元件中选择部分或者全部元件作为待进行功耗分配的元件,具体选择过程如上述实施方式所述,此处不再详细赘述。
125.在本公开实施例中,在检测到异常工作元件之后,如果该异常工作元件处于工作状态,则可以将该异常工作元件所处理的训练任务分配给第二剩余元件来执行。第二剩余
元件在执行该训练任务时,可以基于芯片系统所记录的任务执行进度,继续执行该训练任务;除此之外,第二剩余元件还可以重新执行该训练任务。
126.通过上述处理方式,通过定期检测芯片系统中的异常工作元件,可以及时发现处于异常运行的元件,从而能够在保证训练任务的正常执行的情况下,及时调整芯片系统中正常工作的元件的功耗,进而降低了芯片系统的性能损耗,同时还提升了正常工作元件的性能,从而使得芯片系统更好的完成对应的训练任务。
127.参见图4所示,为本公开实施例提供的一种神经网络训练方法的流程图,所述方法包括步骤s401~s403,其中:
128.步骤s401:获取针对待训练神经网络的目标训练任务;
129.步骤s403:在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件,以通过所述训练元件执行所述目标训练任务;其中,所述剩余元件为通过上述实施例中所描述的芯片功耗调整方法进行功耗调整之后的元件。
130.在本公开实施例中,芯片系统可以获取目标训练任务,当芯片系统中存在冗余元件时,芯片系统可以将目标训练任务分配给芯片系统中除冗余元件之外的元件,以执行目标训练任务。
131.在本公开实施例中,若在获取芯片系统的芯片测试信息时,获取到目标训练任务,则可以先基于芯片测试信息确定芯片系统是否存在冗余元件。若确定出存在,则确定芯片系统针对冗余元件的待分配功耗,并在基于待分配功耗调整芯片系统中目标元件的工作参数之后,执行在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件的步骤。
132.通过上述处理方式,在芯片系统的使用过程中,通过将目标训练任务分配给芯片系统中除冗余元件之外的剩余元件来执行,可以保证目标训练任务的正常进行,进而提高芯片系统的处理效率和处理质量。
133.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
134.基于同一发明构思,本公开实施例中还提供了与芯片功耗调整方法对应的芯片功耗调整装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述芯片功耗调整方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
135.参照图5所示,为本公开实施例提供的一种芯片功耗调整装置的示意图,所述装置包括:第一获取单元51、第一确定单元52、调整单元53;其中,
136.第一获取单元51,用于获取芯片系统的芯片测试信息;所述芯片测试信息用于指示每个芯片中所包含的每个处理核的运行状态;
137.第一确定单元52,用于在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,确定所述芯片系统针对所述冗余元件的待分配功耗;所述冗余元件包含:冗余芯片和/或冗余处理核;
138.调整单元53,用于基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗;所述目标元件为所述芯片系统中除冗余元件之外的部分或者全部元件。
139.通过上述描述可知,本公开实施例,通过获取芯片系统的芯片测试信息,可以确定芯片系统中所包含的冗余元件,同时还可以确定该芯片系统中针对该冗余元件的待分配功耗,进而利用待分配功耗调整芯片系统中除了冗余元件之外的部分或者全部元件(也即,目标元件)的工作参数,从而实现芯片系统中目标元件功耗的调整。通过针对冗余元件的待分配功耗调整目标元件的工作参数,可以提高芯片系统中功耗的利用率,从而减少了芯片系统中功耗的损失,同时还可以提高芯片系统的性能。
140.一种可能的实施方式中,获取单元,还用于通过以下至少一种方式获取芯片系统的芯片测试信息:在检测到所述芯片系统每次执行上电操作的过程中,在所述芯片系统的存储器中读取所述芯片测试信息;在检测到当前时刻达到所述芯片系统的预设检测时刻的情况下,在所述芯片系统的存储器中读取所述芯片测试信息;在检测到针对所述芯片系统的存储器的修改操作的情况下,在所述芯片系统的存储器中读取所述芯片测试信息。
141.一种可能的实施方式中,调整单元,还用于:获取所述芯片系统中第一剩余元件的元件优先级;所述第一剩余元件为所述芯片系统中除所述冗余元件之外的剩余芯片和/或剩余处理核;基于所述元件优先级,在所述第一剩余元件中确定所述目标元件,并基于所述待分配功耗调整所述目标元件的工作参数,其中,所述工作参数包含:工作电压和/或工作频率。
142.一种可能的实施方式中,调整单元,还用于:获取所述目标元件的功耗约束信息;基于所述功耗约束信息和所述待分配功耗,调整所述目标元件的工作参数。
143.一种可能的实施方式中,调整单元,还用于:获取所述芯片系统中预先设定的所述目标元件的工作参数的调整范围;所述调整范围用于指示所述芯片系统中各个芯片和各个处理核处于正常工作状态下的工作参数的调整范围;在所述调整范围内,基于所述功耗约束信息调整所述目标元件的工作参数,以在所述待分配功耗中为所述目标元件分配相应的功耗。
144.一种可能的实施方式中,调整单元,还用于:所述调整范围为基于第一范围和第二范围确定的,所述第一范围为基于所述目标元件的标准工作参数确定的所述目标元件处于正常运行状态下的工作参数的参数范围,所述第二范围为基于所述目标元件的调整工作参数确定的所述目标元件处于正常运行状态下的工作参数的参数范围,所述调整工作参数为基于预设调整数值对工作参数进行调整之后的参数。
145.一种可能的实施方式中,调整单元,还用于:在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,生成时钟关闭指令,以通过所述时钟关闭指令关闭所述芯片系统中与所述冗余元件相对应的时钟电路。
146.一种可能的实施方式中,调整单元,还用于:在所述芯片系统的工作过程中,按照预设检查周期检查所述芯片系统中处于异常工作元件,其中,所述异常工作元件包含处于异常工作状态的芯片和/或处理核;在检查到所述异常工作元件的情况下,更新所述芯片测试信息,并调整所述芯片系统中除所述冗余元件和所述异常工作元件之外的第二剩余元件的工作参数。
147.参照图6所示,为本公开实施例提供的一种神经网络训练装置的示意图,所述装置包括:第二获取单元61、第二确定单元62;其中,
148.第二获取单元61,用于获取针对待训练神经网络的目标训练任务;
149.第二确定单元62,用于在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件,以通过所述训练元件执行所述目标训练任务;其中,所述剩余元件为通过上述权利要求1至8中任一项所述的芯片功耗调整方法进行功耗调整之后的元件。
150.通过上述处理方式,在芯片系统的使用过程中,通过将目标训练任务分配给芯片系统中除冗余元件之外的剩余元件来执行,可以保证目标训练任务的正常进行,进而提高芯片系统的处理效率和处理质量。
151.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
152.参照图7所示,为本公开实施例提供的一种芯片系统的示意图,所述芯片系统700包括:至少一个芯片71和控制器72,每个芯片包含至少一个处理核701;所述控制器72,被配置成通过上述芯片功耗调整方法调整芯片中除冗余元件之外的目标元件的功耗,冗余元件包含:冗余芯片和/或冗余处理核。
153.对应于图1中的芯片功耗调整方法,本公开实施例还提供了一种电子设备800,如图8所示,为本公开实施例提供的电子设备800结构示意图,包括:
154.处理器81、存储器82、和总线83;存储器82用于存储执行指令,包括内存821和外部存储器822;这里的内存821也称内存储器,用于暂时存放处理器81中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器81通过内存821与外部存储器822进行数据交换,当所述电子设备800运行时,所述处理器81与所述存储器82之间通过总线83通信,使得所述处理器81执行以下指令:
155.获取所述芯片系统的芯片测试信息;所述芯片测试信息用于指示每个芯片中所包含的每个处理核的运行状态;
156.在基于所述芯片测试信息确定所述芯片系统存在冗余元件的情况下,确定所述芯片系统针对所述冗余元件的待分配功耗;所述冗余元件包含:冗余芯片和/或冗余处理核;
157.基于所述待分配功耗调整所述芯片系统中目标元件的工作参数,以调整所述目标元件的功耗;所述目标元件为所述芯片系统中除冗余元件之外的部分或者全部元件。
158.对应于图4中的神经网络训练方法,本公开实施例还提供了一种电子设备900,如图9所示,为本公开实施例提供的电子设备900结构示意图,包括:
159.处理器91、存储器92、和总线93;存储器92用于存储执行指令,包括内存921和外部存储器922;这里的内存921也称内存储器,用于暂时存放处理器91中的运算数据,以及与硬盘等外部存储器922交换的数据,处理器91通过内存921与外部存储器922进行数据交换,当所述电子设备900运行时,所述处理器91与所述存储器92之间通过总线93通信,使得所述处理器91执行以下指令:
160.获取针对待训练神经网络的目标训练任务;
161.在芯片系统中除冗余元件之外的剩余元件中,为所述目标训练任务确定训练元件,以通过所述训练元件执行所述目标训练任务;其中,所述剩余元件为通过上述任一项所述的芯片功耗调整方法进行功耗调整之后的元件。
162.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的芯片功耗调整方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
163.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的芯片功耗调整方法的步骤,具体可参见上述方法实施例,在此不再赘述。
164.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
165.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
166.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
167.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
168.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
169.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献