CN113419941A - 评估方法及装置、电子设备和计算机可读存储介质 - Google Patents

评估方法及装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN113419941A
CN113419941A CN202110358457.XA CN202110358457A CN113419941A CN 113419941 A CN113419941 A CN 113419941A CN 202110358457 A CN202110358457 A CN 202110358457A CN 113419941 A CN113419941 A CN 113419941A
Authority
CN
China
Prior art keywords
target algorithm
algorithm
test
hardware
performance
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
CN202110358457.XA
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.)
Alibaba Innovation Co
Original Assignee
Alibaba Singapore Holdings Pte 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 Alibaba Singapore Holdings Pte Ltd filed Critical Alibaba Singapore Holdings Pte Ltd
Priority to CN202110358457.XA priority Critical patent/CN113419941A/zh
Publication of CN113419941A publication Critical patent/CN113419941A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3433Recording 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 for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种评估方法及装置、电子设备和计算机可读存储介质。该方法包括:获取目标算法的评分结果和运行目标算法的物理硬件信息;采用至少一个预置的算法负载根据评分结果和物理硬件信息对目标算法进行迭代测试;根据所述测试的测试数据获得所述目标算法的性能评估结果。本申请实施例能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。

Description

评估方法及装置、电子设备和计算机可读存储介质
技术领域
本申请涉及计算技术领域,尤其涉及一种评估方法及装置、电子设备和计算机可读存储介质。
背景技术
随着人工智能技术的发展,越来越多的领域中都开始使用人工智能技术来解决各领域中的各种问题。在应用中,人工智能技术的计算效率和准确性成为人工智能技术应用的最关键因素。特别是由于人工智能的广泛流行,促进了人工智能技术,尤其是算法的研究和发展,可以说每天都会大量新的算法发表,每个月都会有新的框架升级,或者每隔几个月就会有新的人工智能芯片发布,这些新的技术发展都会对人工智能的应用带来不同的影响,因此,人工智能的研究人员在应用人工智能技术时如何选择和评估新的技术就成为了人工智能在应用道路上的最主要的问题。
因此,需要一种能够提高人工智能技术的评估效率的技术方案。
发明内容
本申请实施例提供一种评估方法及装置、电子设备和计算机可读存储介质,以解决现有技术中无法全面且高效地评估算法性能的缺陷。
为达到上述目的,本申请实施例提供了一种评估方法,包括:
获取目标算法的评分结果和运行所述目标算法的物理硬件信息;
采用至少一个预置的算法负载根据所述评分结果和所述物理硬件信息对所述目标算法进行迭代测试;
根据所述测试的测试数据获得所述目标算法的性能评估结果,其中所述性能评估结果指示目标算法的特征与物理硬件性能之间的关系。
本申请实施例还提供了一种评估装置,包括:
获取模块,用于获取目标算法的评分结果和运行所述目标算法的物理硬件信息;
采集模块,用于采用至少一个预置的算法负载根据所述评分结果和所述物理硬件信息对所述目标算法进行迭代测试;
分析模块,用于根据所述测试的测试数据获得所述目标算法的性能评估结果,其中所述性能评估结果指示目标算法的特征与物理硬件性能之间的关系。
本申请实施例还提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行本申请实施例提供的评估方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如本申请实施例提供的评估方法。
本申请实施例提供的评估方法及装置、电子设备和计算机可读存储介质,能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的评估方案的原理架构示意图;
图2为本申请提供的评估方法一个实施例的流程图;
图3为本申请提供的评估方法另一个实施例的流程图;
图4为本申请提供的评估装置实施例的结构示意图;
图5为本申请提供的电子设备实施例的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
本申请实施例提供的方案可应用于任何具有算法运行的设备或系统,例如分布式服务器等等。图1为本申请实施例提供的评估方案的原理架构示意图,图1所示的架构仅仅是可以应用本申请的技术方案的架构的示例之一。
随着人工智能技术的发展,越来越多的领域中都开始使用人工智能技术来解决各领域中的各种问题。在应用中,人工智能技术的计算效率和准确性成为人工智能技术应用的最关键因素。特别是由于人工智能的广泛流行,促进了人工智能技术,尤其是算法的研究和发展,可以说每天都会大量新的算法发表,每个月都会有新的框架升级,或者每隔几个月就会有新的人工智能芯片发布,这些新的技术发展都会对人工智能的应用带来不同的影响,因此,人工智能的研究人员在应用人工智能技术时如何选择和评估新的技术就成为了人工智能在应用道路上的最主要的问题。
现有技术中由于人工智能算法或框架的使用都需要依赖于各种物理计算硬件,例如CPU或GPU,因此,在现有技术中往往只能通过硬件厂商提供的硬件资源分析工具来对该计算硬件上运行的任务的运行情况。例如,NVIDIA提供的GPU的性能分析工具,可以分析GPU的执行情况,能够按照时间轴分析GPU的性能瓶颈和算子的算力分析;某公司提供的面向CPU的性能分析工具,可以支持指令/缓存/分支预测等功能;另外还有面向CPU的分析工具,可以用来分析CPU的架构层面的性能瓶颈。
但是上述现有技术的分析工具均是面向设备的硬件使用,例如硬件资源的使用率来进行分析的。例如,可以进行计算/数据传输/内存等方面的均衡性的分析,但是由于这些方案都是仅基于硬件层面考虑的,其基本上没有考虑负载的特征,尤其是缺少面向人工智能计算任务的特征的考虑,也没有考虑分布式多设备之间的性能分析。换言之,现有技术的基于硬件的分析工具由于仅基于当前的硬件或硬件单元的使用率来进行分析,因此无法真正从计算任务一侧来考虑资源分配的合理性,尤其是在当前使用分布式计算,即使用通过通信线路连接的多个计算单元,甚至多个计算单元的各自的一部分硬件资源来执行一个计算任务的情况下,这样的淡出基于单个硬件的分析工具就无法给出全面性的分析和建议,特别是无法针对任务特征给出资源的分配优化建议。
在上述现有技术中,由于仅能够使用用于运行人工智能算法的硬件所提供的硬件使用状况评估工具来了解人工智能算法的运行性能,这样的评估工具由于无法考虑硬件上运行的人工智能算法的特征,因此,无法获得对于人工智能算法的全面评估结果。换言之,现有方案都是面向设备的利用率进行分析,针对硬件设备的微架构层面的分析,计算/传输/内存等方面的均衡性分析,能够在一定程度上分析硬件上的性能瓶颈,但是无法给出优化的建议,具体的缺点。
例如,在如图1中所示的架构中,根据本申请实施例的评估方法可以使用目标算法在人工智能评分平台的计算结果作为能够体现该目标算法的算法特征的输入。例如,在本申请实施例中,人工智能评分平台可以是单一算法类型的评分平台,也可以是覆盖多种主流算法模型的测试平台,并且可以支持当前主流的算法运行硬件,例如GPU/第三方算法芯片等等。因此,可以通过将目标算法输入到该评分平台来获得针对该目标算法本身的评分。此外,如图1中所示,目标算法通常运行在硬件设备上,例如,分布式服务器或者当前主流的分布式GPU系统上,因此,在本申请实施例中,还可以进一步获取运行该目标算法的物理硬件的硬件信息。例如,在本申请实施例中,这些硬件信息可以包括硬件的性能规格、硬件拓扑结构和硬件组网形态。具体地,例如,当使用芯片作为计算载体来运行目标算法时,可以获取芯片的型号和算力作为芯片规格。在另外的实施例中,也可以对芯片规格按照型号和算力进行建模,从而能够自动地识别出芯片的规格。此外,由于近来通常使用具有分布式结构的计算系统来运行各种算法,因此,构成计算系统的各个计算单元之间的连接(例如,连接方式,即拓扑结构,以及通信带宽)也对于算法的运行性能具有一定的影响。因此,在该情况下,还可以进一步获取运行目标算法的硬件的计算单元之间的拓扑结构和通信带宽。在这里,按照构成计算系统的集群的组网形态,可以获取服务器之间的通信带宽或者GPU之间的通信带宽。
因此,通过获取到上述输入就可以获取到反映了目标算法本身的算法特征的评分结果以及反映了运行该目标算法的硬件规格的硬件信息作为本申请实施例的评估方法的输入。因此,与现有技术中仅考虑硬件的使用率或规格信息来评估算法的方案相比,本申请实施例能够采用更为全面的信息来对算法进行评估。
此外,在获取到算法信息和硬件信息之后,就可以基于这些输入信息进行自动化测试并采集测试数据,在本申请实施例中,可以通过利用不同的算法负载来进行测试和性能采集,并且进而可以将测试和性能数据进行结构化存储,以便于后续进行各种分析。此外,还可以将各种分析模型预先存储在存储空间中,从而在进行分析时可以根据采集到的测试数据来适配相应的分析模型来进行分析。
此外,特别地,为了方便分析,可以在上述测试时对目标算法进行迭代测试,以便于采集到足够的性能数据。当然迭代的数目可以根据实际需要进行选择和确定,只要能够确保采集到足够的性能数据即可,并且确保数据量的大小也不会对存储和分析造成过大的压力。
因此,在分析时本申请实施例可以例如考虑迭代时间和神经网络的层数以及进出计算单元,例如GPU的数据的量来计算各个计算单元执行算法的算力。尤其是可以通过计算每个迭代周期内的算力并且通过比较来确定每个迭代内的算力是否均衡,或者与根据分析模型确定的目标算法的算力需求的理论值的偏差是否过大。因此,通过分析算力可以对目标算法在当前硬件上执行的计算情况进行评估。
此外,还可以计算每个迭代周期内计算单元的算力消耗是均衡,是否存在算力消耗抖动的情况,并且由于是采用分布式计算单元来执行目标算法的运行,因此还可以根据测试数据来计算各计算单元上的操作序列的并行度,例如,是否存在某个计算单元等待时间过程等等,并且还可以进而计算计算单元的额数据传输对于算力的消耗和时间,同样这些评估结果都能够反映该分布式计算系统的计算效率是否合理。
此外,还可以计算整个硬件系统对于目标算法的运行的计算效率,从而看出目标算法对于算力的消耗是否符合设计值或预期。因此,在获取了这些评估结果之后,可以一方面在图1中所示的展示部分展示给用户,另一方面还可以基于这些评估结果来计算优化建议,例如对于传输效率的优化,或者对于计算单元的利用率的优化等等,并且同样可以将这样的优化建议展示给用户。
具体地,由于在本申请实施例中能够获得全面反映目标算法在当前硬件上运行的性能情况的评估结果,因此在本申请实施例中还可以进一步根据该评估结果生成算法或硬件调整建议方案。例如,在本申请实施例中的评估结果可以基于硬件系统对于目标算法的运行的计算效率,即能够了解目标算法对于算力的消耗,因此,除了给出例如目标算法在当前硬件系统上计算效率较低这样的评估结果之外,还可以进一步确定该计算效率较低是由于硬件资源中的内存较低使得硬件资源不匹配导致的,因此在该情况下可以进一步生成例如增加内存容量这样的硬件资源调整建议并发送给运营方或硬件提供方参考或指导他们对硬件系统进行调整。或者,也可以根据计算效率较低的评估结果来进一步确认该计算效率较低是由于算法的算子单元的部署不合理导致的,在该情况下也可以进一步生成算法的调整方案输出给用户或算法的使用方来参考。
因此,本申请实施例提供的评估方案,能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。
上述实施例是对本申请实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本申请实施例具体技术方案进行详细描述。
实施例二
图2为本申请提供的评估方法一个实施例的流程图,该方法的执行主体可以为具有算法评估能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图2所示,该评估方法包括如下步骤:
S201,获取目标算法的评分结果和运行目标算法的物理硬件信息。
在本申请实施例中,可以获取目标算法在各种人工智能评分平台上的评分结果作为提现该目标算法的算法特征输入。例如,在本申请实施例中,人工智能评分平台可以是单一算法类型的评分平台,也可以是覆盖多种主流算法模型的测试平台,并且可以支持当前主流的算法运行硬件,例如GPU/第三方算法芯片等等。因此,可以通过将目标算法输入到该评分平台来获得针对该目标算法本身的评分。此外,如图1中所示,目标算法通常运行在硬件设备上,例如,分布式服务器或者当前主流的分布式GPU系统上,因此,在本申请实施例中,还可以进一步获取运行该目标算法的物理硬件的硬件信息。通过获取到上述输入就可以获取到反映了目标算法本身的算法特征的评分结果以及反映了运行该目标算法的硬件规格的硬件信息作为本申请实施例的评估方法的输入。因此,与现有技术中仅考虑硬件的使用率或规格信息来评估算法的方案相比,本申请实施例能够采用更为全面的信息来对算法进行评估。
S202,采用至少一个预置的算法负载根据评分结果和物理硬件信息对目标算法进行迭代测试。
在步骤S201获取到了各种输入信息之后,可以在步骤S202中采用至少一种分析算法来对目标算法进行测试。例如,在本申请实施例中,可以通过利用不同的算法负载来进行测试和性能采集,并且进而可以将测试和性能数据进行结构化存储,以便于后续进行各种分析。此外,还可以将各种分析模型预先存储在存储空间中,从而在进行分析时可以根据采集到的测试数据来适配相应的分析模型来进行分析。
此外,特别地,为了方便分析,可以在上述测试时对目标算法进行迭代测试,以便于采集到足够的性能数据。当然迭代的数目可以根据实际需要进行选择和确定,只要能够确保采集到足够的性能数据即可,并且确保数据量的大小也不会对存储和分析造成过大的压力。
S203,根据测试的测试数据获得目标算法的性能评估结果。
在步骤S202中获取到了测试数据之后,可以进一步在步骤S203中根据这些测试数据进行性能评估的计算。这些性能评估结果可以指示目标算法的特征与物理硬件性能之间的关系,从而用户或者服务器系统自己就可以根据这样的性能评估结果来对算法或硬件进行优化,以实现更高的性能。
因此,本申请实施例提供的评估方案,能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。
实施例三
图3为本申请提供的评估方法另一个实施例的流程图,该方法的执行主体可以为具有算法评估能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图3所示,该评估方法包括如下步骤:
S301,使用人工智能测试平台计算目标算法的评分结果。
在本申请实施例中,可以获取目标算法在各种人工智能评分平台上的评分结果作为提现该目标算法的算法特征输入。例如,在本申请实施例中,人工智能评分平台可以是单一算法类型的评分平台,也可以是覆盖多种主流算法模型的测试平台,并且可以支持当前主流的算法运行硬件,例如GPU/第三方算法芯片等等。因此,可以通过将目标算法输入到该评分平台来获得针对该目标算法本身的评分。
S302,获取运行目标算法的物理硬件信息。
如图1中所示,目标算法通常运行在硬件设备上,例如,分布式服务器或者当前主流的分布式GPU系统上,因此,在本申请实施例中,还可以进一步获取运行该目标算法的物理硬件的硬件信息。
例如,在本申请实施例中,这些硬件信息可以包括硬件的性能规格、硬件拓扑结构和硬件组网形态。具体地,例如,当使用芯片作为计算载体来运行目标算法时,可以获取芯片的型号和算力作为芯片规格。在另外的实施例中,也可以对芯片规格按照型号和算力进行建模,从而能够自动地识别出芯片的规格。此外,由于近来通常使用具有分布式结构的计算系统来运行各种算法,因此,构成计算系统的各个计算单元之间的连接(例如,连接方式,即拓扑结构,以及通信带宽)也对于算法的运行性能具有一定的影响。因此,在该情况下,还可以进一步获取运行目标算法的硬件的计算单元之间的拓扑结构和通信带宽。在这里,按照构成计算系统的集群的组网形态,可以获取服务器之间的通信带宽或者GPU之间的通信带宽。
因此,通过步骤S301获取的反映了目标算法本身的算法特征的评分结果以及步骤S302获取的反映了运行该目标算法的硬件规格的硬件信息作为本申请实施例的评估方法的输入。因此,与现有技术中仅考虑硬件的使用率或规格信息来评估算法的方案相比,本申请实施例能够采用更为全面的信息来对算法进行评估。
S303,采用至少一个预置的算法负载根据评分结果和物理硬件信息对目标算法进行迭代测试。
在通过步骤S301获取了评分结果以及步骤S302获取了硬件信息之后,可以在步骤S303中采用至少一种分析算法来对目标算法进行测试。例如,在本申请实施例中,可以通过利用不同的算法负载来进行测试和性能采集,并且进而可以将测试和性能数据进行结构化存储,以便于后续进行各种分析。此外,还可以将各种分析模型预先存储在存储空间中,从而在进行分析时可以根据采集到的测试数据来适配相应的分析模型来进行分析。
此外,特别地,为了方便分析,可以在上述测试时对目标算法进行迭代测试,以便于采集到足够的性能数据。当然迭代的数目可以根据实际需要进行选择和确定,只要能够确保采集到足够的性能数据即可,并且确保数据量的大小也不会对存储和分析造成过大的压力。
S304,使用迭代测试的单次测试的时间、目标算法的神经网络的层数、进出运行目标算法的计算单元的数据来计算计算单元执行所述目标算法的算力。
本申请实施例可以在步骤S304考虑步骤S303中迭代测试的单次测试的时间、目标算法的神经网络的层数、进出运行目标算法的计算单元的数据来计算各个计算单元执行算法的算力。尤其是可以通过计算每个迭代周期内的算力并且通过比较来确定每个迭代内的算力是否均衡,或者与根据分析模型确定的目标算法的算力需求的理论值的偏差是否过大。因此,通过分析算力可以对目标算法在当前硬件上执行的计算情况进行评估。
S305,对单次测试按预定时间单元进行时间分片。
S306,计算每个时间分片中物理硬件的计算单元的计算时间作为性能评估结果。
此外,在本申请实施例中,还是基于时间分片来计算算法的性能,例如算力和传输这两个指标。例如,可以在步骤S305中对每个迭代,即单次测试的时间按预定时间单元,例如10ms进行时间分片,从而可以在步骤S306中计算每个10ms期间的计算时间占比和传输占比,从而根据该评估结果来评估整个训练过程中,计算单元的每一秒的消耗是否均衡,是否存在抖动。
S307,计算每个时间分片中物理硬件的算力消耗作为性能评估结果。
此外,还可以在步骤S307中计算每个时间分片中的算力消耗,从而来反映该目标算法在该硬件上的计算效率,例如可以通过这样的评估结果来看出目标算法对于计算力的消耗是否符合设计。
S308,使用预先设置的分析模型来根据测试数据获得目标算法的性能评估结果。
此外,在步骤S308中还可以使用预先存储的分析模型来根据步骤S303中获得的测试数据。在本申请实施例中,这些分析模型可以预先存储在数据库中,从而可以根据用户的需要离线地进行上述测试。
在步骤S306至S308中获得了目标算法在当前硬件上的性能评估结果的情况下,该评估结果是基于例如,步骤S302中获取的物理硬件信息以及在步骤S304中使用的算法的各种自身的参数计算出来的计算情况,因此在本申请实施例中能够获得全面反映目标算法在当前硬件上运行的性能情况的评估结果。在本申请实施例中还可以进一步根据步骤S306至S308中获得的性能评估结果生成算法或硬件调整建议方案。
例如,在步骤S306至S308中确定目标算法对于计算力的消耗过大,因此,可以基于步骤S302中获取的硬件信息以及步骤S304中使用的算法的信息来进一步分析该评估结果的原因,并且可以通过查表或者使用模型的方式来生成针对该原因的调整建议。例如,当在步骤S306至S308了解目标算法对于算力的消耗之后,可以进一步确定该计算效率较低是由于硬件资源中的内存较低使得硬件资源不匹配导致的,因此在该情况下可以进一步生成例如增加内存容量这样的硬件资源调整建议并发送给运营方或硬件提供方参考或指导他们对硬件系统进行调整。或者,也可以根据计算效率较低的评估结果来进一步确认该计算效率较低是由于算法的算子单元的部署不合理导致的。例如尤其是在步骤S306至S308中可以分别从不同的角度使用不同的测试方式来测试算法,因此,可以基于步骤S306至S308中的至少一个的计算结果来生成针对目标算法的调整方案输出给用户或算法的使用方来参考。例如,当步骤S306中计算的计算单元的计算时间与传输时间相比,计算时间过长,则可以进一步根据该计算过程中迭代的哪个步骤时间过长或者是否是迭代次数过多来确定是该目标算法中的某个算子计算效率较低还是收敛参数设置不合理导致收敛速度慢等等,并且因此就可以根据这样的分析结果为用户生成算法调整建议,或者可以进一步给出建议的调整值等等,从而用户可以根据步骤S306至S308生成的评估结果以及提供的建议来对算法进行调整,以进一步提高目标算法在硬件资源上的计算效率。
S309,向用户展示性能评估结果。
由于步骤S304-S308中获得的性能评估结果可以指示目标算法的特征与物理硬件性能之间的关系,从而在步骤S309中可以展示给用户,进而还可以基于这些评估结果来计算优化建议,例如对于传输效率的优化,或者对于计算单元的利用率的优化等等,并且同样可以将这样的优化建议展示给用户。因此,用户或者服务器系统自己就可以根据这样的性能评估结果来对算法或硬件进行优化,以实现更高的性能。
因此,本申请实施例提供的评估方案,能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。此外,本申请实施例还可以根据能够反映目标算法的性能情况的评估结果来根据评估的过程数据进一步生成硬件资源或算法自身的调整建议方案,并且可以进一步生成具体的调整建议,以便于用户参考或指导用户执行。甚至在本申请实施例中,还可以使用这样生成的调整建议直接作为迭代循环中的参数更新值来参与迭代计算,实现自动调整。
实施例四
图4为本申请提供的评估装置实施例的结构示意图,可用于执行如图2和图3所示的方法步骤。如图4所示,该评估装置可以包括:获取模块41、采集模块42和分析模块43。
获取模块41可以用于获取目标算法的评分结果和运行目标算法的物理硬件信息。
在本申请实施例中,可以通过采集模块41获取目标算法在各种人工智能评分平台上的评分结果作为提现该目标算法的算法特征输入。例如,在本申请实施例中,人工智能评分平台可以是单一算法类型的评分平台,也可以是覆盖多种主流算法模型的测试平台,并且可以支持当前主流的算法运行硬件,例如GPU/第三方算法芯片等等。因此,可以通过将目标算法输入到该评分平台来获得针对该目标算法本身的评分并进而输入到获取模块41。目标算法通常运行在硬件设备上,例如,分布式服务器或者当前主流的分布式GPU系统上,因此,在本申请实施例中,还可以进一步获取运行该目标算法的物理硬件的硬件信息。例如,在本申请实施例中,这些硬件信息可以包括硬件的性能规格、硬件拓扑结构和硬件组网形态。具体地,例如,当使用芯片作为计算载体来运行目标算法时,可以获取芯片的型号和算力作为芯片规格。在另外的实施例中,也可以对芯片规格按照型号和算力进行建模,从而能够自动地识别出芯片的规格。此外,由于近来通常使用具有分布式结构的计算系统来运行各种算法,因此,构成计算系统的各个计算单元之间的连接(例如,连接方式,即拓扑结构,以及通信带宽)也对于算法的运行性能具有一定的影响。因此,在该情况下,还可以进一步获取运行目标算法的硬件的计算单元之间的拓扑结构和通信带宽。在这里,按照构成计算系统的集群的组网形态,可以获取服务器之间的通信带宽或者GPU之间的通信带宽。
获取模块41获取到上述输入就可以获取到反映了目标算法本身的算法特征的评分结果以及反映了运行该目标算法的硬件规格的硬件信息作为本申请实施例的评估方法的输入。
采集模块42可以用于采用至少一个预置的算法负载根据评分结果和物理硬件信息对目标算法进行迭代测试。
获取模块41获取到了各种输入信息之后,采集模块42可以采用至少一种分析算法来对目标算法进行测试。例如,在本申请实施例中,可以通过利用不同的算法负载来进行测试和性能采集,并且进而可以将测试和性能数据进行结构化存储,以便于后续进行各种分析。此外,还可以将各种分析模型预先存储在存储空间中,从而在进行分析时可以根据采集到的测试数据来适配相应的分析模型来进行分析。
此外,特别地,为了方便分析,采集模块42可以在上述测试时对目标算法进行迭代测试,以便于采集到足够的性能数据。当然迭代的数目可以根据实际需要进行选择和确定,只要能够确保采集到足够的性能数据即可,并且确保数据量的大小也不会对存储和分析造成过大的压力。
分析模块43可以用于根据测试的测试数据获得目标算法的性能评估结果。
采集模块42获取到了测试数据之后,可以进一步通过分析模块43根据这些测试数据进行性能评估的计算。这些性能评估结果可以指示目标算法的特征与物理硬件性能之间的关系,从而用户或者服务器系统自己就可以根据这样的性能评估结果来对算法或硬件进行优化,以实现更高的性能。
此外,分析模块43可以进一步用于使用预先设置的分析模型来根据测试数据获得目标算法的性能评估结果。
具体地址,分析模块43可以使用预先存储的分析模型来根据采集模块42获得的测试数据分析算法的性能。在本申请实施例中,这些分析模型可以预先存储在数据库中,从而可以根据用户的需要离线地进行上述测试。
分析模块43可以进一步包括算力分析单元431,用于使用迭代测试的单次测试的时间、目标算法的神经网络的层数、进出运行目标算法的计算单元的数据来计算计算单元执行所述目标算法的算力。
本申请实施例中,算力分析单元431可以考虑采集模块42进行迭代测试的单次测试的时间、目标算法的神经网络的层数、进出运行目标算法的计算单元的数据来计算各个计算单元执行算法的算力。尤其是可以通过计算每个迭代周期内的算力并且通过比较来确定每个迭代内的算力是否均衡,或者与根据分析模型确定的目标算法的算力需求的理论值的偏差是否过大。因此,算力分析单元431通过分析算力可以对目标算法在当前硬件上执行的计算情况进行评估。在本申请实施例中,算力分析单元431获得的评估结果可以包括下述中的至少一个:单次测试内执行的核心函数数量、用来进行计算的核心与操作内存的核心相对于全部核心的占比;单次测试内执行目标算法的执行时长、迭代测试的总执行时长、单次测试内的计算时长和数据传输时长;单次测试内每个操作队列的计算和传输消耗。
此外,分析模块43可以进一步包括效率分析单元432和算力消耗分析单元433。
效率分析单元432可以用于对单次测试按预定时间单元进行时间分片,并且计算每个时间分片中物理硬件的计算单元的计算时间作为性能评估结果。
算力消耗分析单元423可以用于对单次测试按预定时间单元进行时间分片,计算每个时间分片中所述物理硬件的算力消耗作为性能评估结果。
因此,效率分析单元432和算力消耗分析单元433都可以基于时间分片来计算算法的性能,例如算力和传输这两个指标。例如,效率分析单元432可以对每个迭代,即单次测试的时间按预定时间单元,例如10ms进行时间分片,从而可以计算每个10ms期间的计算时间占比和传输占比,从而根据该评估结果来评估整个训练过程中,计算单元的每一秒的消耗是否均衡,是否存在抖动。
算力消耗分析单元433同样可以在进行时间分片之后,计算每个时间分片中的算力消耗,从而来反映该目标算法在该硬件上的计算效率,例如可以通过这样的评估结果来看出目标算法对于计算力的消耗是否符合设计。
此外,根据本申请实施例的评估装置可以进一步包括展示模块44,用于向用户展示性能评估结果和/或根据性能评估结果生成的优化建议。
由于评估模块获得的性能评估结果可以指示目标算法的特征与物理硬件性能之间的关系,从而展示模块44可以展示给用户,进而还可以基于这些评估结果来计算优化建议,例如对于传输效率的优化,或者对于计算单元的利用率的优化等等,并且同样可以将这样的优化建议展示给用户。因此,用户或者服务器系统自己就可以根据这样的性能评估结果来对算法或硬件进行优化,以实现更高的性能。
在分析模块43获得了目标算法在当前硬件上的性能评估结果的情况下,该评估结果是基于例如,获取模块41获取的物理硬件信息以及采集模块42执行测试所使用的算法的各种自身的参数计算出来的计算情况,因此在本申请实施例中能够获得全面反映目标算法在当前硬件上运行的性能情况的评估结果。在本申请实施例中分析模块43还可以进一步根据获得的性能评估结果生成算法或硬件调整建议方案。
例如,分析模块43可以确定目标算法对于计算力的消耗过大,因此,可以基于获取模块41获取的硬件信息以及采集模块42执行测试使用的算法的信息来进一步分析该评估结果的原因,并且可以通过查表或者使用模型的方式来生成针对该原因的调整建议。例如,当分析模块43了解目标算法对于算力的消耗之后,可以进一步确定该计算效率较低是由于硬件资源中的内存较低使得硬件资源不匹配导致的,因此在该情况下可以进一步生成例如增加内存容量这样的硬件资源调整建议并发送给运营方或硬件提供方参考或指导他们对硬件系统进行调整。或者,也可以根据计算效率较低的评估结果来进一步确认该计算效率较低是由于算法的算子单元的部署不合理导致的。例如尤其是分析模块43可以分别从不同的角度使用不同的测试方式来评估算法,因此,可以基于算力分析单元431、效率分析单元432和算力消耗分析单元433的至少一个的计算结果来生成针对目标算法的调整方案输出给用户或算法的使用方来参考。例如,当算力分析单元431计算的计算单元的计算时间与传输时间相比,计算时间过长,则可以进一步根据该计算过程中迭代的哪个步骤时间过长或者是否是迭代次数过多来确定是该目标算法中的某个算子计算效率较低还是收敛参数设置不合理导致收敛速度慢等等,并且因此就可以根据这样的分析结果为用户生成算法调整建议,或者可以进一步给出建议的调整值等等,从而用户可以根据算力分析单元431、效率分析单元432和算力消耗分析单元433生成的评估结果以及提供的建议来对算法进行调整,以进一步提高目标算法在硬件资源上的计算效率。
因此,本申请实施例提供的评估方案,能够采用针对目标算法的评分结果和运行该目标算法的物理硬件信息作为输入来采用预置的负载对目标算法进行迭代测试,从而根据测试数据来获得性能评估结果,由于在迭代测试时采用了反映目标算法的算法特征的评分结果和硬件信息一并作为输入来进行测试,因此测试结果能够全面地反映该目标算法在当前硬件上运行的性能情况,从而能够获得更准确的性能评估结果。此外,本申请实施例还可以根据能够反映目标算法的性能情况的评估结果来根据评估的过程数据进一步生成硬件资源或算法自身的调整建议方案,并且可以进一步生成具体的调整建议,以便于用户参考或指导用户执行。甚至在本申请实施例中,还可以使用这样生成的调整建议直接作为迭代循环中的参数更新值来参与迭代计算,实现自动调整。
实施例五
以上描述了评估装置的内部功能和结构,该装置可实现为一种电子设备。图5为本申请提供的电子设备实施例的结构示意图。如图5所示,该电子设备包括存储器51和处理器52。
存储器51,用于存储程序。除上述程序之外,存储器51还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器51,不仅仅局限于中央处理器(CPU),还可能为图形处理器(GPU)、现场可编辑门阵列(FPGA)、嵌入式神经网络处理器(NPU)或人工智能(AI)芯片等处理芯片。处理器52,与存储器51耦合,执行存储器51所存储的程序,该程序运行时执行上述实施例二和三的评估方法。
进一步,如图5所示,电子设备还可以包括:通信组件53、电源组件54、音频组件55、显示器56等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
通信组件53被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件53经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件53还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件54,为电子设备的各种组件提供电力。电源组件54可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件55被配置为输出和/或输入音频信号。例如,音频组件55包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器51或经由通信组件53发送。在一些实施例中,音频组件55还包括一个扬声器,用于输出音频信号。
显示器56包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种评估方法,包括:
获取目标算法的评分结果和运行所述目标算法的物理硬件信息;
采用至少一个预置的算法负载根据所述评分结果和所述物理硬件信息对所述目标算法进行迭代测试;
根据所述测试的测试数据获得所述目标算法的性能评估结果,其中所述性能评估结果指示目标算法的特征与物理硬件性能之间的关系。
2.根据权利要求1所述的评估方法,其中,所述物理硬件信息包括:硬件性能规格、硬件拓扑结构和硬件组网形态。
3.根据权利要求1所述的评估方法,其中,所述获取目标算法的评分结果包括:
使用人工智能测试平台计算所述目标算法的评分结果。
4.根据权利要求1所述的评估方法,其中,所述物理硬件为芯片,并且所述获取运行所述目标算法的物理硬件信息包括:
对所述芯片规格按照芯片的型号和芯片的算力进行建模。
5.根据权利要求2所述的评估方法,其中,所述硬件组网形态包括物理计算单元之间的通信带宽。
6.根据权利要求1所述的评估方法,其中,所述根据所述测试的测试数据获得所述目标算法的性能评估结果包括:
使用所述迭代测试的单次测试的时间、所述目标算法的神经网络的层数、进出运行所述目标算法的计算单元的数据来计算所述计算单元执行所述目标算法的算力。
7.根据权利要求6所述的评估方法,其中,所述性能评估结果进一步包括下述中的至少一个:
所述单次测试内执行的核心函数数量、用来进行计算的核心与操作内存的核心相对于全部核心的占比;
所述单次测试内执行所述目标算法的执行时长、所述迭代测试的总执行时长、所述单次测试内的计算时长和数据传输时长;
所述单次测试内每个操作队列的计算和传输消耗。
8.根据权利要求1所述的评估方法,其中,所述根据所述测试的测试数据获得所述目标算法的性能评估结果包括:
对所述单次测试按预定时间单元进行时间分片;
计算每个时间分片中所述物理硬件的计算单元的计算时间作为所述性能评估结果。
9.根据权利要求1所述的评估方法,其中,所述根据所述测试的测试数据获得所述目标算法的性能评估结果包括:
对所述单次测试按预定时间单元进行时间分片;
计算每个时间分片中所述物理硬件的算力消耗作为所述性能评估结果。
10.一种评估装置,包括:
获取模块,用于获取目标算法的评分结果和运行所述目标算法的物理硬件信息;
采集模块,用于采用至少一个预置的算法负载根据所述评分结果和所述物理硬件信息对所述目标算法进行迭代测试;
分析模块,用于根据所述测试的测试数据获得所述目标算法的性能评估结果,其中所述性能评估结果指示目标算法的特征与物理硬件性能之间的关系。
11.一种电子设备,其中,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行如权利要求1至12中任一所述的评估方法。
12.一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如权利要求1至12中任一所述的评估方法。
CN202110358457.XA 2021-04-01 2021-04-01 评估方法及装置、电子设备和计算机可读存储介质 Pending CN113419941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110358457.XA CN113419941A (zh) 2021-04-01 2021-04-01 评估方法及装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110358457.XA CN113419941A (zh) 2021-04-01 2021-04-01 评估方法及装置、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113419941A true CN113419941A (zh) 2021-09-21

