CN116069603A - 应用的性能测试方法、建立性能测试模型的方法及装置 - Google Patents
应用的性能测试方法、建立性能测试模型的方法及装置 Download PDFInfo
- Publication number
- CN116069603A CN116069603A CN202211540631.3A CN202211540631A CN116069603A CN 116069603 A CN116069603 A CN 116069603A CN 202211540631 A CN202211540631 A CN 202211540631A CN 116069603 A CN116069603 A CN 116069603A
- Authority
- CN
- China
- Prior art keywords
- data
- application
- performance
- computing
- path
- 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.)
- Granted
Links
- 238000011056 performance test Methods 0.000 title claims abstract description 190
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000012360 testing method Methods 0.000 claims abstract description 176
- 230000015654 memory Effects 0.000 claims abstract description 171
- 238000004364 calculation method Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 23
- 230000000875 corresponding effect Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000003062 neural network model Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 101100236203 Arabidopsis thaliana LSU4 gene Proteins 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100236200 Arabidopsis thaliana LSU1 gene Proteins 0.000 description 1
- 101100236201 Arabidopsis thaliana LSU2 gene Proteins 0.000 description 1
- 101100236202 Arabidopsis thaliana LSU3 gene Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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/3414—Workload generation, e.g. scripts, playback
-
- 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
-
- 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/3428—Benchmarking
-
- 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/3447—Performance evaluation by modeling
-
- 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/3452—Performance evaluation by statistical analysis
-
- 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
一种应用的性能测试方法、建立性能测试模型的方法及装置,属于计算机技术领域。本申请针对计算芯片建立的性能测试模型中,包括计算芯片中的每个数据访问通路的性能测试线。在对应用进行测试时,根据应用的运行状况数据和计算芯片的每个数据访问通路的内存访问量,确定应用的运行性能信息,将应用的运行性能信息,与包含每个数据访问通路的性能测试线的性能测试模型进行比对,可以获取精度更高的测试结果,提高测试准确度和测试精度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用的性能测试方法、建立性能测试模型的方法及装置。
背景技术
目前,各类应用的使用越来越广泛,可以用于解决各行各业的实际问题。在实际使用过程中,对一些应用的性能(如数据处理速度、时延等)的要求较高。例如,在人工智能技术领域,对包含神经网络模型的应用的数据处理速度等有非常严格的要求。因此,为了使应用具有更好的性能,需要对应用的性能进行测试,并依据测试结果对应用程序进行优化。
由于应用需要运行在计算芯片来进行数据处理,应用的性能实际上是指应用在计算芯片上运行时的性能,因此,往往需要结合计算芯片对应用的性能进行测试。
随着计算芯片的结构越来越复杂,目前的应用的性能测试方法,针对结构复杂的计算芯片,无法获得精度和准确度较高的测试结果。
发明内容
本申请实施例提供一种应用的性能测试方法、建立性能测试模型的方法及装置,可以提高测试准确度和测试精度。
第一方面,本申请实施例提供一种应用的性能测试方法,在对应用进行测试时,在计算芯片上运行应用,该计算芯片包括多个内存单元,不同的内存单元之间的访问路径可以称为数据访问通路,计算芯片内可以存在一个或多个数据访问通路。获取应用在该计算芯片上运行的运行状况数据,以及在应用的运行过程中,该计算芯片的每个数据访问通路的内存访问量,其中,应用的运行状况数据可以包括应用的运行时间,以及在该运行时间内计算芯片中的计算单元的计算量。根据应用的运行状况数据和每个数据访问通路的内存访问量,确定应用的运行性能信息,根据应用的运行性能信息和针对该计算芯片建立的性能测试模型,获得应用的测试结果。其中,性能测试模型是预先针对该计算芯片建立的,用于描述该计算芯片的最佳性能;性能测试模型包括每个数据访问通路的性能测试线。计算芯片的性能测试模型可以根据计算芯片的计算单元的运算能力的峰值和每个数据访问通路的峰值带宽建立的,计算单元的运算能力的峰值和每个数据访问通路的峰值带宽是由测试数据对计算芯片进行测试确定的。
与相关技术中针对计算芯片中的内存单元建立性能测试模型,进而对应用进行测试的方法相比,本申请实施例针对计算芯片建立的性能测试模型中,包括计算芯片中的每个数据访问通路的性能测试线。在对应用进行测试时,根据应用的运行状况数据和计算芯片的每个数据访问通路的内存访问量,确定应用的运行性能信息,将应用的运行性能信息,与包含每个数据访问通路的性能测试线的性能测试模型进行比对,可以获取精度更高的测试结果,提高测试准确度和测试精度。
在一种可能的实现方式中,应用的运行性能信息可以包括每个数据访问通路的分通路性能信息。每个数据访问通路的分通路性能信息可以通过如下方式获得:获取应用的运行时间,以及在该运行时间内计算芯片中的计算单元的计算量,根据获取的计算量和运行时间,确定在应用的运行过程中,计算芯片的运算能力参数。运算能力参数表示在应用的运行过程中,计算芯片在单位时间内完成的计算量。针对每个数据访问通路,根据所述计算量和每个数据访问通路的内存访问量,确定每个数据访问通路的操作强度。一个数据访问通路的操作强度表示该数据访问通路单位内存访问所对应的计算量。根据运算能力参数和每个数据访问通路的操作强度,生成每个数据访问通路的分通路性能信息。
根据每个数据访问通路的分通路性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,可以获取精度更高的测试结果。
在一种可能的实现方式中,应用的运行性能信息除包括每个数据访问通路的分通路性能信息之外,还可以包括每个数据通路集合的集合性能信息。每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时访问。每个数据通路集合的集合性能信息可以通过如下方式获得:获取应用的运行时间,以及在该运行时间内计算芯片中的计算单元的计算量,根据获取的计算量和运行时间,确定在应用的运行过程中,计算芯片的运算能力参数。针对每个数据通路集合,根据每个数据通路集合中的数据访问通路的内存访问量的和,以及计算芯片中的计算单元的计算量,确定每个数据通路集合的总体操作强度,根据运算能力参数和每个数据通路集合的总体操作强度,生成每个数据通路集合的集合性能信息。
每个数据访问通路的分通路性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,可以体现出每个数据访问通路的性能;每个数据通路集合的集合性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,可以体现出每个数据通路集合中包含的数据访问通路的整体性能。因此,结合每个数据访问通路的分通路性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,以及每个数据通路集合的集合性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,可以进一步提高测试结果的精度和准确度。
在一种可能的实现方式中,确定应用的运行性能信息之后,可以确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果,有利于用户根据对比结果,确定对应用进行优化的方向。
在一种可能的实现方式中,确定应用的运行性能信息之后,可以确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果,可以使用户直接根据分析结果,有效地对应用进行优化。
第二方面,本申请实施例提供一种建立性能测试模型的方法,用于针对计算芯片建立性能测试模型,其中,计算芯片可以包括如下芯片中的任意一种:中央处理器(centralprocessing unit,CPU)芯片、张量处理器(tensor processing unit,TPU)芯片、神经网络处理器(neural-network processing unit,NPU)芯片、图形处理器(graphic processingunit,GPU)芯片、人工智能(artificial intelligence,AI)芯片。计算芯片包括多个内存单元,每个数据访问通路表示内存单元之间的访问路径。
建立性能测试模型的方法可以包括:基于获取的不同数据量的多个第一测试数据,确定计算芯片的计算单元的运算能力的峰值;针对计算芯片的每个数据访问通路,分别基于获取的不同数据量的多个第二测试数据,确定每个数据访问通路的峰值带宽,根据每个数据访问通路的峰值带宽和计算单元的运算能力的峰值,建立性能测试模型,性能测试模型包括每个数据访问通路的性能测试线。在确定计算芯片的计算单元的运算能力的峰值时,可以基于多个第一测试数据,对计算芯片的计算单元进行多次测试。其中,每次测试的测试过程包括:根据计算单元处理输入的第一测试数据的计算量和计算时间的比值,确定计算单元的运算能力;将每次测试确定的计算单元的运算能力中的最大值,作为计算芯片的计算单元的运算能力的峰值。
本申请实施例针对计算芯片中每个数据访问通路,分别确定性能测试线,建立包括每个数据访问通路的性能测试线的性能测试模型,可以建立精度更高的性能测试模型。利用通过上述方法得到的性能测试模型进行应用的性能测试,可以获得精度更高的测试结果。
第三方面,本申请实施例提供一种应用的性能测试装置,该装置包括:
数据获取单元,用于获取应用在计算芯片上运行的运行状况数据,以及在应用的运行过程中,计算芯片的每个数据访问通路的内存访问量,其中,计算芯片包括多个内存单元;数据访问通路表示内存单元之间的访问路径;
性能测试单元,用于根据运行状况数据和每个数据访问通路的内存访问量,确定应用的运行性能信息;根据应用的运行性能信息和针对计算芯片建立的性能测试模型,获得应用的测试结果;性能测试模型包括每个数据访问通路的性能测试线。
在一种可能的实现方式中,运行状况数据包括应用的运行时间,以及在运行时间内计算芯片中的计算单元的计算量;性能测试单元,具体用于:
根据计算量和运行时间,确定在应用的运行过程中,计算芯片的运算能力参数;
针对每个数据访问通路,根据计算量和每个数据访问通路的内存访问量,确定每个数据访问通路的操作强度;
根据运算能力参数和每个数据访问通路的操作强度,生成每个数据访问通路的分通路性能信息。
在一种可能的实现方式中,应用的运行性能信息还包括每个数据通路集合的集合性能信息;每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时访问;性能测试单元,还用于:
针对每个数据通路集合,根据每个数据通路集合中的数据访问通路的内存访问量的和,以及计算量,确定每个数据通路集合的总体操作强度;
根据运算能力参数和每个数据通路集合的总体操作强度,生成每个数据通路集合的集合性能信息。
在一种可能的实现方式中,性能测试单元,具体用于:
确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果。
在一种可能的实现方式中,性能测试单元,具体用于:
确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果;
根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果。
在一种可能的实现方式中,性能测试模型是根据计算芯片的计算单元的运算能力的峰值和每个数据访问通路的峰值带宽建立的,计算单元的运算能力的峰值和每个数据访问通路的峰值带宽是由测试数据对计算芯片进行测试确定的。
第四方面,本申请实施例提供一种建立性能测试模型的装置,该装置包括:
算力测试单元,用于基于获取的不同数据量的多个第一测试数据,确定计算芯片的计算单元的运算能力的峰值;
带宽测试单元,用于针对计算芯片的每个数据访问通路,分别基于获取的不同数据量的多个第二测试数据,确定每个数据访问通路的峰值带宽,其中,计算芯片包括多个内存单元,每个数据访问通路表示内存单元之间的访问路径;
模型建立单元,用于根据每个数据访问通路的峰值带宽和计算单元的运算能力的峰值,建立性能测试模型,其中,性能测试模型包括每个数据访问通路的性能测试线。
在一种可能的实现方式中,算力测试单元,具体用于:
基于多个第一测试数据,对计算芯片的计算单元进行多次测试;其中,每次测试的测试过程包括:根据计算单元处理输入的第一测试数据的计算量和计算时间的比值,确定计算单元的运算能力;
将每次测试确定的计算单元的运算能力中的最大值,作为计算芯片的计算单元的运算能力的峰值。
在一种可能的实现方式中,计算芯片包括如下芯片中的任意一种:CPU芯片、TPU芯片、NPU芯片、GPU芯片、AI芯片。
第五方面,本申请实施例提供一种计算设备,该计算设备包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被所述处理器执行时,使得处理器实现上述第一方面记载的任一种方法,或者上述第二方面记载的任一种方法。
第六方面,本申请实施例提供一种计算机程序产品,包含有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第一方面提供的任一种方法,或者上述第二方面提供的任一种方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第一方面提供的任一种方法,或者上述第二方面提供的任一种方法。
上述第三方面至第七方面中任一方面可以达到的技术效果可以参照上述第一方面或第二方面中有益效果的描述,此处不再重复赘述。
附图说明
图1为本申请实施例所适用的计算芯片的一种示例的结构示意图;
图2为本申请实施例提供的建立性能测试模型的一种示例的流程图;
图3为本申请实施例提供的数据访问通路的性能测试线的一种示例的示意图;
图4为本申请实施例提供的计算芯片的性能测试模型的一种示例的示意图;
图5为本申请实施例提供的应用的性能测试方法的一种示例的流程图;
图6为本申请实施例提供的应用的性能测试的测试结果的一种示例的示意图;
图7为本申请实施例提供的应用的性能测试的测试结果的另一种示例的示意图;
图8为本申请实施例提供的应用的性能测试的测试结果的另一种示例的示意图;
图9为本申请实施例提供的应用的性能测试的测试结果的另一种示例的示意图;
图10为本申请实施例提供的应用的性能测试的测试结果的另一种示例的示意图;
图11为本申请实施例提供的计算芯片的性能测试模型的另一种示例的示意图;
图12为本申请实施例提供的建立性能测试模型的装置一种示例的示意图;
图13为本申请实施例提供的应用的性能测试模型的装置一种示例的示意图;
图14为本申请实施例提供的计算设备的一种示例的示意图;
图15为本申请实施例提供的计算设备的一种示例的示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例进行详细描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请实施例提供的具体方案之前,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解,并不对本申请中的用语进行限定。
(1)屋顶(roofline)模型:是一种用于对计算芯片的运算能力和内存带宽进行可视化描述的模型。通过针对计算芯片建立的屋顶模型,与应用在该计算芯片上运行时的计算芯片的实际运算能力相比较,可以帮助分析出限制应用性能的主要因素,并且可以给出应用在该计算芯片上可以获得的最佳性能。
其中,屋顶模型中的横坐标表示操作强度,单位为flop/memory,纵坐标表示运算能力,也称为算力,单位为flop/s。flop为计算芯片的计算量的单位,flop/s表示计算芯片单位时间内的计算量,例如,计算芯片每秒可以完成的浮点运算的次数;memory为内存访问量的单位,flop/memory表示单位内存访问对应的计算量,例如,即一次内存访问获得的数据可用来完成多少次浮点运算。
(2)AI技术:是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术。AI技术是计算机科学的一个综合技术,主要研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。AI技术主要包括计算机视觉技术、语音处理技术、以及机器学习或深度学习等几大方向。
(3)深度学习(deep learning,DL)模型:是一类基于深层次神经网络的算法,主要使用多重非线性变换对输入数据进行处理和分析,可以应用于AI技术领域的感知、决策等场景,例如图像和语音识别、自然语言翻译、计算机博弈等。
本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
目前,各类应用的使用越来越广泛,可以用于解决各行各业的实际问题。在实际使用过程中,对一些应用的性能的要求较高。应用的性能实际上是指应用在计算芯片上运行时的性能,为了使应用具有更好的性能,往往需要结合计算芯片对应用的性能进行测试。
在对应用的性能进行测试之前,需要先针对计算芯片建立性能测试模型,其中,性能测试模型可以采用roofline模型。由于相关技术中均是针对计算芯片中的一个或多个内存单元构建roofline模型,通过该方式构建的性能测试模型,在用于对应用进行测试时,对于结构复杂的计算芯片,例如,对于具有不同层级内存跨级访问特性的计算芯片,测试误差较大,无法准确地表征和反馈应用的真实工作状态和瓶颈点,无法获得精度和准确度较高的测试结果。
基于此,本申请实施例提供一种模型建立方法和应用的性能测试方法。该模型建立方法和应用的性能测试方法可以适用于AI芯片,CPU芯片,TPU芯片,神经网络处理器NPU芯片,GPU芯片等计算芯片。其中,AI芯片主要用于进行人工智能领域的计算和处理,也可以称为感知芯片;TPU芯片中包括用于进行机器学习的加速器专用集成电路;NPU芯片采用数据驱动并行计算的架构,主要用于处理多媒体数据;GPU芯片用于对图形和图像数据进行处理。
图1示出了一种计算芯片的结构示意图,该计算芯片可以是AI芯片。如图1所示,该计算芯片100包括计算单元110和内存120。计算单元110也可称为运算器,包括用于执行定点或浮点算术运算操作、各种逻辑运算操作的算术逻辑单元(arithmetic logical unit,ALU)。其中,算术运算操作可以包括加、减、乘、除、比较等操作;逻辑运算操作包括与、或、非、异或、移位等操作。计算单元110可以访问内存120,从内存120中读取数据,对读取的数据进行计算处理,将处理后的数据或处理过程中的数据再保存至内存120中。
内存120可以包括易失性存储器(volatile memory),例如,随机存取存储器(random access memory,RAM)、动态随机存取存储器(dynamic random access memory,DRAM)等,也可以包括非易失性存储器(non-volatile memory),例如存储级内存(storageclass memory,SCM)等,或者易失性存储器与非易失性存储器的组合等。
内存120中可以存储被计算单元110处理后的数据或即将被计算单元110处理的数据。内存120中所存储的数据也可以包括从外存中读取到内存的数据。
内存120可以包括多个内存单元,根据每个内存单元被计算单元110访问的速度,可以将多个内存单元分为不同层级的内存单元,如图1所示的L1、L2、L3和DRAM。其中,L1被计算单元110访问的速度最快,可以称为第一级内存单元,L2可以称为第二级内存单元,L3可以称为第三级内存单元,DRAM可以称为第四级内存单元。
可选地,L1、L2、L3可以采用同步动态随机存取存储器(synchronous dynamicrandom access memory,SDRAM),或者采用双倍速率同步动态随机存储器(double datarate SDRAM,DDR SDRAM)。例如,第三级内存单元L3可以采用SDRAM,第一级内存单元L1和第二级内存单元L2可以采用DDR SDRAM。
在本申请实施例中,计算芯片100内不仅相邻层级的内存单元之间可以相互访问,非相邻层级的内存单元之间也可以相互访问。例如,L3可以被相邻的上一级内存单元L2访问,也可以被第一级内存单元L1访问;DRAM可以被相邻的上一级内存单元L3访问,也可以被第一级内存单元L1访问。不同层级的两个内存单元之间的访问可以称为跨层级访问。
可以理解的是,本申请实施例示意的结构及连接关系并不构成对计算芯片100的具体限定。在本申请另一些实施例中,计算芯片100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。例如,计算芯片100可以包括多个计算单元,内存120中的任意两个层级的内存单元之间均可以相互访问等。图示的部件可以通过硬件,软件或软件和硬件的组合实现。
在对应用的性能进行测试之前,可以先针对用于运行应用的计算芯片建立性能测试模型。下文以图1所示的计算芯片为例,说明建立性能测试模型的具体过程。图2示出了本申请实施例提供的一种模型建立方法的流程图,该模型建立方法可以由对计算芯片建立性能测试模型的计算设备执行,该计算设备可以称为模型建立设备。如图2所示,该方法可以包括如下步骤:
S201,基于获取的不同数据量的多个第一测试数据,确定计算芯片的计算单元的运算能力的峰值。
模型建立设备可以接收测试人员输入的多个第一测试数据,或者通过有线或无线连接方式从其他设备获取多个第一测试数据。例如,模型建立设备可以从同一设备中获取所需的第一测试数据,也可以从多个不同的设备获取所需的第一测试数据。基于获取的多个第一测试数据,分别对计算单元的运算能力进行多次测试,每次测试所使用的第一测试数据的数据量大小不同。每次测试的测试过程可以包括:根据计算单元处理输入的第一测试数据的计算量和计算时间的比值,确定计算单元的运算能力,将多次测试确定的计算单元的运算能力中的最大值,作为计算芯片的计算单元的运算能力的峰值。
示例性地,在任意一次测试中,模型建立设备可以从多个第一测试数据中随机抽取任意一种数据量的第一测试数据,将抽取的第一测试数据输入计算单元,获取计算单元处理该第一测试数据的计算时间和计算量。例如,可以通过性能监视工具,如profiling工具统计计算单元的计算时间和计算量,将计算量与计算时间的比值,作为此次测试得到的计算单元的运算能力。其中,profiling工具可以布署在计算芯片内部,也可以布署在计算芯片外部,如布署在模型建立设备中。profiling工具还可以用于在应用的性能测试过程中,统计应用的运行时间,在运行时间内计算单元的计算量,以及下文中所述的每个数据访问通路的内存访问量。
通过上述方法,反复进行多次测试,每一次测试均可以得到计算单元的运算能力的一个具体数值。将得到的所有运算能力中的最大值,作为计算芯片的计算单元的运算能力的峰值,也可以称为计算芯片的运算能力的峰值。
S202,针对计算芯片的每个数据访问通路,分别基于获取的不同数据量的多个第二测试数据,确定每个数据访问通路的峰值带宽。
其中,数据访问通路指计算芯片中不同层级的内存单元之间的访问路径。数据访问通路可以包括两个相邻层级的内存单元串行访问形成的访问路径,还可以包括非相邻的两个层级的内存单元之间跨层级访问形成的访问路径。以图1所示的AI芯片为例,该计算芯片包括四个不同层级的内存单元,分别为L1、L2、L3和DRAM。根据该计算芯片中每个内存单元之间的访问特性,该计算芯片中包括DRAM→L1,DRAM→L3,L3→L1,L3→L2,L3→DRAM,L2→L1,L2→L3,L2→DRAM,L1→L2共9条数据访问通路。其中,L1和L2是两个相邻层级的内存单元,因此L1→L2和L2→L1是两个内存单元串行访问形成的数据访问通路;而DRAM和L1是层级非相邻的两个内存单元,因此DRAM→L1是两个内存单元跨层级访问形成的数据访问通路。
在一些实施例中,如果计算芯片中的某个内存单元包括两种或两种以上的存储介质,每一种存储介质与另一内存单元之间均可以形成单独的数据访问通路。例如,假设一个计算芯片中的内存单元L2包括两种存储介质,可以认为内存单元L2包括两部分,其中一部分记作L2a,另一部分记作L2b,则内存单元L2与相邻层级的另一内存单元L3之间可以形成L2a→L3,L2b→L3,L3→L2a、L3→L2b四条数据访问通路。
需要说明的是,一个计算芯片包括哪些数据访问通路是由计算芯片中每个内存单元的访问特性决定的,是在制造该计算芯片时就已经确定的。对于一个计算芯片而言,不一定是任意两个内存单元之间都可以相互的跨层级访问,形成数据访问通路。例如,图1所示的计算芯片中,DRAM→L1可以形成一条数据访问通路,而L1却不能直接访问DRAM,所以,L1→DRAM并没有形成一条数据访问通路。可以理解的是,图1所示的计算芯片的结构只是示例性说明,在其他实施例中,计算芯片中可以包括更多或更少的数据访问通路,还可能包括与图1中不同的其他数据访问通路。模型建立设备可以根据测试人员输入的计算芯片的结构和计算芯片中每个内存单元的访问特性,确定该计算芯片内的数据访问通路。
模型建立设备可以接收测试人员输入的多个第二测试数据,或者通过有线或无线连接方式从其他设备获取多个第二测试数据。例如,模型建立设备可以从同一设备中获取所需的第二测试数据,也可以从多个不同的设备获取所需的第二测试数据。
在一种可选的实施例中,对于9条数据访问通路中的任意一条数据访问通路,模型建立设备可以通过如下方法确定该数据访问通路的峰值带宽:分别对该数据访问通路的数据传输能力进行多次测试,每次测试所使用的第二测试数据的数据量大小不同。示例性地,在任意一次测试中,通过该数据访问通路持续进行数据传输,获取此次测试所用的数据传输时间,例如,可以采用profiling工具统计此次测试所用的数据传输时间。将此次测试所采用的第二测试数据的数据量大小与此次数据传输时间的比值,作为此次测试得到的该数据访问通路的内存带宽。将多次测试得到的所有内存带宽中的最大值,作为该数据访问通路的峰值带宽。
在另一种可选的实施例中,可以设置数据量大小不同的第二测试数据和不同的内存搬运模式的多个测试用例。其中,内存搬运模式可以包括连续搬运模式、常步长搬运模式和随机搬运模式。连续搬运模式指搬运数据的地址连续,例如,从内存的某一地址开始,连续地读取指定数据量大小的数据;常步长搬运模式指搬运数据的地址固定间隔;随机搬运模式指搬运数据的地址随机间隔。针对每一种内存搬运模式,可以在相同的数据量范围内选择多个不同数据量大小的第二测试数据。例如,在0K到1000K的范围内,选择多个数据量大小的第二测试数据,分别与每一种内存搬运模式组合,形成多个测试用例。
针对9条数据访问通路中的任意一条数据访问通路,分别执行得到的多个测试用例,进行多次数据传输测试,每次测试均可以得到该数据访问通路的内存带宽的一个测试结果。将多次测试得到的所有内存带宽中的最大值,作为该数据访问通路的峰值带宽。
通过上述方法,可以分别确定每个数据访问通路的峰值带宽。
S203,根据每个数据访问通路的峰值带宽和计算芯片的运算能力的峰值,生成包括每个数据访问通路的性能测试线的性能测试模型。
针对每个数据访问通路中的任意一条数据访问通路,根据该数据访问通路的峰值带宽和计算芯片的运算能力的峰值,生成该数据访问通路的性能测试线,进而得到计算芯片的性能测试模型。其中,任意一条数据访问通路的性能测试线均可以采用roofline模型,roofline模型也可以称为屋脊折线,具有直观可视化的特点。其数学表达式为performance=min(OI*peak bandwidth,peak performance)。在屋脊折线所在的坐标系中,纵坐标表示计算芯片的运算能力(performance),用于表征计算芯片的性能;横坐标表示操作强度(Operational Intensity,OI),操作强度表示单位内存访问对应的计算量,peakbandwidth表示该数据访问通路的峰值带宽;OI*peak bandwidth为操作强度与该数据访问通路的峰值带宽的乘积;peak performance表示计算芯片的运算能力的峰值。上述数学表达式表示:计算芯片的性能由OI*peak bandwidth和peak performance中的最小者决定。
仍以图1所示的计算芯片为例,针对上述9条数据访问通路中的数据访问通路L3→DRAM,根据该数据访问通路的峰值带宽和计算芯片的运算能力的峰值,生成该数据访问通路的roofline模型,即图3所示的屋脊折线。其中,屋脊折线的斜线部分表示:当任一应用的工作点落于斜线部分时,说明该应用在该计算芯片上表现的性能由计算芯片中数据访问通路L3→DRAM的峰值带宽所限制,因此,斜线部分对应的区域可以称为内存限制(memorybound)区域;屋脊折线的水平部分表示:当任一应用的工作点落于水平部分时,说明该应用在该计算芯片上表现的性能由计算芯片中的计算单元的运算能力的峰值所限制,因此,水平部分对应的区域可以称为算力限制(computer bound)区域。
采用上述方法,可以得到9条数据访问通路中的每条数据访问通路的性能测试线,根据各条数据访问通路的性能测试线,建立该计算芯片的性能测试模型,该性能测试模型可以包括如图4所示的9条屋脊折线。
本申请实施例中,在针对计算芯片建立性能测试模型时,分别确定计算芯片的每个数据访问通路的性能测试线,可以建立精度更高的性能测试模型。通过该性能测试模型对应用进行测试,可以获取精度更高的测试结果,提高测试准确度和测试精度。
在一些可选的实施例中,结合针对计算芯片建立的性能测试模型,对应用的性能进行测试的过程,如图5所示,可以包括如下步骤:
S501,获取应用在计算芯片上运行的运行状况数据,以及在应用的运行过程中,计算芯片的每个数据访问通路的内存访问量。
其中,运行状况数据可以包括应用在计算芯片上的运行时间,以及在运行时间内计算芯片的计算单元的计算量。该计算芯片为根据前述步骤S201-S204的方法预先建立了性能测试模型的计算芯片,计算芯片可以包括多个不同层级的内存单元,数据访问通路指内存单元之间的访问路径,在上文中已经详细介绍,在此不再赘述。
本实施例中以图1所示的计算芯片为例进行说明。例如,图1所示的计算芯片中,DRAM→L1是一条数据访问通路,L1→L2也是一条数据访问通路。
示例性地,可以采用profiling工具统计应用的运行时间,在运行时间内计算芯片的计算单元的计算量,以及每个数据访问通路的内存访问量。
S502,根据运行状况数据和每个数据访问通路的内存访问量,确定应用的运行性能信息。
应用的运行性能信息指通过运行应用得到的应用的性能描述信息。在一些实施例中,应用的运行性能信息可以包括每个数据访问通路的分通路性能信息,每个数据访问通路的分通路性能信息可以通过应用的运行过程中计算芯片的运算能力参数和该数据访问通路的操作强度体现。其中,每个数据访问通路指在应用的运行过程中,进行了数据传输的每个数据访问通路,对于没有进行数据传输的数据访问通路,其内存访问量为0,无法得到该数据访问通路的操作强度,因此无需确定该数据访问通路的分通路性能信息。
每个数据访问通路的分通路性能信息可以通过如下方式获得:根据计算芯片的计算单元的计算量和应用的运行时间,可以确定在应用的运行过程中,计算芯片的运算能力参数,运算能力参数表示在应用的运行过程中,计算芯片在单位时间内完成的计算量。例如,假设应用的运行时间为Time,在运行时间Time内,计算芯片的计算单元的计算量为Flop,则计算芯片的运算能力参数可以表示为Flop/Time。
在得到计算芯片的运算能力参数之后,针对每个数据访问通路,可以分别执行如下操作:根据计算芯片的计算单元的计算量和该数据访问通路的内存访问量,可以确定该数据访问通路的操作强度。数据访问通路的操作强度表示该数据访问通路单位内存访问所对应的计算量;例如,假设在运行时间Time内,计算芯片的计算单元的计算量为Flop,该数据访问通路的内存访问量为memory,则该数据访问通路的操作强度可以表示为Flop/memory。根据计算芯片的运算能力参数和该数据访问通路的操作强度,生成该数据访问通路的分通路性能信息。
示例性地,仍以图1所示的计算芯片为例,如图6所示,每个数据访问通路的分通路性能信息可以通过在性能测试模型中各自对应的分通路工作点的位置表示。图6中的空心圆点表示每个数据访问通路的分通路工作点,分通路工作点的横坐标表示数据访问通路的操作强度,分通路工作点的纵坐标表示计算芯片的运算能力参数。第i条数据访问通路的分通路工作点的横坐标可以表示为Flop/memoryi,纵坐标可以表示为Flop/Time,其中,Flop为步骤S501中获取的计算芯片的计算单元的计算量,memoryi为步骤S501中获取的第i条数据访问通路的内存访问量,Time为步骤S501中获取的应用的运行时间。
在另一些实施例中,应用的运行性能信息可以包括每个数据访问通路的分通路性能信息和每个数据通路集合的集合性能信息。其中,每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时访问。每个数据通路集合是根据内存访问特性对计算芯片的数据访问通路进行分组得到的。具体地,可以将能够同时访问的数据访问通路划分到不同的数据通路集合中,将不能同时访问的数据访问通路划分到同一数据通路集合中。一个数据通路集合也可以称为一条流水。也就是说,属于不同数据通路集合的任意两条数据访问通路均可以同时进行数据访问;每个数据通路集合包括不能同时进行数据访问的一条或多条数据访问通路,或者说,如果一个数据通路集合包括多条数据访问通路,对于其中任意一条数据访问通路,至少存在另一条与其不能同时进行数据访问的数据访问通路。
每个数据通路集合的集合性能信息可以表示该数据通路集合包括的所有数据访问通路的整体性能。每个数据通路集合的集合性能信息可以通过应用的运行过程中计算芯片的运算能力参数和该数据通路集合包括的各条数据访问通路的操作强度确定。
每个数据通路集合的集合性能信息可以通过如下方式获得:根据计算芯片中的计算单元的计算量和应用的运行时间,可以确定在应用的运行过程中,计算芯片的运算能力参数。例如,如上所述,计算芯片的运算能力参数可以表示为Flop/Time。
在得到计算芯片的运算能力参数之后,针对每个数据通路集合,可以分别执行如下操作:根据获取的每个数据访问通路的内存访问量,确定该数据通路集合包括的各数据访问通路的内存访问量的和。根据计算芯片中的计算单元的计算量和该数据通路集合包括的各条数据访问通路的内存访问量的和的比值,确定该数据通路集合的总体操作强度;例如,该数据通路集合包括的各条数据访问通路的内存访问量的和可以表示为∑memory,该数据通路集合的总体操作强度可以表示为Flop/∑memory。根据得到的运算能力参数和该数据通路集合的总体操作强度,生成该数据通路集合的集合性能信息。
每个数据通路集合中的数据访问通路属于同一个加载存储单元(load storeunit,LSU)。示例性地,针对如图1所示的计算芯片所包含的9条数据访问通路进行分组,得到如下几组数据通路集合:DRAM→L1和DRAM→L3属于LSU1,L3→L1和L3→L2属于LSU2,L2→L1,L2→L3,L2→DRAM属于LSU3,L3→DRAM属于LSU4,L1→L2属于LSU5。
如图7所示,每个数据通路集合的集合性能信息可以通过各自对应的总体工作点的位置表示。图7中的实心圆点表示每个数据通路集合的总体工作点,总体工作点的横坐标由对应的数据通路集合的总体操作强度确定,总体工作点的纵坐标由计算芯片的运算能力参数确定。第i个数据通路集合的总体工作点的横坐标可以表示为Flop/∑memoryi,纵坐标可以表示为Flop/Time,其中,Flop为步骤S501中获取的计算芯片的计算单元的计算量,∑memoryi为步骤S501中获取的第i个数据通路集合包括的各条数据访问通路的内存访问量的和,Time为步骤S501中获取的应用的运行时间。
由于各条数据访问通路的分通路工作点的纵坐标是由计算芯片的运算能力参数确定的,每个数据通路集合的总体工作点的纵坐标也是由计算芯片的运算能力参数确定的,因此,每个总体工作点和每个分通路工作点的纵坐标相同,在图7中表现为,每个总体工作点和每个分通路工作点位于同一水平线上。
如果某个数据通路集合中仅包含一条数据访问通路,则该数据通路集合的总体工作点与该数据访问通路的分通路工作点重合,可以仅保留该数据通路集合的总体工作点。例如,图7中,LSU4的总体工作点与其所包含的数据访问通路L3→DRAM的分通路工作点重合,则数据访问通路L3→DRAM的分通路工作点被覆盖,仅保留LSU4的总体工作点;LSU5的总体工作点与其所包含的数据访问通路L1→L2的分通路工作点重合,则数据访问通路L1→L2的分通路工作点被覆盖,仅保留LSU5的总体工作点。
S503,根据应用的运行性能信息和针对计算芯片建立的性能测试模型,获得应用的测试结果。
其中,针对计算芯片建立的性能测试模型可以包括该计算芯片的每个数据访问通路的性能测试线。
在一些实施例中,可以确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果,有利于用户根据对比结果,确定对应用进行优化的方向。
示例性地,在一种实施例中,如果应用的运行性能信息包括每个数据访问通路的分通路性能信息,则可以确定每个数据访问通路的分通路性能信息与每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果。例如,可以将图6所示的图形作为应用的测试结果,显示给用户,用户可以根据显示的图形,确定应用需要进行优化的具体方向。
在另一种实施例中,如果应用的运行性能信息包括每个数据访问通路的分通路性能信息和每个数据通路集合的集合性能信息,则可以确定每个集合性能信息和每个分通路性能信息,与每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果。例如,可以将图7所示的图形作为应用的测试结果,显示给用户,用户可以根据显示的图形,确定应用需要进行优化的具体瓶颈点。
可选地,对于每个总体工作点,可以显示其所属的数据通路集合的信息,对于每个分通路工作点,可以显示其对应的数据访问通路的信息;对于每个分通路工作点,还可以显示其对应的数据访问通路的数据访问量,以及每个分通路工作点到对应的屋脊线的距离。在一些实施例中,还可以通过每个总体工作点或每个分通路工作点的大小,表示应用的数据处理速度。如果应用的数据处理速度较快,则每个工作点的尺寸较小,如果应用的数据处理速度较慢,则每个工作点的尺寸较大;也可以说,每个工作点的直径与应用的运行时间正相关。
在另一些实施例中,可以确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果,可以使用户直接根据分析结果,有效地对应用进行优化。
示例性地,在一种实施例中,如果应用的运行性能信息包括每个数据访问通路的分通路性能信息,则可以确定每个数据访问通路的分通路性能信息与每个数据访问通路的性能测试线之间的对比结果,根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果。在该实施例中,将应用运行过程中的每个数据访问通路的分通路性能信息与计算芯片的每个数据访问通路的性能测试线进行比对,可以获取精度更高的测试结果,提高测试准确度和测试精度。
在另一种实施例中,如果应用的运行性能信息包括每个数据访问通路的分通路性能信息和每个数据通路集合的集合性能信息,则可以确定每个集合性能信息和每个分通路性能信息,与每个数据访问通路的性能测试线之间的对比结果,根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果。在下文的示例性描述中,每个数据通路集合的集合性能信息通过总体工作点描述,每个数据访问通路的分通路性能信息通过分通路工作点描述。
示例性地,在一种实施例中,如图8所示,每个总体工作点和每个分通路工作点均位于computer bound区域,说明应用在该计算芯片上表现的性能由计算芯片中计算单元的运算能力的峰值所限制,得到的性能测试结果可以是:应用的性能受到计算芯片中计算单元的运算能力的峰值限制。此时,如果要提高应用的性能,可以提高计算芯片的运算能力,例如,可以选用运算能力更高的计算芯片;或者,可以修改应用的代码,采用其他计算方法替换应用中原有的计算方法,减少计算量,使应用更适应当前的计算芯片的运算能力。
在另一种实施例中,至少有一个总体工作点或者至少有一个分通路工作点位于memory bound区域,如图9所示,LSU4对应的总体工作点,或者说,数据访问通路L3→DRAM对应的分通路工作点位于memory bound区域,说明应用在该计算芯片上表现的性能由计算芯片中数据访问通路L3→DRAM的峰值带宽所限制,得到的性能测试结果可以是:应用的性能受到计算芯片中数据访问通路L3→DRAM的峰值带宽的限制。此时,如果要提高应用的性能,可以提高计算芯片中相应数据访问通路的峰值带宽,例如可以对相应的内存单元进行改进;或者,可以修改应用的代码,采用其他计算方法替换应用中原有的计算方法,增大应用的操作强度,减小应用运行过程中的数据传输量,减小对内存访问带宽的压力,即增大Flop/memoryi的值,使每个主体工作点和每个分通路工作点的位置向右移动,以克服带宽瓶颈。
在另一种实施例中,如图10所示,每个总体工作点和每个分通路工作点既不位于computer bound区域,也不位于memory bound区域,如果应用的性能比较差,如在使用过程中,应用的数据处理速度较慢,不能达到要求,此时,可以认为存在潜在因素限制(latencybound),得到的性能测试结果可以是:应用的性能受到潜在因素限制。其原因通常是由于应用中的算子的性能较差,需要修改应用的代码,优化算子性能。
相比于相关技术,本申请实施例在针对计算芯片建模时,可以针对计算芯片的每个数据访问通路进行建模,来表征每个数据访问通路的内存访问特性,可以对结构复杂的计算芯片准确建模,得到精度更高的性能测试模型。在建模过程中,既考虑了层级内存之间的串行访问特性,还考虑了内存之间的跨级访问特性,得到的性能测试模块可以准确描述如图1所示的复杂结构的计算芯片的计算特性和内存访问特性。
在一些实施例中,在对应用进行测试时,对每个数据访问通路的分通路性能信息进行分析,可以准确地表征和反馈应用需要进行优化的具体瓶颈点,获得高精度的测试结果。
在一些实施例中,在对应用进行测试时,对每个数据访问通路的分通路性能信息和每个数据通路集合的集合性能信息进行分析,其中,集合性能信息是对由同一个内存单元控制的数据访问通路的整体性能的概括性描述,集合性能信息可以反馈出应用的性能具体受到哪一个内存单元的访问特性限制;分通路性能信息可以反馈出应用的性能具体受到哪一个数据访问通路的访问特性限制。通过二者结合的分析方法,可以从不同的分析粒度,更详细、更准确地给出应用的工作状态描述和瓶颈点分析结果。
在一些实施例中,用于测试应用的计算芯片可以包括多个计算单元。对于包括多个计算单元的计算芯片,可以针对每个计算单元分别建立性能测试模型,也就是说,该计算芯片的性能测试模型由分别针对每个计算单元建立的性能测试模型构成。下文以包括两个计算单元的计算芯片为例进行示例性说明。
假设计算芯片包括两个计算单元Unit-1和Unit-2和如图1所示的四个不同层级的内存单元。则针对该计算芯片建立性能测试模型时,可以采用上文中记载的方法,分别确定Unit-1和Unit-2的运算能力的峰值,以及每个数据访问通路的峰值带宽,根据每个数据访问通路的峰值带宽和Unit-1的运算能力的峰值,建立Unit-1对应的性能测试模型;根据每个数据访问通路的峰值带宽和Unit-2的运算能力的峰值,建立Unit-2对应的性能测试模型。最终得到的计算芯片的性能测试模型如图11所示。
以被测试的应用是神经网络模型或包括神经网络模型的程序模块为例,采用包括Unit-1和Unit-2两个计算单元的计算芯片测试神经网络模型的性能时,可以根据每个计算单元的不同计算性能,由不同的技术单元执行神经网络模型中不同类型的计算。例如,可以通过Unit-1进行卷积类型的计算,通过Unit-2进行池化操作的计算,使用性能监视统计工具,可以分别获得Unit-1和Unit-2的计算量,以及每个数据访问通路的内存访问量。
在一种实施例中,可以将Unit-1的计算量与Unit-2的计算量之和,作为计算芯片的计算单元的计算量。根据计算芯片的计算单元的计算量和每个数据访问通路的内存访问量,通过上述方法确定每个数据访问通路的分通路工作点和每个数据通路集合的总体工作点的位置。将每个分通路工作点和每个总体工作点的位置分别与Unit-1和Unit-2的性能测试模型中每个数据访问通路对应的屋脊线进行比对,确定神经网络模型的性能是受到Unit-1的运算能力的限制,还是受到Unit-2的运算能力的限制,或者是由于神经网络模型中的算子的性能较差导致神经网络模型的数据处理速度较低,或者是其他各种原因等。
在另一种实施例中,对于计算单元Unit-1,可以根据Unit-1的计算量和每个数据访问通路的内存访问量,通过上述方法确定每个数据访问通路的分通路工作点和每个数据通路集合的总体工作点的位置。将每个分通路工作点和每个总体工作点的位置与Unit-1的性能测试模型中每个数据访问通路对应的屋脊线进行比对,确定神经网络模型的性能是否受到Unit-1的运算能力的限制。对于计算单元Unit-2,可以根据Unit-2的计算量和每个数据访问通路的内存访问量,通过上述方法确定每个数据访问通路的分通路工作点和每个数据通路集合的总体工作点的位置。将每个分通路工作点和每个总体工作点的位置与Unit-2的性能测试模型中每个数据访问通路对应的屋脊线进行比对,确定神经网络模型的性能是否受到Unit-2的运算能力的限制。如果神经网络模型的性能没有受到Unit-1和Unit-2的运算能力的限制,那么是否由于神经网络模型中的算子的性能较差导致神经网络模型的数据处理速度较低,或者是其他原因等。
本申请实施例提供的应用的性能测试方法,可以应用于互联网数据中心、边缘侧设备等涉及对负载(应用)进行性能、瓶颈分析及负载性能优化的应用场景中,并且将计算芯片布署在服务器或者终端设备上的各种架构,均可以使用本申请实施例提供的应用的性能测试方法。
与上述建立性能测试模型的方法实施例基于相同的发明构思,本申请实施例还提供一种建立性能测试模型的装置,该建立性能测试模型的装置可以应用于针对计算芯片建立性能测试模型的计算设备中,该计算设备可以是服务器、计算机等设备。建立性能测试模型的装置可以用于实现上述建立性能测试模型的方法实施例的功能,因此可以实现上述建立性能测试模型的方法实施例所具备的有益效果。
如图12所示,本申请实施例提供的建立性能测试模型的装置可以包括算力测试单元1201、带宽测试单元1202和模型建立单元1203。建立性能测试模型的装置用于实现上述图2中所示的方法实施例中的功能。当建立性能测试模型的装置用于实现图2所示的方法实施例的功能时:算力测试单元1201可以用于执行S201,带宽测试单元1202可以用于执行S202,模型建立单元1203可以用于执行S203。比如:算力测试单元1201,用于基于获取的不同数据量的多个第一测试数据,确定计算芯片的计算单元的运算能力的峰值;带宽测试单元1202,用于针对计算芯片的每个数据访问通路,分别基于获取的不同数据量的多个第二测试数据,确定每个数据访问通路的峰值带宽,其中,计算芯片包括多个内存单元,每个数据访问通路表示内存单元之间的访问路径;模型建立单元1203,用于根据每个数据访问通路的峰值带宽和计算单元的运算能力的峰值,建立性能测试模型,其中,性能测试模型包括每个数据访问通路的性能测试线。
在一种可能的实现方式中,算力测试单元1201,具体可以用于:基于多个第一测试数据,对计算芯片的计算单元进行多次测试;其中,每次测试的测试过程包括:根据计算单元处理输入的第一测试数据的计算量和计算时间的比值,确定计算单元的运算能力;将每次测试确定的计算单元的运算能力中的最大值,作为计算芯片的计算单元的运算能力的峰值。
与上述应用的性能测试方法实施例基于相同的发明构思,本申请实施例还提供一种应用的性能测试装置,该应用的性能测试装置可以应用于针对计算芯片进行应用性能测试的计算设备中,该计算设备可以是服务器、计算机等设备。建立应用的性能测试装置可以用于实现上述应用的性能测试方法实施例的功能,因此可以实现上述应用的性能测试方法实施例所具备的有益效果。
如图13所示,本申请实施例提供的应用的性能测试装置可以包括数据获取单元1301和性能测试单元1302。应用的性能测试装置用于实现上述图5中所示的方法实施例中的功能。当应用的性能测试装置用于实现图5所示的方法实施例的功能时:数据获取单元1301可以用于执行S501,性能测试单元1302可以用于执行S502和S503。比如:数据获取单元1301,用于获取应用在计算芯片上运行的运行状况数据,以及在应用的运行过程中,计算芯片的每个数据访问通路的内存访问量,其中,计算芯片包括多个内存单元;数据访问通路表示内存单元之间的访问路径;性能测试单元1302,用于根据运行状况数据和每个数据访问通路的内存访问量,确定应用的运行性能信息;根据应用的运行性能信息和针对计算芯片建立的性能测试模型,获得应用的测试结果;性能测试模型包括每个数据访问通路的性能测试线。
在一种可能的实现方式中,运行状况数据包括应用的运行时间,以及在运行时间内计算芯片中的计算单元的计算量;性能测试单元1302,具体可以用于:根据计算量和运行时间,确定在应用的运行过程中,计算芯片的运算能力参数;针对每个数据访问通路,根据计算量和每个数据访问通路的内存访问量,确定每个数据访问通路的操作强度;根据运算能力参数和每个数据访问通路的操作强度,生成每个数据访问通路的分通路性能信息。
在一种可能的实现方式中,应用的运行性能信息还包括每个数据通路集合的集合性能信息;每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时访问;性能测试单元1302,还可以用于:针对每个数据通路集合,根据每个数据通路集合中的数据访问通路的内存访问量的和,以及计算量,确定每个数据通路集合的总体操作强度;根据运算能力参数和每个数据通路集合的总体操作强度,生成每个数据通路集合的集合性能信息。
在一种可能的实现方式中,性能测试单元1302,具体可以用于:确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果,将对比结果作为应用的测试结果。
在一种可能的实现方式中,性能测试单元1302,具体可以用于:确定应用的运行性能信息与性能测试模型中每个数据访问通路的性能测试线之间的对比结果;根据对比结果,确定用于指明对应用进行优化的分析结果,并将分析结果作为应用的测试结果。
在一种可能的实现方式中,性能测试模型是根据计算芯片的计算单元的运算能力的峰值和每个数据访问通路的峰值带宽建立的,计算单元的运算能力的峰值和每个数据访问通路的峰值带宽是由测试数据对计算芯片进行测试确定的。
与上述方法实施例基于相同的发明构思,本申请实施例中还提供一种计算设备,该计算设备可以用于实现上述方法实施例的功能,因此可以实现上述方法实施例所具备的有益效果。该计算设备可以是服务器、计算机等设备。
在一些实施例中,该计算设备的结构可以如图14所示,包括处理器1401以及与处理器1401连接的存储器1402。
可选地,处理器1401和存储器1402之间可以通过总线相互连接,处理器1401可以是通用处理器,如微处理器,或其他常规的处理器。总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器1402用于存储处理器1401执行的指令或程序,或存储处理器1401运行指令或程序所需要的输入数据,或存储处理器1401运行指令或程序后产生的数据。处理器1401可以包括一个或多个处理单元,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器1401中还可以包括控制器,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
在一种实施例中,处理器1401可以与设置在该计算设备之外的待测试的计算芯片连接,例如,处理器1401可以与另一设备中的计算芯片连接,针对该计算芯片建立性能测试模型。
示例性地,计算设备1400中的处理器1401用于运行存储器1402存储的指令或者程序,执行图2所示的方法实施例中的功能。比如,当计算设备1400用于实现图2所示的方法时,处理器1401用于执行上述算力测试单元1201、带宽测试单元1202和模型建立单元1203的功能。例如,算力测试单元1201可由处理器1401调用存储器中存储的程序或指令,基于获取的不同数据量的多个第一测试数据,确定计算芯片的计算单元的运算能力的峰值。带宽测试单元1202可由处理器1401调用存储器中存储的程序或指令,针对计算芯片的每个数据访问通路,分别基于获取的不同数据量的多个第二测试数据,确定每个数据访问通路的峰值带宽,其中,计算芯片包括多个内存单元,每个数据访问通路表示内存单元之间的访问路径。模型建立单元1203可由处理器1401调用存储器中存储的程序或指令,根据每个数据访问通路的峰值带宽和计算单元的运算能力的峰值,建立性能测试模型,其中,性能测试模型包括每个数据访问通路的性能测试线。
在另一种实施例中,处理器1401可以与设置在该计算设备之外的待测试的计算芯片连接,例如,处理器1401可以与另一设备中的计算芯片连接,针对该计算芯片进行应用性能测试。
示例性地,计算设备1400中的处理器1401用于运行存储器1402存储的指令或者程序,执行图5所示的方法实施例中的功能。比如,当计算设备1400用于实现图5所示的方法时,处理器1401用于执行上述数据获取单元1301和性能测试单元1302的功能。例如,数据获取单元1301可由处理器1401调用存储器中存储的程序或指令,获取应用在计算芯片上运行的运行状况数据,以及在应用的运行过程中,计算芯片的每个数据访问通路的内存访问量,其中,计算芯片包括多个内存单元;数据访问通路表示内存单元之间的访问路径。性能测试单元1302可由处理器1401调用存储器中存储的程序或指令,根据运行状况数据和每个数据访问通路的内存访问量,确定应用的运行性能信息;根据应用的运行性能信息和针对计算芯片建立的性能测试模型,获得应用的测试结果;性能测试模型包括每个数据访问通路的性能测试线。
在另一些实施例中,该计算设备的结构可以如图15所示,包括处理器1501以及与处理器1501连接的存储器1502和计算芯片1503。
可选地,处理器1501、存储器1502和计算芯片1503之间可以通过总线相互连接,处理器1501可以是通用处理器,如微处理器,或其他常规的处理器。总线可以是PCI总线或EISA总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1502用于存储处理器1501执行的指令或程序,或存储处理器1501运行指令或程序所需要的输入数据,或存储处理器1501运行指令或程序后产生的数据。处理器1501可以包括一个或多个处理单元,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一种实施例中,处理器1501可以运行存储器1502存储的指令或者程序,执行图2所示的建立性能测试模型的方法实施例中的功能。在另一种实施例中,处理器1501可以运行存储器1502存储的指令或者程序,执行图5所示的应用的性能测试方法实施例中的功能。
可以理解的是,本申请实施例示意的结构并不构成对计算设备的具体限定。在本申请另一些实施例中,计算设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行计算机程序或指令的方式来实现。计算机程序或指令可以构成计算机程序产品。本申请实施例还提供一种计算机程序产品,包含有计算机可执行指令。在一种实施例中,该计算机可执行指令用于使计算机执行图2所示的建立性能测试模型的方法实施例中的功能。在另一种实施例中,该计算机可执行指令用于使计算机执行图5所示的建立性能测试模型的方法实施例中的功能。
计算机可执行指令可以被存放于计算机可读存储介质中,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有可执行指令。在一种实施例中,该计算机可执行指令用于使计算机执行图2所示的建立性能测试模型的方法实施例中的功能。在另一种实施例中,该计算机可执行指令用于使计算机执行图5所示的建立性能测试模型的方法实施例中的功能。
本申请实施例提供的计算机可读存储介质可以是随机存取存储器(randomaccess memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically ePROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的计算机可读存储介质。
计算机可执行指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital videodisc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的方案进行示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种运行于计算芯片的应用的性能测试方法,所述计算芯片包括多个访问通路,所述访问通路为所述计算芯片所包括的内存单元之间的数据传输通道,其特征在于,所述方法包括:
获取所述应用在所述计算芯片上运行时的运行时间、所述计算芯片的计算量、及每条访问通路上的带宽;
根据所述运行时间、计算量、及每条访问通路上的带宽,确定所述应用的运行性能信息;
根据所述应用的运行性能信息和预设的所述多个访问通路的性能测试基准对所述应用的性能进行测试,并得到性能测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运行时间、计算量、及每条访问通路上的带宽,确定所述应用的运行性能信息,包括:
根据所述计算量和所述运行时间,确定在所述应用的运行过程中,所述计算芯片的运算能力参数;
根据所述计算量和每个数据访问通路的带宽,确定每个数据访问通路的操作强度;
根据所述运算能力参数和每个数据访问通路的操作强度,生成每个数据访问通路的性能信息;
根据每个数据访问通路的性能信息生成所述应用的运行性能信息。
3.根据权利要求2所述的方法,其特征在于,所述应用的运行性能信息还包括至少一个数据通路集合的集合性能信息;每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时传输数据;所述根据所述运行时间、计算量、及每条访问通路上的带宽,确定所述应用的运行性能信息,还包括:
根据每个数据通路集合中的数据访问通路的带宽总和,以及所述计算量,确定每个数据通路集合的总体操作强度;
根据所述运算能力参数和每个数据通路集合的总体操作强度,生成每个数据通路集合的集合性能信息。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述根据所述应用的运行性能信息和预设的所述多个访问通路的性能测试基准对所述应用的性能进行测试,包括:
确定所述应用的运行性能信息与所述多个访问通路的性能测试基准之间的对比结果,将所述对比结果作为所述应用的测试结果。
5.根据权利要求1~3中任一项所述的方法,其特征在于,所述根据所述应用的运行性能信息和预设的所述多个访问通路的性能测试基准对所述应用的性能进行测试,包括:
确定所述应用的运行性能信息与每个访问通路的性能测试基准之间的对比结果;
根据所述对比结果,确定对所述应用进行优化的分析结果,并将所述分析结果作为所述应用的测试结果。
6.根据权利要求1~5中任一项所述的方法,其特征在于,所述多个访问通路的性能测试基准属于性能测试模型,所述性能测试模型是根据所述计算芯片的计算单元的运算能力的峰值和每个数据访问通路的峰值带宽建立的,所述计算单元的运算能力的峰值和每个数据访问通路的峰值带宽是由测试数据对所述计算芯片进行测试确定的。
7.一种运行于计算芯片的应用的性能测试装置,所述计算芯片包括多个访问通路,所述访问通路为所述计算芯片所包括的内存单元之间的数据传输通道,其特征在于,所述装置包括:
数据获取单元,用于所述应用在所述计算芯片上运行时的运行时间、所述计算芯片的计算量、及每条访问通路上的带宽;
性能测试单元,用于根据所述运行时间、计算量、及每条访问通路上的带宽,确定所述应用的运行性能信息;及根据所述应用的运行性能信息和预设的所述多个访问通路的性能测试基准对所述应用的性能进行测试,并得到性能测试结果。
8.根据权利要求7所述的装置,其特征在于,所述运行状况数据包括应用的运行时间,以及在所述运行时间内计算芯片中的计算单元的计算量;所述性能测试单元,具体用于:
根据所述计算量和所述运行时间,确定在所述应用的运行过程中,所述计算芯片的运算能力参数;
根据所述计算量和每个数据访问通路的带宽,确定每个数据访问通路的操作强度;
根据所述运算能力参数和每个数据访问通路的操作强度,生成每个数据访问通路的性能信息;
根据每个数据访问通路的性能信息生成所述应用的运行性能信息。
9.根据权利要求8所述的装置,其特征在于,所述应用的运行性能信息还包括至少一个数据通路集合的集合性能信息;每个数据通路集合包括至少一个数据访问通路,其中,同一数据通路集合中的数据访问通路不能同时传输数据;所述性能测试单元,还用于:
根据每个数据通路集合中的数据访问通路的带宽总和,以及所述计算量,确定每个数据通路集合的总体操作强度;
根据所述运算能力参数和每个数据通路集合的总体操作强度,生成每个数据通路集合的集合性能信息。
10.根据权利要求7~9中任一项所述的装置,其特征在于,所述性能测试单元,具体用于:
确定所述应用的运行性能信息与所述多个访问通路的性能测试基准之间的对比结果,将所述对比结果作为所述应用的测试结果。
11.根据权利要求7~9中任一项所述的装置,其特征在于,所述性能测试单元,具体用于:
确定所述应用的运行性能信息与每个访问通路的性能测试基准之间的对比结果;
根据所述对比结果,确定对所述应用进行优化的分析结果,并将所述分析结果作为所述应用的测试结果。
12.根据权利要求7~11中任一项所述的装置,其特征在于,所述多个访问通路的性能测试基准属于性能测试模型,所述性能测试模型是根据所述计算芯片的计算单元的运算能力的峰值和每个数据访问通路的峰值带宽建立的,所述计算单元的运算能力的峰值和每个数据访问通路的峰值带宽是由测试数据对所述计算芯片进行测试确定的。
13.一种计算机程序产品,其特征在于,包含有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~6中任一项所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机可执行指令,其特征在于:所述计算机可执行指令用于使计算机执行如权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211540631.3A CN116069603B (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211540631.3A CN116069603B (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
CN202111158071.0A CN115878437A (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111158071.0A Division CN115878437A (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069603A true CN116069603A (zh) | 2023-05-05 |
CN116069603B CN116069603B (zh) | 2023-12-08 |
Family
ID=85756555
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211540631.3A Active CN116069603B (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
CN202111158071.0A Pending CN115878437A (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111158071.0A Pending CN115878437A (zh) | 2021-09-28 | 2021-09-28 | 应用的性能测试方法、建立性能测试模型的方法及装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4357924A1 (zh) |
CN (2) | CN116069603B (zh) |
WO (1) | WO2023050885A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116597886B (zh) * | 2023-07-18 | 2023-10-24 | 深圳中安辰鸿技术有限公司 | 对npu中的lsu进行验证的方法及相关设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009024173A1 (en) * | 2007-08-22 | 2009-02-26 | Verigy (Singapore) Pte. Ltd. | Chip tester, method for providing timing information, test fixture set, apparatus for post-processing propagation delay information, method for post-processing delay information, chip test set up and method for testing devices under test |
CN204256724U (zh) * | 2014-12-13 | 2015-04-08 | 海太半导体(无锡)有限公司 | 一种服务器内存测试设备 |
CN109634843A (zh) * | 2018-10-31 | 2019-04-16 | 中国科学院软件研究所 | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 |
CN110276096A (zh) * | 2019-05-08 | 2019-09-24 | 北京百度网讯科技有限公司 | 提高深度学习模型预测能力的方法、电子设备和存储介质 |
US20190354308A1 (en) * | 2018-05-15 | 2019-11-21 | Nxp Usa, Inc. | Hardware, Software and Algorithm to Precisely Predict Performance of SOC when a Processor and Other Masters Access Single-Port Memory Simultaneously |
US20200125411A1 (en) * | 2018-10-17 | 2020-04-23 | Oracle International Corporation | Detection, modeling and application of memory bandwith patterns |
CN111813626A (zh) * | 2020-07-02 | 2020-10-23 | 国家超级计算天津中心 | 一种高性能计算应用的性能监测系统 |
CN112769642A (zh) * | 2020-12-25 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种服务器pcie链路的测试方法及相关设备 |
CN112883241A (zh) * | 2021-03-19 | 2021-06-01 | 中国人民解放军国防科技大学 | 基于连通分量生成优化的超级计算机基准测试加速方法 |
CN113157509A (zh) * | 2021-04-25 | 2021-07-23 | 中国科学院微电子研究所 | 一种内存安全性检测方法和片上系统 |
-
2021
- 2021-09-28 CN CN202211540631.3A patent/CN116069603B/zh active Active
- 2021-09-28 CN CN202111158071.0A patent/CN115878437A/zh active Pending
-
2022
- 2022-06-13 EP EP22874282.1A patent/EP4357924A1/en active Pending
- 2022-06-13 WO PCT/CN2022/098397 patent/WO2023050885A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009024173A1 (en) * | 2007-08-22 | 2009-02-26 | Verigy (Singapore) Pte. Ltd. | Chip tester, method for providing timing information, test fixture set, apparatus for post-processing propagation delay information, method for post-processing delay information, chip test set up and method for testing devices under test |
CN204256724U (zh) * | 2014-12-13 | 2015-04-08 | 海太半导体(无锡)有限公司 | 一种服务器内存测试设备 |
US20190354308A1 (en) * | 2018-05-15 | 2019-11-21 | Nxp Usa, Inc. | Hardware, Software and Algorithm to Precisely Predict Performance of SOC when a Processor and Other Masters Access Single-Port Memory Simultaneously |
US20200125411A1 (en) * | 2018-10-17 | 2020-04-23 | Oracle International Corporation | Detection, modeling and application of memory bandwith patterns |
CN109634843A (zh) * | 2018-10-31 | 2019-04-16 | 中国科学院软件研究所 | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 |
CN110276096A (zh) * | 2019-05-08 | 2019-09-24 | 北京百度网讯科技有限公司 | 提高深度学习模型预测能力的方法、电子设备和存储介质 |
CN111813626A (zh) * | 2020-07-02 | 2020-10-23 | 国家超级计算天津中心 | 一种高性能计算应用的性能监测系统 |
CN112769642A (zh) * | 2020-12-25 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种服务器pcie链路的测试方法及相关设备 |
CN112883241A (zh) * | 2021-03-19 | 2021-06-01 | 中国人民解放军国防科技大学 | 基于连通分量生成优化的超级计算机基准测试加速方法 |
CN113157509A (zh) * | 2021-04-25 | 2021-07-23 | 中国科学院微电子研究所 | 一种内存安全性检测方法和片上系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4357924A1 (en) | 2024-04-24 |
WO2023050885A1 (zh) | 2023-04-06 |
CN116069603B (zh) | 2023-12-08 |
CN115878437A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915816B2 (en) | System and method of executing neural networks | |
Lym et al. | DeLTA: GPU performance model for deep learning applications with in-depth memory system traffic analysis | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
WO2020253117A1 (zh) | 一种数据处理方法及装置 | |
CN116069603B (zh) | 应用的性能测试方法、建立性能测试模型的方法及装置 | |
CN115860066A (zh) | 一种基于批处理的神经网络推理流水线复用的方法 | |
CN111158901B (zh) | 计算图的优化方法、装置、计算机设备和存储介质 | |
CN114021733B (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
CN113672489B (zh) | 超级计算机的资源性能等级确定方法及设备 | |
CN113485848B (zh) | 深度神经网络部署方法、装置、计算机设备和存储介质 | |
CN116933841A (zh) | 算子融合方法及装置、电子设备、计算机可读介质 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN111582464B (zh) | 神经网络处理方法、计算机系统及存储介质 | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
WO2021061172A1 (en) | System and method of executing neural networks | |
CN110969259A (zh) | 具有数据关联自适应舍入的处理核心 | |
CN115794604B (zh) | 数据生成方法、装置、设备、介质及程序产品 | |
CN111443947B (zh) | 基于众核平台上面向二代测序数据的序列比对方法及系统 | |
Plagge et al. | ATHENA: Enabling Codesign for Next-Generation AI/ML Architectures | |
Chitty | Exploiting tournament selection for efficient parallel genetic programming | |
CN115081628B (zh) | 一种深度学习模型适配度的确定方法及装置 | |
CN110647984B (zh) | 芯片、集成处理设备及其操作方法 | |
Guo et al. | Accelerate convolutional neural network with a customized VLIW DSP | |
KR101887288B1 (ko) | 그래픽 처리 장치에서의 범용 연산처리의 스크래치패드 메모리 최적 컴파일 방법 및 장치 | |
Cárdenas-Montes et al. | Effect of data layout in the evaluation time of non-separable functions on GPU |
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 |