CN117076282B - 硬件算子时间性能的检测方法及装置 - Google Patents
硬件算子时间性能的检测方法及装置 Download PDFInfo
- Publication number
- CN117076282B CN117076282B CN202311335808.0A CN202311335808A CN117076282B CN 117076282 B CN117076282 B CN 117076282B CN 202311335808 A CN202311335808 A CN 202311335808A CN 117076282 B CN117076282 B CN 117076282B
- Authority
- CN
- China
- Prior art keywords
- operator
- function
- target
- detected
- hardware
- 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 129
- 230000006870 function Effects 0.000 claims abstract description 401
- 238000001514 detection method Methods 0.000 claims abstract description 95
- 230000008569 process Effects 0.000 claims abstract description 39
- 238000013507 mapping Methods 0.000 claims abstract description 34
- 230000008570 general process Effects 0.000 claims abstract description 15
- 238000011423 initialization method Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 12
- 230000002123 temporal effect Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000005012 migration Effects 0.000 abstract 1
- 238000013508 migration Methods 0.000 abstract 1
- 238000013473 artificial intelligence Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000007429 general method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种硬件算子时间性能的检测方法及装置,方法包括:获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用扩展功能代理中的目标扩展操作函数以及算子执行映射代理中的目标算子执行函数,执行待检测算子函数的操作;调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。基于此,提高算子检测的易用性、迁移性和灵活性。
Description
技术领域
本发明涉及人工智能技术领域,特别是涉及硬件算子时间性能的检测方法及装置。
背景技术
算子是构建人工智能应用算法的计算单元,被相关硬件所封装,能够被人工智能应用调用并获得返回结果。算子接口定义了算子的调用形式以及功能说明,但不同的硬件对算子的支撑能力不同,其差异主要体现在计算效率和计算精度。当一项人工智能应用希望使用某款硬件进行加速时,首先需要确定该款硬件是否支持本应用中所调用的算子。然而,实际应用中,很难知道一款硬件支持哪些算子,以及哪些应用在该款硬件上运行良好。因此,需要对算子进行检测,以确定算子是否能够在一款硬件上运行,以及在硬件上运行的耗时状态,以确定算子在一款硬件上的运行状态。
通常情况下,由于当前的各种人工智能硬件大部分都提供了软件开发工具包(Software development kit,SDK)包供硬件使用方调用,但是多数硬件厂商没有提供完整的检测库检测硬件算子的能力,部分硬件厂商只是提供了部分硬件算子的检测代码,并且由于每种算子都有不同的参数和硬件使用条件,如果由硬件使用者来测试算子能力,需要算子使用者根据智能硬件提供的SDK自己编写测试用例,将花费很大的精力。因此,导致对不同硬件上不同算子的运行能力检测的工作量较大,针对不同硬件上不同算子的运行能力检测方法的迁移性和灵活性不高。
发明内容
本发明提供一种硬件算子时间性能的检测方法及装置,用以解决现有技术中针对不同硬件上不同算子的运行能力检测方法的迁移性和灵活性不高的问题,实现提高算子检测的易用性、迁移性和灵活性。
一种硬件算子时间性能的检测方法,所述方法包括:获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
在其中一个实施例中,所述基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作,包括:确定所述扩展功能代理中,是否包含所述目标扩展操作函数;在确定所述扩展功能代理中,包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标扩展操作函数,执行所述待检测算子函数的扩展操作;并调用所述目标算子执行函数,执行待检测算子函数的主操作;或,在确定所述扩展功能代理中,不包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标算子执行函数,执行待检测算子函数的主操作。
在其中一个实施例中,所述调用所述目标算子执行函数,执行待检测算子函数的主操作,包括:从算子执行映射代理中,查找与所述待检测算子函数的函数名称对应的目标算子执行函数;在确定算子执行映射代理中包含所述目标算子执行函数的情况下,调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能。
在其中一个实施例中,所述调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能,包括:基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式;基于算子检测参数代理中预设的参数规则映射方法,验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则;在确定所述转换后的输入参数符合目标算子执行函数的预设参数规则的情况下,将转换后的输入参数传给目标算子执行函数,使目标算子执行函数在硬件设备执行。
在其中一个实施例中,所述算子执行函数需要的参数形式包括:参数对应的数据类型和数据维度;所述基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式,包括:基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数的数据维度,转换为目标算子执行函数需要的数据维度;并将所述初始化后的输入参数的数据类型,转换为目标算子执行函数需要的数据类型。
在其中一个实施例中,预设的参数规则映射方法中包括:目标算子执行函数的输入参数的个数以及各输入参数的维度;所述验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则,包括:验证所述转换后的输入参数的维度,是否与所述目标算子执行函数中对应的输入参数的维度一致;并验证所述转换后的输入参数的个数,是否与所述目标算子执行函数的输入参数的个数一致。
在其中一个实施例中,所述方法还包括:在确定算子执行映射代理中不包含所述目标算子执行函数的情况下,确定硬件设备不支持所述待检测算子函数,或者待检测算子函数的函数名称输入有误。
本发明还提供了一种硬件算子时间性能的检测装置,包括:获取模块,用于获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;第一处理模块,用于调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;第二处理模块,用于调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述硬件算子时间性能的检测方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述硬件算子时间性能的检测方法的步骤。
上述硬件算子时间性能的检测方法及装置,通过将硬件算子的检测过程中涉及的方法分别简化为多个代理:算子检测的通用过程代理、扩展功能代理、算子检测参数代理以及算子执行映射代理,通过将多个代理的功能进行串联组合,可以完成任意算子的性能评测。具体地,由于将算子的检测过程的一些通用的方法在算子检测的通用过程代理中预定义,并将扩展功能单独定义到一个扩展功能代理中,将硬件设备的算子执行函数中对于参数的形式要求以及规则,定义到算子检测参数代理中,以及将算子执行函数统一放入算子执行映射代理中,从而在实际进行算子检测时,可以按照预设的算子检测步骤,基于待检测算子函数的名称以及输入参数,分别从上述多个代理中调用算子检测过程中涉及的内容(包括初始化函数、计时方法、扩展操作函数、算子执行函数、参数转换以及参数验证),对待检测算子函数进行检测,实现对任意一个算子函数的进行检测,提高算子检测的易用性、迁移性和灵活性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中硬件算子时间性能的检测方法的流程示意图之一;
图2为一个实施例中硬件算子时间性能的检测方法的流程示意图之二;
图3为一个实施例中硬件算子时间性能的检测方法的流程示意图之三;
图4为一个实施例中硬件算子时间性能的检测方法的流程示意图之四;
图5为一个实施例中提供的硬件算子时间性能的检测装置的框架示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了便于理解,首先对本发明涉及的技术术语以及发明构思进行说明。
人工智能硬件是人工智能应用运算的载体。专用人工智能硬件能够比中央处理器(Central processing unit,CPU)高几个数量级地提高计算速度,从而保证人工智能应用按时完成计算。为实现人工智能应用常用的算子进行硬件加速,专用人工智能硬件会进行专门的设计和实现。因此,不同的人工智能硬件对算子的计算速度和计算精度是不同的。
算子是针对人工智能应用的特殊运算,硬件是算子执行的载体。人工智能算法对硬件的执行效率一定程度上也取决于硬件算子本身执行的效率,特别对于一些计算耗时的算法来说,硬件上的时间性能称为了硬件选择的一个重要指标。比如视频编解码操作,模型训练操作等。特别是目前各种新型的异构硬件不断出现,而硬件对应的算子检测机制的不足严重影响了人工智能硬件使用者如何判断并选择合适的硬件来进行人工智能开发。
而结合现有的技术,但是多数硬件厂商没有提供完整的检测库检测硬件算子的能力,部分硬件厂商只是提供了部分硬件算子的检测代码,并且由于每种算子都有不同的参数和硬件使用条件,如果由硬件使用者来测试算子能力,需要算子使用者根据智能硬件提供的SDK自己编写测试用例,将花费很大的精力。因此,导致对不同硬件上不同算子的运行能力检测的工作量较大,针对不同硬件上不同算子的运行能力检测方法的迁移性和灵活性不高。
基于此,本发明提供的硬件算子时间性能的检测方法,通过将硬件算子的检测过程中涉及的方法分别简化为多个代理:算子检测的通用过程代理、扩展功能代理、算子检测参数代理以及算子执行映射代理,通过将多个代理的功能进行串联组合,可以完成任意算子的性能评测。具体地,由于将算子的检测过程的一些通用的方法在算子检测的通用过程代理中预定义,并将扩展功能单独定义到一个扩展功能代理中,将硬件设备的算子执行函数中对于参数的形式要求以及参数规则,定义到算子检测参数代理中,以及将算子执行函数统一放入算子执行映射代理中,从而在实际进行算子检测时,可以按照预设的算子检测步骤,基于待检测算子函数的名称以及输入参数,分别从上述多个代理中调用算子检测过程中涉及的内容(包括初始化函数、计时方法、扩展操作函数、算子执行函数、参数转换以及参数验证),对待检测算子函数进行检测,实现对任意一个算子函数的进行检测,提高算子检测的易用性、迁移性和灵活性。
下面结合附图描述本发明的硬件算子时间性能的检测方法及装置。
如图1所示,在一个实施例中,提出了一种硬件算子时间性能的检测方法,该硬件算子时间性能的检测方法可以由硬件算子时间性能的检测装置执行。硬件算子时间性能的检测装置可以为客户所使用的计算机设备或服务器。具体地,如图1所示,本发明提供的硬件算子时间性能的检测方法可以包括以下步骤:
步骤110,获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数。
其中,待检测算子函数为待检测的人工智能算子函数,例如,卷积算子函数,又例如,求和算子函数。相应的,所述输入参数为待检测算子函数需要的输入参数,以前向卷积算子函数为例,其对应的输入参数可以包括输入特征x以及卷积层的权重weight。
其中,算子检测的通用过程代理中包括算子检测过程中的一些通用的处理过程。在其中一个实施例中,算子检测的通用过程代理中至少可以包括:初始化方法、启动计时方法、结束计时方法,以及释放检测操作及数据的方法。其中,初始化方法用于初始化所需的硬件设备以及所述输入参数。释放检测操作及数据的方法用于在对算子的时间性能检测结束后,返回相应的结果并释放相应的数据和参数。
可以理解,通过在算子检测的通用过程代理中定义算子检测过程中的一些通用的处理过程,从而使后续实际进行算子的时间性能检测时,可以从算子检测的通用过程代理中,调用相应的通用的处理过程进行处理。
步骤120,调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作。
其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数。
其中,扩展功能代理中包括算子检测时的特殊需求对应的扩展操作函数。示例性地,关于某硬件中对卷积前向算子进行检测时,需要先为卷积前向算子做一些特殊的分配初始化操作(例如为卷积前向算子分配相应的workspace空间),该特殊的分配初始化操作对应的函数即为卷积前向算子的扩展操作函数。
可以理解,通过在扩展功能代理定义算子检测时的特殊需求对应的扩展操作函数,从而使后续实际进行算子的时间性能检测时,可以从扩展功能代理中,调用相应的扩展操作函数进行处理,以完成算子检测时的特殊需要。
此外,算子执行映射代理主要用于查找硬件设备中与待检测算子的函数名称对应的算子执行函数。
可以理解,由于不同厂商的硬件设备会封装自己的SDK,可以定义自己的硬件算子执行函数名称,因此为了最终能够根据实际的情况调用不同厂商的硬件设备对应的硬件算子执行函数,可以将常用待检测算子与各厂商的硬件设备对应的算子执行函数名称对应,以便在需要各厂商的硬件设备对应的算子执行函数执行实际的硬件算子操作时,能够找到厂商的硬件设备对应的算子执行函数。
步骤130,调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
其中,结束计时方法用于在待检测算子函数的操作执行完成后,结束计时,以便得到所述待检测算子函数在硬件设备的运行时间。
本发明提供的硬件算子时间性能的检测方法,通过将硬件算子的检测过程中涉及的方法分别简化为多个代理:算子检测的通用过程代理、扩展功能代理、算子检测参数代理以及算子执行映射代理,通过将多个代理的功能进行串联组合,可以完成任意算子的性能评测。具体地,由于将算子的检测过程的一些通用的方法在算子检测的通用过程代理中预定义,并将扩展功能单独定义到一个扩展功能代理中,以及将算子执行函数统一放入算子执行映射代理中,从而在实际进行算子检测时,可以按照预设的算子检测步骤,基于待检测算子函数的名称以及输入参数,分别从上述多个代理中调用算子检测过程中涉及的内容(包括初始化函数、计时方法、扩展操作函数、算子执行函数),对待检测算子函数进行检测,实现对任意一个算子函数的进行检测,提高算子检测的易用性、迁移性和灵活性。
可以理解,实际应用中,待检测算子函数在硬件设备执行时,可能有特殊的需求或者没有特殊的需求,因此,如图2所示,在其中一个实施例中,所述基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作,包括:
步骤210,确定所述扩展功能代理中,是否包含所述目标扩展操作函数。
可以理解,为了能够应用目标扩展操作函数,在该步骤210之前,所述方法还可以包括:在所述扩展功能代理中,定义待检测算子函数的注册过程,所述注册过程用于注册与所述待检测算子函数对应的扩展操作函数名称以及函数。
步骤220,在确定所述扩展功能代理中,包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标扩展操作函数,执行所述待检测算子函数的扩展操作;并调用所述目标算子执行函数,执行待检测算子函数的主操作。
可以理解,实际应用中,目标扩展操作函数和目标算子执行函数的执行顺序可能不同,因此,可以根据实际应用中硬件设备对目标扩展操作函数和目标算子执行函数的要求执行顺序,按顺序执行。
步骤230,在确定所述扩展功能代理中,不包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标算子执行函数,执行待检测算子函数的主操作。
可以理解,可以根据实际情况中,待检测算子函数在硬件设备执行时有没有扩展功能代理,选择步骤220或者步骤230中的一项执行。
在其中一个实施例中,所述调用所述目标算子执行函数,执行待检测算子函数的主操作,包括以下步骤:
步骤310,从算子执行映射代理中,查找与所述待检测算子函数的函数名称对应的目标算子执行函数。
步骤320,在确定算子执行映射代理中包含所述目标算子执行函数的情况下,调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能。
与步骤320对应地,在步骤330中,在确定算子执行映射代理中不包含所述目标算子执行函数的情况下,确定硬件设备不支持所述待检测算子函数,或者待检测算子函数的函数名称输入有误。
需要说明的是,算子执行映射代理可以用于查找硬件设备中与待检测算子的函数名称对应的算子执行函数,并且,硬件厂商提供了与待检测算子的函数名称对应的算子执行函数的接口,因此算子执行函数对应的参数形式也是固定的,因此,需要将输入参数转换为算子执行函数需要的参数形式,并对算子执行函数的输入参数进行校验。因此,在算子执行映射代理还可以用于将输入参数转换为目标算子执行函数需要的参数形式,以及用于对算子执行函数的输入参数进行校验。
因此,如图4所示,在其中一个实施例中,所述调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能,包括:
步骤410,基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式。
其中,所述算子执行函数需要的参数形式包括:参数对应的数据类型和数据维度。
具体地,该步骤410可以包括:基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数的数据维度,转换为目标算子执行函数需要的数据维度;并将所述初始化后的输入参数的数据类型,转换为目标算子执行函数需要的数据类型。其中,数据维度例如可以为1*1、3*2以及3*2*1。数据类型例如可以为单精度浮点型float、整数型 int或双精度浮点型double。
可以理解,通过将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式,能够使输入参数符合不同厂商的硬件设备对应的算子执行函数的参数形式,从而能够调用不同厂商的硬件设备对应的硬件设备算子执行函数执行相应的操作。
步骤420,基于算子检测参数代理中预设的参数规则映射方法,验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则。
其中,预设的参数规则映射方法中包括:目标算子执行函数的输入参数的个数以及各输入参数的维度;相应地,所述验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则,包括:验证所述转换后的输入参数的维度,是否与所述目标算子执行函数中对应的输入参数的维度一致;并验证所述转换后的输入参数的个数,是否与所述目标算子执行函数的输入参数的个数一致。以求和函数为例,其对应的输入参数需要有两个,并且两个输入参数的维度需要一致。
步骤430,在确定所述转换后的输入参数符合目标算子执行函数的预设参数规则的情况下,将转换后的输入参数传给目标算子执行函数,使目标算子执行函数在硬件设备执行。
下面对本发明提供的硬件算子时间性能的检测装置进行描述,下文描述的硬件算子时间性能的检测装置与上文描述的硬件算子时间性能的检测方法可相互对应参照。
如图5所示,在一个实施例中,提供了一种硬件算子时间性能的检测装置,该硬件算子时间性能的检测装置可以包括:
获取模块510,用于获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;
第一处理模块520,用于调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;
第二处理模块530,用于调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下硬件算子时间性能的检测方法对应的步骤:获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行本发明提供的硬件算子时间性能的检测方法,其中,硬件算子时间性能的检测方法包括:获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行本发明提供的硬件算子时间性能的检测方法,其中,硬件算子时间性能的检测方法包括:获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种硬件算子时间性能的检测方法,其特征在于,所述方法包括:
获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;
调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;
调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
2.如权利要求1所述的硬件算子时间性能的检测方法,其特征在于,所述基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作,包括:
确定所述扩展功能代理中,是否包含所述目标扩展操作函数;
在确定所述扩展功能代理中,包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标扩展操作函数,执行所述待检测算子函数的扩展操作;并调用所述目标算子执行函数,执行待检测算子函数的主操作;或,
在确定所述扩展功能代理中,不包含所述目标扩展操作函数的情况下,基于所述待检测算子函数的函数名称和初始化后的输入参数,调用所述目标算子执行函数,执行待检测算子函数的主操作。
3.如权利要求2所述的硬件算子时间性能的检测方法,其特征在于,所述调用所述目标算子执行函数,执行待检测算子函数的主操作,包括:
从算子执行映射代理中,查找与所述待检测算子函数的函数名称对应的目标算子执行函数;
在确定算子执行映射代理中包含所述目标算子执行函数的情况下,调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能。
4.如权利要求3所述的硬件算子时间性能的检测方法,其特征在于,所述调用所述目标算子执行函数,基于所述初始化的输入参数和所述目标算子执行函数,在硬件设备执行所述目标算子执行函数的功能,包括:
基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式;
基于算子检测参数代理中预设的参数规则映射方法,验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则;
在确定所述转换后的输入参数符合目标算子执行函数的预设参数规则的情况下,将转换后的输入参数传给目标算子执行函数,使目标算子执行函数在硬件设备执行。
5.如权利要求4所述的硬件算子时间性能的检测方法,其特征在于,所述算子执行函数需要的参数形式包括:参数对应的数据类型和数据维度;
所述基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数,转换为目标算子执行函数需要的参数形式,包括:
基于算子检测参数代理中待检测算子函数的参数转换方法,将所述初始化后的输入参数的数据维度,转换为目标算子执行函数需要的数据维度;并将所述初始化后的输入参数的数据类型,转换为目标算子执行函数需要的数据类型。
6.如权利要求4所述的硬件算子时间性能的检测方法,其特征在于,预设的参数规则映射方法中包括:目标算子执行函数的输入参数的个数以及各输入参数的维度;
所述验证转换后的输入参数,是否符合所述目标算子执行函数的预设参数规则,包括:
验证所述转换后的输入参数的维度,是否与所述目标算子执行函数中对应的输入参数的维度一致;并验证所述转换后的输入参数的个数,是否与所述目标算子执行函数的输入参数的个数一致。
7.如权利要求3所述的硬件算子时间性能的检测方法,其特征在于,所述方法还包括:
在确定算子执行映射代理中不包含所述目标算子执行函数的情况下,确定硬件设备不支持所述待检测算子函数,或者待检测算子函数的函数名称输入有误。
8.一种硬件算子时间性能的检测装置,其特征在于,包括:
获取模块,用于获取待检测算子函数的函数名称和输入参数,调用算子检测的通用过程代理中的初始化方法,初始化所需的硬件设备以及所述输入参数;
第一处理模块,用于调用算子检测的通用过程代理中的开始计时方法进行计时,并基于所述待检测算子函数的函数名称和初始化后的输入参数,调用硬件设备对应的目标扩展操作函数以及目标算子执行函数,执行待检测算子函数的操作;其中,目标扩展操作函数为扩展功能代理中,与所述待检测算子函数对应的扩展操作函数;所述目标算子执行函数为算子执行映射代理中,与所述待检测算子函数的函数名称对应的算子执行函数;
第二处理模块,用于调用算子检测的通用过程代理中的结束计时方法结束计时,确定所述待检测算子函数在硬件设备的运行时间。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述硬件算子时间性能的检测方法的步骤。
10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述硬件算子时间性能的检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311335808.0A CN117076282B (zh) | 2023-10-16 | 2023-10-16 | 硬件算子时间性能的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311335808.0A CN117076282B (zh) | 2023-10-16 | 2023-10-16 | 硬件算子时间性能的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117076282A CN117076282A (zh) | 2023-11-17 |
CN117076282B true CN117076282B (zh) | 2023-12-15 |
Family
ID=88713757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311335808.0A Active CN117076282B (zh) | 2023-10-16 | 2023-10-16 | 硬件算子时间性能的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076282B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112686378A (zh) * | 2020-12-23 | 2021-04-20 | 展讯通信(上海)有限公司 | 神经网络的计算部署方法及装置、存储介质、计算机设备 |
CN115934346A (zh) * | 2022-12-28 | 2023-04-07 | 北京大学 | 算子的自动检测方法、装置、电子设备及介质 |
CN116501642A (zh) * | 2023-05-09 | 2023-07-28 | 北京大学 | 算子的测试方法及装置、非易失性存储介质、电子设备 |
CN116629330A (zh) * | 2023-04-24 | 2023-08-22 | 北京大学 | 一种算子检测方法、装置以及计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
-
2023
- 2023-10-16 CN CN202311335808.0A patent/CN117076282B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112686378A (zh) * | 2020-12-23 | 2021-04-20 | 展讯通信(上海)有限公司 | 神经网络的计算部署方法及装置、存储介质、计算机设备 |
CN115934346A (zh) * | 2022-12-28 | 2023-04-07 | 北京大学 | 算子的自动检测方法、装置、电子设备及介质 |
CN116629330A (zh) * | 2023-04-24 | 2023-08-22 | 北京大学 | 一种算子检测方法、装置以及计算机设备 |
CN116501642A (zh) * | 2023-05-09 | 2023-07-28 | 北京大学 | 算子的测试方法及装置、非易失性存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117076282A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2297637A1 (en) | A multiprocessor circuit using run-time task scheduling | |
CN103092751A (zh) | 一种云环境下基于用户行为模型的web应用性能测试系统 | |
CN112256321A (zh) | 静态库打包方法、装置、计算机设备和存储介质 | |
KR102333845B1 (ko) | 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체 | |
JP2019049843A (ja) | 実行ノード選定プログラム、実行ノード選定方法及び情報処理装置 | |
CN115934346B (zh) | 算子的自动检测方法、装置、电子设备及介质 | |
CN116126346B (zh) | Ai模型的代码编译方法、装置、计算机设备及存储介质 | |
CN115309562A (zh) | 算子调用系统、算子生成方法,电子设备 | |
CN110647981B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115981980A (zh) | 系统性能测试方法、装置、设备、介质和程序产品 | |
CN117076282B (zh) | 硬件算子时间性能的检测方法及装置 | |
US9104490B2 (en) | Methods, systems and apparatuses for processor selection in multi-processor systems | |
CN114327405A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110458285B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Mirandola et al. | UML based performance modeling of distributed systems | |
EP3857362A1 (en) | Method, apparatus, and electronic device for improving parallel performance of cpu | |
CN111857797A (zh) | 一种镜像构建方法、系统及相关装置 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN115203050A (zh) | 一种服务的依赖关系的确定方法及装置 | |
CN107015909B (zh) | 基于代码变更分析的测试方法及装置 | |
CN113391813A (zh) | 程序编译方法和装置、存储介质及电子设备 | |
Barigou et al. | Auto-tuning non-blocking collective communication operations | |
CN116501414B (zh) | 基于云平台的资源控制方法、装置、介质及计算设备 | |
CN112559276B (zh) | 一种cpu使用率监控方法及装置 |
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 |