Family

ID=77711986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110358457.XA Pending CN113419941A (zh) 2021-04-01 2021-04-01 评估方法及装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113419941A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113902296A (zh) * 2021-10-09 2022-01-07 鹤山市民强五金机电有限公司 一种智能化单相异步电机的测试方法及系统
CN115827495A (zh) * 2023-02-03 2023-03-21 树优(宁波)科技有限公司 拓扑优化算法的性能评估方法、相关设备及存储介质
CN116701923A (zh) * 2022-10-13 2023-09-05 荣耀终端有限公司 算子性能的评估方法和评估装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113902296A (zh) * 2021-10-09 2022-01-07 鹤山市民强五金机电有限公司 一种智能化单相异步电机的测试方法及系统
CN116701923A (zh) * 2022-10-13 2023-09-05 荣耀终端有限公司 算子性能的评估方法和评估装置
CN116701923B (zh) * 2022-10-13 2024-05-17 荣耀终端有限公司 算子性能的评估方法和评估装置
CN115827495A (zh) * 2023-02-03 2023-03-21 树优(宁波)科技有限公司 拓扑优化算法的性能评估方法、相关设备及存储介质

Similar Documents

Publication Publication Date Title
CN107844837B (zh) 针对机器学习算法进行算法参数调优的方法及系统
CN113419941A (zh) 评估方法及装置、电子设备和计算机可读存储介质
US9569179B1 (en) Modifying models based on profiling information
US8498887B2 (en) Estimating project size
US10956001B2 (en) Progress bar updated based on crowd sourced statistics
JP7223048B2 (ja) タスク計算量決定方法、装置、電子機器及びコンピュータプログラム製品
US8650552B1 (en) Methods and systems for simulation of energy consumption in mobile operating system emulators
CN110517148B (zh) 量化交易策略执行的控制方法、系统及装置
CN114416512A (zh) 测试方法、装置、电子设备和计算机存储介质
CN111045932B (zh) 业务系统仿真处理方法、装置、电子设备及存储介质
CN114564374A (zh) 算子性能评估方法、装置、电子设备及存储介质
CN112965903A (zh) 测试方法、装置、电子设备及计算机可读存储介质
JP2023086678A (ja) 深層学習フレームワークに基づいて深層学習モデルを生成して適用する方法及び装置
US9378109B1 (en) Testing tools for devices
CN108898229B (zh) 用于构建机器学习建模过程的方法及系统
CN111523676B (zh) 辅助机器学习模型上线的方法及装置
CN111767316A (zh) 目标任务处理方法、装置及电子设备
CN115391204A (zh) 自动驾驶服务的测试方法、装置、电子设备及存储介质
CN112966971B (zh) 一种项目工作量评估方法和装置
CN117716373A (zh) 基于期望的度量值提供机器学习模型
CN115269431A (zh) 一种接口测试方法、装置、电子设备及存储介质
CN107229487B (zh) 代码处理方法及装置
CN116149978A (zh) 服务接口测试方法、装置、电子设备及存储介质
CN114661571A (zh) 模型评测方法、装置、电子设备和存储介质
CN111090554A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40069601

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240308

Address after: Singapore

Applicant after: Alibaba Innovation Co.

Country or region after: Singapore

Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore

Applicant before: Alibaba Singapore Holdings Ltd.

Country or region before: Singapore