芯片的性能确定方法、装置、电子设备及存储介质与流程



1.本公开涉及通信技术领域,尤其涉及一种芯片的性能确定方法、装置、电子设备及存储介质。


背景技术:



2.对于应用于多个场景的定制类芯片,在不同的应用场景下,需开发不同的算法部署于芯片中以适用于不同的应用场景。在算法开发的过程中,由于不同的开发者开发的算法不同,芯片执行不同算法时的性能也不同。
3.为了使得开发的算法部署在芯片上之后具有较强的性能,需要确定芯片执行部署于自身的算法的性能,以根据芯片执行该算法的性能对该算法进行优化,提高该算法在芯片上的实现性能和部署性能。


技术实现要素:



4.本公开提出一种芯片的性能确定方法、装置、电子设备及存储介质。
5.本公开第一方面实施例提出了一种芯片的性能确定方法,包括:在芯片执行预设算法的过程中,获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,所述预设算法被分解成多个所述算子部署于所述芯片的至少一个所述eu中;基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间;基于所述第二运行时间,获取所述芯片执行所述预设算法的性能参数。
6.本公开实施例中,在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间,基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间,基于第二运行时间,获取芯片执行预设算法的性能参数。本公开实施例中,能够通过芯片执行算法的时间获取芯片执行算法的性能参数,从而根据性能参数确定芯片执行算法的性能,进而在算法开发的过程中对算法的实现性能和部署性能进行评估,提高算法的实现性能和部署性能。
7.在本公开的一个实施例中,所述算子包括至少一个计算功能,所述获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,包括:获取所述eu执行所述算子中所述计算功能的总功能计算时间;基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间。
8.在本公开的一个实施例中,所述eu包括至少一个功能计算模块,每个所述功能计算模块用于执行所述算子中对应的所述计算功能,所述获取所述eu执行所述算子中所述计算功能的总功能计算时间,包括:获取每个所述功能计算模块执行所述算子中对应的所述计算功能的功能计算时间;比较每个所述功能计算模块的功能计算时间,从中选取最大的功能计算时间作为所述总功能计算时间。
9.在本公开的一个实施例中,所述基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间,包括:获取所述eu的输入带宽和输出带宽;基于所述总功能计算
时间、所述输入带宽和所述输出带宽,获取所述第一运行时间。
10.在本公开的一个实施例中,所述基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间,包括:获取所述eu的输入带宽和输出带宽;获取所述eu执行所述算子的第一延迟时间;基于所述总功能计算时间、所述输入带宽、所述输出带宽和所述第一延迟时间,获取所述第一运行时间。
11.在本公开的一个实施例中,所述获取所述eu执行所述算子的第一延迟时间,包括:获取所述eu中每个功能计算模块执行所述算子中对应的所述计算功能的第二延迟时间;基于所述第二延迟时间,获取所述eu执行所述算子的第一延迟时间。
12.在本公开的一个实施例中,所述基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间,包括:基于所述eu执行所述算子的执行逻辑,确定所述算子之间的串并行关系;响应于所述算子之间存在并行关系,从所述算子的第一运行时间中,选取最大的第一运行时间作为所述第二运行时间;响应于所述算子之间存在串行关系,将所述算子的第一运行时间相加,得到所述第二运行时间;响应于所述算子之间存在所述并行关系和所述串行关系,从存在所述并行关系的所述算子的第一运行时间中,选取最大的第一运行时间与存在所述串行关系的所述算子的第一运行时间相加,得到所述第二运行时间。
13.在本公开的一个实施例中,所述获取所述eu的输入带宽和输出带宽,包括:基于访问内存所提供的额定带宽和所述eu的配置信息,获取所述eu的所述输入带宽和所述输出带宽。
14.本公开第二方面实施例提出一种芯片的性能确定装置,包括:第一获取模块,用于在芯片执行预设算法的过程中,获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,所述预设算法被分解成多个所述算子部署于所述芯片的至少一个所述eu中;第二获取模块,用于基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间;第三获取模块,用于基于所述第二运行时间,获取所述芯片执行所述预设算法的性能参数。
15.本公开实施例中,在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间,基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间,基于第二运行时间,获取芯片执行预设算法的性能参数。本公开实施例中,能够通过芯片执行算法的时间获取芯片执行算法的性能参数,从而根据性能参数确定芯片执行算法的性能,进而在算法开发的过程中对算法的实现性能和部署性能进行评估,提高算法的实现性能和部署性能。
16.在本公开的一个实施例中,所述算子包括至少一个计算功能,所述第一获取模块,还用于:获取所述eu执行所述算子中所述计算功能的总功能计算时间;基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间。
17.在本公开的一个实施例中,所述eu包括至少一个功能计算模块,每个所述功能计算模块用于执行所述算子中对应的所述计算功能,所述第一获取模块,还用于:获取每个所述功能计算模块执行所述算子中对应的所述计算功能的功能计算时间;比较每个所述功能计算模块的功能计算时间,从中选取最大的功能计算时间作为所述总功能计算时间。
18.在本公开的一个实施例中,所述第一获取模块,还用于:获取所述eu的输入带宽和
输出带宽;基于所述总功能计算时间、所述输入带宽和所述输出带宽,获取所述第一运行时间。
19.在本公开的一个实施例中,所述第一获取模块,还用于:获取所述eu的输入带宽和输出带宽;获取所述eu执行所述算子的第一延迟时间;基于所述总功能计算时间、所述输入带宽、所述输出带宽和所述第一延迟时间,获取所述第一运行时间。
20.在本公开的一个实施例中,所述第一获取模块,还用于:获取所述eu中每个功能计算模块执行所述算子中对应的所述计算功能的第二延迟时间;基于所述第二延迟时间,获取所述eu执行所述算子的第一延迟时间。
21.在本公开的一个实施例中,所述第二获取模块,还用于:基于所述eu执行所述算子的执行逻辑,确定所述算子之间的串并行关系;响应于所述算子之间存在并行关系,从所述算子的第一运行时间中,选取最大的第一运行时间作为所述第二运行时间;响应于所述算子之间存在串行关系,将所述算子的第一运行时间相加,得到所述第二运行时间;响应于所述算子之间存在所述并行关系和所述串行关系,从存在所述并行关系的所述算子的第一运行时间中,选取最大的第一运行时间与存在所述串行关系的所述算子的第一运行时间相加,得到所述第二运行时间。
22.在本公开的一个实施例中,所述第一获取模块,还用于:基于访问内存所提供的额定带宽和所述eu的配置信息,获取所述eu的所述输入带宽和所述输出带宽。
23.本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面实施例的芯片的性能确定方法。
24.本公开第四方面实施例提出了一种存储有计算机指令的计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述第一方面实施例的芯片的性能确定方法。
25.本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
26.本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
27.图1为本公开一实施例提供的芯片的性能确定方法的流程示意图;
28.图2为eu执行算子的示例图;
29.图3为本公开另一实施例提供的芯片的性能确定方法的流程示意图;
30.图4为eu访问内存的示例图;
31.图5为本公开另一实施例提供的芯片的性能确定方法的流程示意图;
32.图6为本公开另一实施例提供的芯片的性能确定方法的流程示意图;
33.图7为本公开另一实施例提供的芯片的性能确定装置的结构示意图;
34.图8为本公开一实施例提供的电子设备的框图。
具体实施方式
35.下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
36.下面参考附图描述本公开实施例的芯片的性能确定方法、装置、电子设备和存储介质。
37.图1为本公开一实施例提供的芯片的性能确定方法的流程示意图,如图1所示,该方法包含以下步骤:
38.s101,在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间。
39.需要说明的是,本公开实施例的芯片的性能确定方法的执行主体为芯片的性能确定装置,该装置可以由软件和/或硬件的方式实现,该芯片的性能确定装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。
40.本公开实施例中的芯片可以为应用于多个场景的定制类芯片,例如神经网络处理器(neural network processing unit,npu)、大脑处理器(brain processing unit,bpu)等,此处不做任何限定。
41.算子指一个函数空间到另一个函数空间(或自身)的映射,该算子可以包括微分算子、梯度算子、散度算子、拉普拉斯算子、哈密顿算子等,此处不做任何限定。
42.其中,预设算法可以为预先开发好的算法,该预设算法被分解成多个算子部署于芯片的至少一个执行单元(execution unit,eu)中,由该至少一个eu执行预设算法中的各个算子。在至少一个eu执行预设算法中的各个算子的过程中,可以由一个eu执行一个算子,也可以由于一个eu执行多个算子,此处不做任何限定。
43.在预设算法部署于芯片中之后,可以在芯片上执行该预设算法,在芯片执行预设算法的过程中,可以获取芯片中每个eu执行每个算子的第一运行时间,以获取芯片执行预设算法的性能参数。
44.s102,基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间。
45.其中,执行逻辑包括并行执行逻辑和串行执行逻辑,其中,并行执行逻辑为多个eu同时执行各自对应的算子的执行方式,串行执行逻辑为单个eu执行多个算子的执行方式。
46.可选地,基于eu执行算子的执行逻辑,确定算子之间的串并行关系,响应于算子之间存在并行关系,从算子的第一运行时间中,选取最大的第一运行时间作为第二运行时间;响应于算子之间存在串行关系,将算子的第一运行时间相加,得到第二运行时间;响应于算子之间存在并行关系和串行关系,从存在并行关系的算子的第一运行时间中,选取最大的第一运行时间与存在串行关系的算子的第一运行时间相加,得到第二运行时间。
47.在一些实施例中,在eu执行算子的过程中,对于由eu并行执行的算子,算子之间存在着并行关系,对于由eu串行执行的算子,算子之间存在着串行关系。
48.若算子之间存在并行关系,则从算子的第一运行时间中,选取最大的第一运行时间作为芯片执行预设算法的第二运行时间。
49.举例而言,假设预设算法包括算子1、算子2和算子3,其中,算子1由eu_1执行,算子
2由eu_2执行,算子3由eu_3,算子1、算子2和算子3存在着并行关系,则可以通过下述公式(1)计算芯片执行预设算法的第二运行时间。
50.cycles=max(cycle_opr1,cycle_opr2,cycle_opr3) (1)
51.其中,cycles为芯片执行预设算法的第二运行时间,cycle_opr1为eu执行算子1的第一运行时间,cycle_opr2为eu执行算子2的第一运行时间,cycle_opr3为eu执行算子3的第一运行时间,max()表示取最大值。
52.若算子之间存在串行关系,则将算子的第一运行时间相加,得到芯片执行预设算法的第二运行时间。
53.举例而言,假设预设算法包括算子1、算子2和算子3,其中,算子1、算子2和算子3由eu_1执行,则可以通过下述公式(2)计算芯片执行预设算法的第二运行时间。
54.cycles=cycle_opr1+cycle_opr2+cycle_opr3(2)
55.若算子之间存在并行关系和串行关系,则从存在并行关系的算子的第一运行时间中,选取最大的第一运行时间与存在串行关系的算子的第一运行时间相加,得到芯片执行预设算法的第二运行时间。
56.举例而言,参见图2,假设预设算法包括算子1、算子2和算子3,其中,算子1和算子3由eu_1执行,算子2由eu_2执行,算子3的输入是算子1和算子2的输出,则在eu执行算子的过程为算子1与算子2并行执行之后,与算子3串行执行,可以通过下述公式(3)计算芯片执行预设算法的第二运行时间。
57.cycles=max(cycle_opr1,cycle_opr2)+cycle_opr3(3)
58.s103,基于第二运行时间,获取芯片执行预设算法的性能参数。
59.本公开实施例中,在获取芯片执行预设算法的第二运行时间之后,可以以多种方式获取芯片执行预设算法的性能参数,此处不做任何限定。
60.在一些实施例中,可以直接将芯片执行预设算法的第二运行时间作为芯片执行该预设算法的性能参数。
61.在另一些实施例中,可以对第二运行时间进行归一化处理,将归一化处理后的结果作为芯片执行预设算法的性能参数。
62.本公开实施例中,在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间,基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间,基于第二运行时间,获取芯片执行预设算法的性能参数。本公开实施例中,能够通过芯片执行算法的时间获取芯片执行算法的性能参数,从而根据性能参数确定芯片执行算法的性能,进而在算法开发的过程中对算法的实现性能和部署性能进行评估,提高算法的实现性能和部署性能。
63.图3为本公开一实施例提供的芯片的性能确定方法的流程示意图,在上述实施例的基础上,进一步结合图3,对获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间的过程进行解释说明,包含以下步骤:
64.s301,获取eu执行算子中计算功能的总功能计算时间。
65.其中,算子包括至少一个计算功能,eu包括至少一个功能计算模块,每个功能计算模块用于执行算子中对应的计算功能,例如,若算子中包括加法计算功能,则由eu中具有加法功能的功能计算模块执行该加法计算功能。
66.本公开实施例中的功能计算模块可以为运算器,该运算器可以由算术逻辑单元、累加器、状态寄存器、通用寄存器等组成,用于执行加、减、乘、除、与、或、非、异或等计算功能。
67.在实际应用中,算子往往包括多个计算功能,在执行该算子时,可以将eu中的多个功能计算模块进行组合,以实现算子所有的计算功能,完成算子的执行任务。
68.举例而言,参见图4,eu_1的功能计算模块包括功能计算模块a、功能计算模块b和功能计算模块c,eu_2的功能计算模块包括功能计算模块d、功能计算模块e和功能计算模块f,在执行算子时,可以将功能计算模块a、功能计算模块b、功能计算模块c、功能计算模块d、功能计算模块e和功能计算模块f自由组合,以实现算子所有的计算功能,完成算子的执行任务。
69.本公开实施例中,可以获取每个功能计算模块执行算子中对应的计算功能的功能计算时间,比较每个功能计算模块的功能计算时间,从中选取最大的功能计算时间作为总功能计算时间。
70.其中,功能计算时间为功能计算模块执行对应计算功能所花费的时间。
71.举例而言,参见图4,假设算子4包括计算功能a、计算功能b和计算功能c,计算功能a、计算功能b和计算功能c分别由eu_1中的功能计算模块a、功能计算模块b和功能计算模块c执行,则可以通过下述公式(4)计算eu_1执行算子4的总功能计算时间。
72.cycle_total=max(cycle_calc_a,cycle_calc_b,cycle_calc_c)(4)
73.其中,cycle_total为eu执行算子的总功能计算时间,即eu_1执行算子4的总功能计算时间,cycle_calc_a为功能计算模块a执行计算功能a的功能计算时间,cycle_calc_b为功能计算模块b执行计算功能b的功能计算时间,cycle_calc_c为功能计算模块c执行计算功能c的功能计算时间。
74.s302,基于总功能计算时间,获取eu执行算子的第一运行时间。
75.在获取eu执行算子中计算功能的总功能计算时间之后,可以根据该总功能计算时间,获取eu执行该算子的第一运行时间。
76.本公开实施例中,获取eu执行算子中计算功能的总功能计算时间,基于总功能计算时间,获取eu执行算子的第一运行时间。本公开实施例中,通过获取eu执行算子中计算功能的总功能计算时间,获取eu执行算子的第一运行时间,能够准确地获取eu执行算子的运行时间。
77.图5为本公开一实施例提供的芯片的性能确定方法的流程示意图,在上述实施例的基础上,进一步结合图5,对基于总功能计算时间,获取eu执行算子的第一运行时间的过程进行解释说明,包含以下步骤:
78.s501,获取eu的输入带宽和输出带宽。
79.可选地,基于访问内存所提供的额定带宽和eu的配置信息,获取eu的输入带宽和输出带宽。
80.参见图4,芯片执行预设算法的过程中会对内存进行访问,即对内存进行读写操作。对于单个eu执行预设算法的场景,访问内存所提供的额定带宽较为充足,eu实际的输入带宽和输出带宽能够达到自身的理论输入带宽和理论输出带宽,可以根据eu自身的配置信息,获取eu实际的输入带宽和输出带宽;对于多个eu执行预设算法的场景,访问访问内存所
提供的额定带宽会分配至多个eu中,在eu数量较多的情况下,eu实际的输入带宽和输出带宽可能无法达到自身的理论输入带宽和理论输出带宽,可以根据访问内存所提供的额定带宽和自身的配置信息,获取eu实际的输入带宽和输出带宽。
81.s502,基于总功能计算时间、输入带宽和输出带宽,获取第一运行时间。
82.可以通过下述公式(5)计算eu执行算子的第一运行时间。
83.cycle_opr=cycle_total*max(1,ibw/ibw_real,obw/obw_real)(5)
84.其中,cycle_opr为eu执行算子的第一运行时间,ibw为eu的理论输入带宽,ibw_real为eu的(实际)输入带宽,obw为eu的理论输出带宽,obw_real为eu的(实际)输出带宽。
85.本公开实施例中,获取eu的输入带宽和输出带宽,基于总功能计算时间、输入带宽和输出带宽,获取第一运行时间。本公开实施例能够准确地获取eu执行算子的第一运行时间,从而提高性能参数的准确性。
86.在芯片的eu执行算子的计算功能时,可能会存在一定的延迟,可以将芯片执行算子的延迟时间计入芯片的eu执行算子的运行时间内,以得到更加准确的运行时间。
87.图6为本公开一实施例提供的芯片的性能确定方法的流程示意图,在上述实施例的基础上,进一步结合图6,对基于总功能计算时间,获取eu执行算子的第一运行时间的过程进行解释说明,包含以下步骤:
88.s601,获取eu的输入带宽和输出带宽。
89.关于步骤s601的描述可以参见步骤s501中的相关介绍,此处不再赘述。
90.s602,获取eu执行算子的第一延迟时间。
91.可选地,获取eu中每个功能计算模块执行算子中对应的计算功能的第二延迟时间,基于第二延迟时间,获取eu执行算子的第一延迟时间。
92.在一些实施例中,可以获取eu中每个功能计算模块执行算子中对应的计算功能的第二延迟时间,然后将该eu中所有功能计算模块执行算子中对应的计算功能的第二延迟时间相加,得到该eu执行算子的第一延迟时间。
93.s603,基于总功能计算时间、输入带宽、输出带宽和第一延迟时间,获取第一运行时间。
94.可以通过下述公式(6)计算eu执行算子的第一运行时间。
95.cycle_opr=latency_total+cycle_total*max(1,ibw/ibw_real,obw/obw_real)(6)
96.其中,cycle_opr为eu执行算子的第一运行时间,ibw为eu的理论输入带宽,ibw_real为eu的(实际)输入带宽,obw为eu的理论输出带宽,obw_real为eu的(实际)输出带宽,latency_total为第一延迟时间。
97.本公开实施例中,获取eu的输入带宽和输出带宽,获取eu执行算子的第一延迟时间,基于总功能计算时间、输入带宽、输出带宽和第一延迟时间,获取第一运行时间。本公开实施例能够准确地获取eu执行算子的第一运行时间,从而提高性能参数的准确性,并且考虑了延迟对于eu执行算子的运行时间的影响,从而排除延迟对于性能参数的影响。
98.为了实现上述实施例,本公开实施例还提出一种芯片的性能确定装置。图7为本公开一实施例的芯片的性能确定装置的结构示意图。如图7所示,芯片的性能确定装置700包括:
99.第一获取模块710,用于在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间,预设算法被分解成多个算子部署于芯片的至少一个eu中;
100.第二获取模块720,用于基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间;
101.第三获取模块730,用于基于第二运行时间,获取芯片执行预设算法的性能参数。
102.本公开实施例中,在芯片执行预设算法的过程中,获取芯片的执行单元eu执行预设算法所包括的算子的第一运行时间,基于第一运行时间和eu执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间,基于第二运行时间,获取芯片执行预设算法的性能参数。能够通过芯片执行算法的时间获取芯片执行算法的性能参数,从而根据性能参数确定芯片执行算法的性能,进而在算法开发的过程中对算法的实现性能和部署性能进行评估,提高算法的实现性能和部署性能。
103.在本公开的一个实施例中,算子包括至少一个计算功能,第一获取模块710,还用于:获取eu执行算子中计算功能的总功能计算时间;基于总功能计算时间,获取eu执行算子的第一运行时间。
104.在本公开的一个实施例中,eu包括至少一个功能计算模块,每个功能计算模块用于执行算子中对应的计算功能,第一获取模块710,还用于:获取每个功能计算模块执行算子中对应的计算功能的功能计算时间;比较每个功能计算模块的功能计算时间,从中选取最大的功能计算时间作为总功能计算时间。
105.在本公开的一个实施例中,第一获取模块710,还用于:获取eu的输入带宽和输出带宽;基于总功能计算时间、输入带宽和输出带宽,获取第一运行时间。
106.在本公开的一个实施例中,第一获取模块710,还用于:获取eu的输入带宽和输出带宽;获取eu执行算子的第一延迟时间;基于总功能计算时间、输入带宽、输出带宽和第一延迟时间,获取第一运行时间。
107.在本公开的一个实施例中,第一获取模块710,还用于:获取eu中每个功能计算模块执行算子中对应的计算功能的第二延迟时间;基于第二延迟时间,获取eu执行算子的第一延迟时间。
108.在本公开的一个实施例中,第二获取模块720,还用于:基于eu执行算子的执行逻辑,确定算子之间的串并行关系;响应于算子之间存在并行关系,从算子的第一运行时间中,选取最大的第一运行时间作为第二运行时间;响应于算子之间存在串行关系,将算子的第一运行时间相加,得到第二运行时间;响应于算子之间存在并行关系和串行关系,从存在并行关系的算子的第一运行时间中,选取最大的第一运行时间与存在串行关系的算子的第一运行时间相加,得到第二运行时间。
109.在本公开的一个实施例中,第一获取模块710,还用于:基于访问内存所提供的额定带宽和eu的配置信息,获取eu的输入带宽和输出带宽。
110.需要说明的是,上述对芯片的性能确定方法实施例的解释说明,也适用于本公开实施例的芯片的性能确定装置,具体过程此处不再赘述。
111.为了实现上述实施例,如图8所示,本公开还提出一种电子设备800,包括存储器810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序,处理器820执
行程序,以实现本公开前述实施例提出的芯片的性能确定方法。
112.为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现本公开前述实施例提出的芯片的性能确定方法。
113.在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
114.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
115.尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:


1.一种芯片的性能确定方法,其特征在于,包括:在芯片执行预设算法的过程中,获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,所述预设算法被分解成多个所述算子部署于所述芯片的至少一个所述eu中;基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间;基于所述第二运行时间,获取所述芯片执行所述预设算法的性能参数。2.根据权利要求1所述的方法,其特征在于,所述算子包括至少一个计算功能,所述获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,包括:获取所述eu执行所述算子中所述计算功能的总功能计算时间;基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间。3.根据权利要求2所述的方法,其特征在于,所述eu包括至少一个功能计算模块,每个所述功能计算模块用于执行所述算子中对应的所述计算功能,所述获取所述eu执行所述算子中所述计算功能的总功能计算时间,包括:获取每个所述功能计算模块执行所述算子中对应的所述计算功能的功能计算时间;比较每个所述功能计算模块的功能计算时间,从中选取最大的功能计算时间作为所述总功能计算时间。4.根据权利要求2所述的方法,其特征在于,所述基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间,包括:获取所述eu的输入带宽和输出带宽;基于所述总功能计算时间、所述输入带宽和所述输出带宽,获取所述第一运行时间。5.根据权利要求2所述的方法,其特征在于,所述基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间,包括:获取所述eu的输入带宽和输出带宽;获取所述eu执行所述算子的第一延迟时间;基于所述总功能计算时间、所述输入带宽、所述输出带宽和所述第一延迟时间,获取所述第一运行时间。6.根据权利要求5所述的方法,其特征在于,所述获取所述eu执行所述算子的第一延迟时间,包括:获取所述eu中每个功能计算模块执行所述算子中对应的所述计算功能的第二延迟时间;基于所述第二延迟时间,获取所述eu执行所述算子的第一延迟时间。7.根据权利要求1所述的方法,其特征在于,所述基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间,包括:基于所述eu执行所述算子的执行逻辑,确定所述算子之间的串并行关系;响应于所述算子之间存在并行关系,从所述算子的第一运行时间中,选取最大的第一运行时间作为所述第二运行时间;响应于所述算子之间存在串行关系,将所述算子的第一运行时间相加,得到所述第二运行时间;
响应于所述算子之间存在所述并行关系和所述串行关系,从存在所述并行关系的所述算子的第一运行时间中,选取最大的第一运行时间与存在所述串行关系的所述算子的第一运行时间相加,得到所述第二运行时间。8.根据权利要求4或5中任一项所述的方法,其特征在于,所述获取所述eu的输入带宽和输出带宽,包括:基于访问内存所提供的额定带宽和所述eu的配置信息,获取所述eu的所述输入带宽和所述输出带宽。9.一种芯片的性能确定装置,其特征在于,包括:第一获取模块,用于在芯片执行预设算法的过程中,获取所述芯片的执行单元eu执行所述预设算法所包括的算子的第一运行时间,所述预设算法被分解成多个所述算子部署于所述芯片的至少一个所述eu中;第二获取模块,用于基于所述第一运行时间和所述eu执行所述算子的执行逻辑,获取所述芯片执行所述预设算法的第二运行时间;第三获取模块,用于基于所述第二运行时间,获取所述芯片执行所述预设算法的性能参数。10.根据权利要求9所述的装置,其特征在于,所述算子包括至少一个计算功能,所述第一获取模块,还用于:获取所述eu执行所述算子中所述计算功能的总功能计算时间;基于所述总功能计算时间,获取所述eu执行所述算子的所述第一运行时间。11.根据权利要求10所述的装置,其特征在于,所述eu包括至少一个功能计算模块,每个所述功能计算模块用于执行所述算子中对应的所述计算功能,所述第一获取模块,还用于:获取每个所述功能计算模块执行所述算子中对应的所述计算功能的功能计算时间;比较每个所述功能计算模块的功能计算时间,从中选取最大的功能计算时间作为所述总功能计算时间。12.根据权利要求10所述的装置,其特征在于,所述第一获取模块,还用于:获取所述eu的输入带宽和输出带宽;基于所述总功能计算时间、所述输入带宽和所述输出带宽,获取所述第一运行时间。13.根据权利要求10所述的装置,其特征在于,所述第一获取模块,还用于:获取所述eu的输入带宽和输出带宽;获取所述eu执行所述算子的第一延迟时间;基于所述总功能计算时间、所述输入带宽、所述输出带宽和所述第一延迟时间,获取所述第一运行时间。14.根据权利要求13所述的装置,其特征在于,所述第一获取模块,还用于:获取所述eu中每个功能计算模块执行所述算子中对应的所述计算功能的第二延迟时间;基于所述第二延迟时间,获取所述eu执行所述算子的第一延迟时间。15.根据权利要求9所述的装置,其特征在于,所述第二获取模块,还用于:基于所述eu执行所述算子的执行逻辑,确定所述算子之间的串并行关系;
响应于所述算子之间存在并行关系,从所述算子的第一运行时间中,选取最大的第一运行时间作为所述第二运行时间;响应于所述算子之间存在串行关系,将所述算子的第一运行时间相加,得到所述第二运行时间;响应于所述算子之间存在所述并行关系和所述串行关系,从存在所述并行关系的所述算子的第一运行时间中,选取最大的第一运行时间与存在所述串行关系的所述算子的第一运行时间相加,得到所述第二运行时间。16.根据权利要求12或13中任一项所述的装置,其特征在于,所述第一获取模块,还用于:基于访问内存所提供的额定带宽和所述eu的配置信息,获取所述eu的所述输入带宽和所述输出带宽。17.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任一项所述的方法。18.一种存储有计算机指令的计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1-8中任一项所述的方法。

技术总结


本公开提出一种芯片的性能确定方法、装置、电子设备及存储介质,其中,芯片的性能确定方法包括:在芯片执行预设算法的过程中,获取芯片的执行单元EU执行预设算法所包括的算子的第一运行时间,预设算法被分解成多个算子部署于芯片的至少一个EU中;基于第一运行时间和EU执行算子的执行逻辑,获取芯片执行预设算法的第二运行时间;基于第二运行时间,获取芯片执行预设算法的性能参数。由此,能够获取芯片执行算法的性能参数,从而在算法开发的过程中对算法的实现性能和部署性能进行评估,以提高算法的实现性能和部署性能。算法的实现性能和部署性能。算法的实现性能和部署性能。


技术研发人员:

严寒 梁喆 庄永文

受保护的技术使用者:

北京爱芯科技有限公司

技术研发日:

2022.07.05

技术公布日:

2023/3/24

本文发布于:2024-09-23 04:25:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/78235.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   算子   时间   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议