CN110427268A - 一种加速器的性能影响因素的侦测方法及相关装置 - Google Patents
一种加速器的性能影响因素的侦测方法及相关装置 Download PDFInfo
- Publication number
- CN110427268A CN110427268A CN201910707145.8A CN201910707145A CN110427268A CN 110427268 A CN110427268 A CN 110427268A CN 201910707145 A CN201910707145 A CN 201910707145A CN 110427268 A CN110427268 A CN 110427268A
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- starting
- detecting
- accelerator
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000005540 biological transmission Effects 0.000 claims abstract description 99
- 230000004044 response Effects 0.000 claims abstract description 90
- 238000012360 testing method Methods 0.000 claims abstract description 90
- 238000012546 transfer Methods 0.000 claims abstract description 58
- 230000000694 effects Effects 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 20
- 238000002360 preparation method Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 238000012300 Sequence Analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000005303 weighing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种加速器的性能影响因素的侦测方法,包括:根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。扩大了侦测的面积,提高了侦测结果的准确性。本申请还公开了一种加速器的性能影响因素的侦测装置、计算机设备以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种加速器的性能影响因素的侦测方法、侦测装置、计算机设备以及计算机可读存储介质。
背景技术
目前,在运算量巨大的计算机中,为了应对更高要求的计算速度,对计算机构建了具有更强浮点计算能力的加速器。通过将原来在传统CPU上运行的计算密集型部分卸载到专门为提高计算速度而设计的加速器上,以提高应用的计算速度。而加速器产品更新周期比较短,且各代产品体系架构、底层实现机制不完全相同,对应的编程体系及优化原理也就有差别,为了提高加速器的应用效果,提高加速实现的效果,通常需要探测加速器的底层架构和实现机制,以便提高程序的运行效率,同时提高硬件设备的使用效率。
现有技术中,针对加速器的底层实现机制的探测,主要集中在计算部分,意在充分提高计算速度。但是,对于数据密集型的计算,数据导致的瓶颈是影响加速的最关键的因素,而采用异构加速计算技术时,数据通常需要从计算节点的主存导入(导出)到加速设备的局部存储,因此数据传输的速度将影响供给CPU的数据的速度,进而影响计算的速度;特别的,在加速器尤为擅长计算这一情形下,计算速度通常是有保证的,而数据传输的速度如果供不上计算所能处理的数据的速度,整体的计算速度将显著下降,因此数据传输的优化非常重要。而目前相关的工作中,没有对数据传输进行建模与分析的研究工作。
可见,现有技术中对加速器的侦测方法仅仅是对某一个影响因素单独进行测试,得到的结果也仅仅只包含该因素。而面对复杂系统,针对某些现象进行分析,其影响因素往往较多,并且复杂。现有技术的单一检测,其侦测结果的准确率较低,无法保证侦测结果的可信度。
因此,如何提高侦测结果的准确率是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种加速器的性能影响因素的侦测方法、侦测装置、计算机设备以及计算机可读存储介质,通过先对线程启动过程进行测试,同时测试每个线程中的请求响应,最后对测试数据进行数据整理得到侦测结果,而不是仅仅对单一项目进行单独侦测,扩大了侦测的面积,提高了侦测结果的准确性。
为解决上述技术问题,本申请提供一种加速器的性能影响因素的侦测方法,包括:
根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。
可选的,还包括:
当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;
对该响应时间进行统计,得到数据量统计数据;
将所述数据量统计数据添加至所述传输响应统计数据。
可选的,根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据,还包括:
按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;
根据所述多个线程启动数对所述加速器进行多次线程启动测试,得到所述线程启动时间统计数据。
可选的,根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果,包括:
将所述线程启动时间统计数据和所述传输响应统计数据与所述目标影响因素数据相关的数据进行提取,得到待整理数据;
根据所述待整理数据中所述目标影响因素数据对应的数值大小对所述待整理数据进行排序处理,得到所述侦测结果。
本申请还提供一种加速器的性能影响因素的侦测装置,包括:
启动时间测试模块,用于根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
数据传输测试模块,用于当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
测试数据整理模块,用于根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。
可选的,还包括:
传输数据量测试模块,用于当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;对该响应时间进行统计,得到数据量统计数据;将所述数据量统计数据添加至所述传输响应统计数据。
可选的,所述启动时间测试模块,包括:
线程数量确定单元,用于按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;
测试单元,用于根据所述多个线程启动数对所述加速器进行多次线程启动测试,得到所述线程启动时间统计数据。
可选的,所述测试数据整理模块,包括:
数据筛选单元,用于将所述线程启动时间统计数据和所述传输响应统计数据与所述目标影响因素数据相关的数据进行提取,得到待整理数据;
数据排序单元,用于根据所述待整理数据中所述目标影响因素数据对应的数值大小对所述待整理数据进行排序处理,得到所述侦测结果。
本申请还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的侦测方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的侦测方法的步骤。
本申请所提供的一种加速器的性能影响因素的侦测方法,包括:根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。
通过先对线程启动过程进行测试,同时测试每个线程中的请求响应,最后对测试数据进行数据整理得到侦测结果,而不是仅仅对单一项目进行单独侦测,使得侦测结果中包含多种影响因素,可以根据不同的影响因素得到不同的侦测结果,扩大了侦测的面积,提高了侦测结果的准确性。
本申请还提供一种加速器的性能影响因素的侦测装置、计算机设备以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种加速器的性能影响因素的侦测方法的流程图;
图2为本申请实施例所提供的一种加速器的性能影响因素的侦测装置的结构示意图。
具体实施方式
本申请的核心是提供一种加速器的性能影响因素的侦测方法、侦测装置、计算机设备以及计算机可读存储介质,通过先对线程启动过程进行测试,同时测试每个线程中的请求响应,最后对测试数据进行数据整理得到侦测结果,而不是仅仅对单一项目进行单独侦测,扩大了侦测的面积,提高了侦测结果的准确性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中对加速器的侦测方法仅仅是对某一个影响因素单独进行测试,得到的结果也仅仅只包含该因素。而面对复杂系统,针对某些现象进行分析,其影响因素往往较多,并且复杂。现有技术的单一检测,其侦测结果的准确率较低,无法保证侦测结果的可信度。
因此,本申请提供一种加速器的性能影响因素的侦测方法,通过先对线程启动过程进行测试,同时测试每个线程中的请求响应,最后对测试数据进行数据整理得到侦测结果,而不是仅仅对单一项目进行单独侦测,使得侦测结果中包含多种影响因素,可以根据不同的影响因素得到不同的侦测结果,扩大了侦测的面积,提高了侦测结果的准确性。
请参考图1,图1为本申请实施例所提供的一种加速器的性能影响因素的侦测方法的流程图。
本实施例中,该方法可以包括:
S101,根据加速器的最大线程数对加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
本步骤旨在对加速器中的线程的启动时间进行测试,得到线程启动时间统计数据。其中进行的线程启动测试具体是对加速器进行多次线程启动操作,每次启动操作的线程数量不相同。每次启动操作后得到的启动时间的统计数据也都对应了不同的线程数量。可见,通过该线程启动时间统计数据可以分析出线程数量对线程启动时间的影响。
需要说明的是,如果仅仅对线程启动过程的启动时间进行测试,统计自动过程的用时,那么在线程启动后无需执行其他操作,只要获取到线程启动时的时长,以及性能开销即可。
一般来说,线程启动时间极短,为了获取到更加精确的启动时间可以针对单一线程数量执行多次启动,得到多次启动的时间,求取平均值即可。
进一步的,本步骤中是在最大线程数的范围内多次启动不同数量的线程。具体来说,可以根据最大线程数量确定出每次自动的实际线程数量,可以根据预设间隔确定每次的实际线程数量,也可以根据测试次数确定每次的实际线程数量,还可以提前设定线程数量对照表当每次启动线程时在该表中选择下一个线程数量即可。可见,本步骤中确定线程数量的方式并不唯一,在此不做具体限定。
再进一步的,本步骤中可以按照线程数量从小到大进行测试,也可以按照线程数量从大到小进行测试,还可以按照随机的顺序进行测试。
可选的,本步骤可以包括:按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;根据多个线程启动数对加速器进行多次线程启动测试,得到线程启动时间统计数据。
S102,当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
在S101的基础上,本步骤旨在上一步骤中当每次线程启动测试的所有线程启动时,进行数据传输请求响应测试。
需要注意的是,本步骤中不是每次线程启动测试中只要存在线程启动时就进行数据传输请求响应测试,而是当所有的线程均启动后再进行数据传输请求响应测试。主要是因为,每次线程自动测试中的多个线程启动时长不同,无法做到同一时刻启动。如果对最先启动的线程进行数据传输请求响应测试,势必会影响其他线程的启动过程,并且此时其他线程的自动过程也会影响数据传输请求响应测试的结果,导致测试结果出现不必要的错误。
进一步的,当当前线程启动测试的所有线程启动后,本步骤对当前的所有线程发送多次数据传输请求,并且每次发送的数据传输请求的数量并不相同,最后统计记录每次发送数据传输请求的响应时间,实现对数据传输请求进行测试。也就是得到在该数量的线程情况下的不同请求数量的传输响应统计数据。
随着S101中继续进行不同线程数量的线程启动测试,本步骤中还可以获取到在不同线程数量下的传输响应统计数据。当S101的测试结束时,本步骤就可以获取到大量的传输响应统计数据,其中存在有不同的影响因素,例如线程数量、线程启动时间、请求数量以及请求响应时间,扩大了进行侦测的影响因素范围,可以对该加速器提供进行更加精确的分析。
此外,本实施例中针对不同的测试,只列举了获取到部分的影响因素数据。为了进一步提高侦测结果的范围,增加影响参数的数量。可以在S101的测试过程中获取其他数据,例如启动性能、启动模式、并行/串行等参数。相应的,在S102的测试过程中还可以获取到其他数据,例如请求发送的方式、请求的数据大小等参数。
S103,根据接收到的目标影响因素数据对线程启动时间统计数据和传输响应统计数据进行数据整理,得到侦测结果。
在S102的基础上,本步骤旨在对获取到的线程启动时间统计数据和传输响应统计数据进行分析,得到分析结果,也就是侦测结果。
通过上两个步骤的测试过程,本步骤已经获取到大量关于线程数量、线程启动时间、请求数量以及请求响应时间的测试数据。如果需要分析出关于线程数量的分析结果,就需要将线程数量作为目标影响因素对线程启动时间统计数据和传输响应统计数据进行数据整理,得到对应的侦测结果。可见,还可以将其他因素作为目标影响因素,进行数据整理。如此,就可以获得针对某一因素更清晰的分析结果,当获取到多个因素的分析结果时,就可以对加速器的性能影响因素做全面的分析,保持侦测结果的有效性。
其中,数据整理可以包括:将线程启动时间统计数据和传输响应统计数据与目标影响因素数据相关的数据进行提取,得到待整理数据;根据待整理数据中目标影响因素数据对应的数值大小对待整理数据进行排序处理,得到侦测结果。
此外,本实施例还可以包括:
当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;
对该响应时间进行统计,得到数据量统计数据;
将数据量统计数据添加至传输响应统计数据。
可见,本可选方案是改变不同的数据量进行测试,相当于增加了新的统计因素,扩大了侦测结果的范围。
此外,本实施例中,在S101和S102对线程操作和数据传输请求进行测试的基础上,还可以对实际的数据传输过程进行测试。具体的,可以在S101和S102执行结束后对线程的数据传输进行分析测试,还可以在S102的基础上,当每次发送的所有数据传输请求被响应后,进行数据传输操作,统计数据传输操作完成的情况,得到数据传输统计数据。此外,还可以多次传输不同数据量的数据,以便增加测试的数据量。随着S101和S102的不断进行测试,可以获取到不同线程数量和不同数据传输请求数量情况下的不同数据量的测试数据。
进一步的,还可以对数据传输的过程进行弱可扩展性分析、传输模式与顺序分析以及强可扩展性分析。具体的测试方式可以采用现有技术提供的任意一种测试方法,还可以采用以下实施例提供的测试方法。综上,本实施例通过先对线程启动过程进行测试,同时测试每个线程中的请求响应,最后对测试数据进行数据整理得到侦测结果,而不是仅仅对单一项目进行单独侦测,使得侦测结果中包含多种影响因素,可以根据不同的影响因素得到不同的侦测结果,扩大了侦测的面积,提高了侦测结果的准确性。
以下通过五个实施例,对本申请提供的一种加速器的性能影响因素的侦测方法做进一步说明。
本实施例主要是对上一实施例中不同测试方法进一步进行细节说明,该方法可以包括:
第一实施例:
首先,针对异构众核加速器的线程级的操作,进行深度分析。具体方法包括:
步骤一:启动不同的线程数,统计对应的时间耗费;
步骤二:线程全部启动,增加同步功能,统计各线程同步等待的时间;
步骤三:综合对上述数据进行分析,得到线程启动的时间与启动线程数的关系、线程启动的时间耗费、线程启动的顺序。
其中,启动不同的线程数是根据系统支持的最大启动线程数,启动不同数量的线程,并记录不同线程数对应的启动时间。需要注意的是,线程启动后并不执行任何操作,而只是为了获取系统在线程操作时的开销。而且,一般而言,线程级操作的时间极其短,为了能够准确获取时间,可以增加启动停止线程的次数,直到系统能够准确获取对应的时间。然后分析不同数量的启动线程对应的启动时间,即可分析得到线程是如何启动的。
进一步的,为了深入验证线程启停操作的时间耗费,采用同步机制,验证线程全部启动时的顺序及时间耗费。具体而言,启动所有线程,每个线程都调用启动线程的操作;线程启动之后,不同于上述步骤中的不执行任何操作,而是每个线程都执行一个同步操作,且在同步操作之后紧跟一个计时函数,如此可以获取到每个线程从启动到等待所有线程都启动之后的等待时间。
所有线程的最长的等待时间与上述所有线程都启动的时间是基本一致的。通过对所有线程的等待时间进行分析与可视化展示,可以得到线程启动的顺序;根据线程启动的顺序,对等待的时间进行排序,可以获取到每一个线程启动所需要的时间,以及线程启动是串行还是并行的。
总之,通过上述两个步骤,即可获取到线程是如何启动的(如单个顺序启动、几个成组启动)、启动的时间耗费是多少、启动的顺序是如何;利用线程启动的时间消耗进行量化分析,可以进一步权衡启动不同规模的线程的时间耗费与更多的线程带来的更高的计算力,从而选择合理的线程数量去进行计算,优化特定的应用程序的性能。
第二实施例:
本方法针对主存与异构众核局部存储之间的数据传输,分析其数据传输的请求是如何响应的。具体方法包括:
步骤一:启动不同的线程数,但仅有第一个线程启动数据传输的请求,统计分析第一个线程发起的请求响应时间。
步骤二:启动所有线程,逐步增加有数据传输请求的线程的数量,统计分析第一个线程发起的请求响应时间。
步骤三:启动所有线程,间隔使用线程发起数据传输请求,统计分析第一个线程发起的请求响应时间。
步骤四:将上述三个步骤的数据进行综合分析,得到数据传输请求响应时间的影响因素(传输请求的数量、启动的线程的数量、线程选择的模式),以及线程不完全启动的场景下,如何选择启动的线程能够提高数据传输请求的处理速度。
其中,启动不同数量的线程,但仅有第一个线程启动数据传输的请求。采用与线程操作分析类似的方法,启动不同数量的线程。数据传输请求仅仅由第一个线程启动,统计线程传输函数开始和返回的时间。为了增加统计的准确度,可以发起多个数据传输请求,然后计算平均每个数据传输请求的响应时间。需要注意的是,不可以发起过多的(比如超过几十个)数据传输请求,因为通常内存控制器对数据传输请求的处理有一定的缓存机制,当前步骤的操作主要目的是分析数据传输请求的响应时间与启动的线程数量的关系,而一旦将缓冲区填满,对应的计算时间就不准确。
步骤一验证了数据传输请求响应时间与启动线程数的关系,步骤二则主要分析请求响应时间与请求的数量的关系,因此所有的线程都同时启动,但是启动数据传输请求的线程数逐步增多,直到所有线程都启动数据传输。需要注意的是,所有线程启动数据传输请求的数量、传输的数据量都是一致的。
步骤三则是不同数量的线程有数据传输请求,那么线程的选择可以是不同的。上一步是采用顺序模式,即假如4个线程有数据传输请求,那么对应的线程的ID号分别为0、1、2、3。而本步则采用间隔的方式选择启动数据传输请求的线程ID。同样的,如果还是启动4个线程,那么对应的线程号为:0、16、32、48(假设总的可用线程数为64,即以16为间隔使用线程)。该模式与上一步的测试模式完全一致,除了线程选择的机制不同。因此,可以利用这两种模式的差异,分析数据传输请求的缓存与响应机制。
最后,针对上述三个步骤的数据传输请求的响应时间进行综合分析,可以得到数据传输请求响应时间的影响因素(传输请求的数量、启动的线程的数量、连续或间隔选择线程),以及线程不完全启动的场景下,如何选择启动的线程能够提高数据传输请求的处理速度。
第三实施例:
在第一实施例的基础上,可以对数据传输请求的响应时间与数据传输量的关系进行分析。分析过程可以包括:
步骤一:启动所有线程,逐步增大数据传输的量,统计所有线程的传输请求响应时间;
步骤二:分析响应时间的变化曲线,特别是响应时间趋势有明显变化的位置,推断数据传输请求的响应机制、缓存方法、缓存容量等参数。
可见,本部分则增加数据传输的数据量。具体而言,每次数据传输的数据量逐步增大,最大为局部存储所能接收的最大数据量,并且同时启动多个数据传输。需要注意的是,实际的应用程序编写过程中,这样的方法是没有意义的,因为多个数据传输总量超过了局部存储的容量,数据未被使用即被覆盖。但为了测试到数据传输请求的响应时间与数据量的关系,可以采用这种极致的测试思路。此外,还需要一定的方法,确保数据传输(虽然没有意义)真正被执行了,也就是数据真正被传输,而不是被优化掉,具体方法可以通过调整编译优化选项等来保证。
通常而言,数据传输请求的响应时间与数据量是没有关系的,因为这只是内存控制器的一个具体的操作。但是根据现有的知识,普通CPU的内存控制器响应的数据传输请求通常由对应的数据通道进行传输,且采用一定的缓存机制。一旦请求缓存填满,则数据传输请求无法被处理,只能等待缓存中请求对应的数据完全传输完毕。因此,通过上述逐步增加数据传输量的方法,可以侦测数据传输请求的响应时间与传输量的关系,指导应用程序优化时,一方面确保请求的数量少于填满缓冲区的数量,另外一方面合理权衡单次数据传输的数据量。
第四实施例:
在第三实施例的基础上,本实施例主要是对数据传输请求响应的顺序与机制进行分析。具体的,可以包括:
步骤一:所有线程都启动同样数量的数据传输请求,且数据量相同;
步骤二:对响应时间进行排序,得到响应顺序以及响应的时间间隔;
步骤三:根据响应顺序,分析响应规则;
步骤四:综合分析缓冲区的全局与局部设置机制。
数据传输请求的响应也是有时间顺序的,因此需要在第三实施例的基础上,设计一个方法,所有线程都同时启动若干数据传输(用一个同步去保证同时启动),然后打印这些请求被响应的时间,并对这些时间进行排序,得到请求的响应顺序以及请求的时间间隔。根据请求的时间间隔的变化以及变化所在的位置即当前响应的请求的数量,可以预估缓冲区的大小;根据请求响应的顺序与相邻前后两个响应的跳转,可以进一步分析,得到请求缓冲区的设置(比如所有线程共享一个全局缓冲区,还是局部的线程共享局部的缓冲区,抑或全局+局部的混合缓冲机制)机制,以及请求响应的跳转规则。根据上述方法得到的缓冲区的大小以及机制,可以指导后续在应用优化时,根据数据传输的量合理配置请求的数量,根据缓冲区的共享机制合理分配发起数据传输请求的线程ID以充分利用数据传输请求缓冲区。
第五实施例:
最后,本实施例针对主存与异构众核局部存储之间的数据传输,分析其数据是如何进行传输的。具体步骤包括:
步骤一:弱可扩展性(Weak Scaling)分析,包括顺序模式与交替模式,分析数据传输的并行性;
步骤二:传输模式与顺序分析,进行大数据量数据传输并排序,确定数据传输的模式(串行或并行)并确定并行度;
步骤三:强可扩展性(Strong Scaling)分析,以顺序和交替模式选取不同数量的线程,分析传输的时间,验证数据传输的并行度。
其中,步骤一是在每个线程启动同样多的数据传输请求,对应的数据传输量也完全一致。请求数量的选择、传输数据量的选择都参照前面步骤的测试结果。然后逐步增加线程的数量,测试所有线程都完成所有的数据传输的时间。
此外,鉴于不同的线程数量有不同的选择方法,因此增加线程的选择模式,选择交替模式,测试交替模式下不同线程数量时的数据传输时间。
对上述两组数据进行比对分析,可以得到数据传输过程中的并行性。如果数据传输通道有多个,那么交替模式可以充分利用所有数据传输通道,数据传输时间比相同数量的顺序选择的模式要少,且其传输时间应该是接近于线性的;否则,若两组数据传输时间基本一致,则表明仅有一个数据传输通道,数据传输是串行的。
进一步的,根据步骤一的测试与分析结果,可以确定数据传输的模式为并行或串行。如果是并行,则需要明确数据的分组共享情形,因此需要选取不同数量的线程为一组,进行局部的弱可扩展性测试,最终直到所有的分组的测试数据基本重叠,意味着并行度可以确定,即数据传输通道的数量可以确定。
进一步的,尽可能增大数据传输量,然后把每个线程的数据传输请求设置为1,然后对所有的数据传输请求完成的时间进行排序,并进行分析。如果数据传输是并行的,那么在一定的时间周期内,完成的数据传输的数量必然等于上述分析得到的数据传输通道的数量。因此,可以验证数据传输的并行度。
最后,强可扩展性分析即设定一个较大的数据量(比如若干GB),然后采用不同数量的线程进行数据传输,统计所有数据完成传输的时间。同样的,选取线程时,仍然采用顺序模式和交替模式两种。如果数据传输是并行的,那么交替模式具有较高的效率。而且,采用交替模式时,只要选取的线程数量大于并行度且成倍增加线程数量(保证传输的负载均衡),数据传输的时间应该基本维持不变。因此,该步骤进一步验证了数据传输的并行度。
通过以上所有实施例能够侦测加速器的线程启动机制与时间开销,侦测主存与加速器局部存储之间数据传输请求的响应与缓冲机制,侦测实际的数据传输方法,特别是侦测数据传输的并行度。根据本发明的方法,可以侦测大部分异构加速器的底层实现机制,帮助程序员更好地了解底层架构,从而指导其在具体代码移植过程中,尽可能采用优化的编程方法,减少代码优化的时间精力耗费,减少各种方法的尝试与比对,提高应用程序在加速器上运行的效率,提高计算资源的使用效率,降低系统的电力消耗。
下面对本申请实施例提供的一种加速器的性能影响因素的侦测装置进行介绍,下文描述的一种加速器的性能影响因素的侦测装置与上文描述的一种加速器的性能影响因素的侦测方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种加速器的性能影响因素的侦测装置的结构示意图。
本实施例中,该方法可以包括:
启动时间测试模块100,用于根据加速器的最大线程数对加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
数据传输测试模块200,用于当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
测试数据整理模块300,用于根据接收到的目标影响因素数据对线程启动时间统计数据和传输响应统计数据进行数据整理,得到侦测结果。
可选的,该装置还可以包括:
传输数据量测试模块,用于当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;对该响应时间进行统计,得到数据量统计数据;将数据量统计数据添加至传输响应统计数据。
可选的,该启动时间测试模块100,可以包括:
线程数量确定单元,用于按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;
测试单元,用于根据多个线程启动数对加速器进行多次线程启动测试,得到线程启动时间统计数据。
可选的,该测试数据整理模块300,可以包括:
数据筛选单元,用于将线程启动时间统计数据和传输响应统计数据与目标影响因素数据相关的数据进行提取,得到待整理数据;
数据排序单元,用于根据待整理数据中目标影响因素数据对应的数值大小对待整理数据进行排序处理,得到侦测结果。
本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的侦测方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的侦测方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种加速器的性能影响因素的侦测方法、侦测装置、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种加速器的性能影响因素的侦测方法,其特征在于,包括:
根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。
2.根据权利要求1所述的侦测方法,其特征在于,还包括:
当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;
对该响应时间进行统计,得到数据量统计数据;
将所述数据量统计数据添加至所述传输响应统计数据。
3.根据权利要求1或2所述的侦测方法,其特征在于,根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据,还包括:
按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;
根据所述多个线程启动数对所述加速器进行多次线程启动测试,得到所述线程启动时间统计数据。
4.根据权利要求3所述的侦测方法,其特征在于,根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果,包括:
将所述线程启动时间统计数据和所述传输响应统计数据与所述目标影响因素数据相关的数据进行提取,得到待整理数据;
根据所述待整理数据中所述目标影响因素数据对应的数值大小对所述待整理数据进行排序处理,得到所述侦测结果。
5.一种加速器的性能影响因素的侦测装置,其特征在于,包括:
启动时间测试模块,用于根据加速器的最大线程数对所述加速器进行多次不同线程数量的线程启动测试,得到线程启动时间统计数据;
数据传输测试模块,用于当每次线程启动测试的所有线程启动时,对已启动的线程多次发送不同数量的数据传输请求,对每个数据传输请求的响应时间进行统计得到传输响应统计数据;
测试数据整理模块,用于根据接收到的目标影响因素数据对所述线程启动时间统计数据和所述传输响应统计数据进行数据整理,得到侦测结果。
6.根据权利要求5所述的侦测装置,其特征在于,还包括:
传输数据量测试模块,用于当对已启动的线程发送的数据传输请求被响应时,向该线程多次发送不同数据量的数据;对该响应时间进行统计,得到数据量统计数据;将所述数据量统计数据添加至所述传输响应统计数据。
7.根据权利要求5或6所述的侦测装置,其特征在于,所述启动时间测试模块,包括:
线程数量确定单元,用于按照预设间隔数量从一个线程到最大线程数确定多个线程启动数;
测试单元,用于根据所述多个线程启动数对所述加速器进行多次线程启动测试,得到所述线程启动时间统计数据。
8.根据权利要求7所述的侦测装置,其特征在于,所述测试数据整理模块,包括:
数据筛选单元,用于将所述线程启动时间统计数据和所述传输响应统计数据与所述目标影响因素数据相关的数据进行提取,得到待整理数据;
数据排序单元,用于根据所述待整理数据中所述目标影响因素数据对应的数值大小对所述待整理数据进行排序处理,得到所述侦测结果。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的侦测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的侦测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910707145.8A CN110427268A (zh) | 2019-08-01 | 2019-08-01 | 一种加速器的性能影响因素的侦测方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910707145.8A CN110427268A (zh) | 2019-08-01 | 2019-08-01 | 一种加速器的性能影响因素的侦测方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110427268A true CN110427268A (zh) | 2019-11-08 |
Family
ID=68412049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910707145.8A Pending CN110427268A (zh) | 2019-08-01 | 2019-08-01 | 一种加速器的性能影响因素的侦测方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427268A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459544A (zh) * | 2020-03-03 | 2020-07-28 | 北京和利时系统工程有限公司 | 安全计算机板卡中多对线程数据表决方法、介质和装置 |
CN112559269A (zh) * | 2020-12-21 | 2021-03-26 | 北京安兔兔科技有限公司 | 一种处理器性能测试方法及装置 |
CN113778824A (zh) * | 2021-08-23 | 2021-12-10 | 深圳市联影高端医疗装备创新研究院 | 操作系统实时性检测方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136791A (zh) * | 2006-11-16 | 2008-03-05 | 中兴通讯股份有限公司 | 一种基于文件传输协议的网络吞吐量测试方法 |
CN103559113A (zh) * | 2013-11-06 | 2014-02-05 | 北京安兔兔科技有限公司 | 系统运算性能测试方法及装置 |
CN104092583A (zh) * | 2014-07-14 | 2014-10-08 | 杭州东信北邮信息技术有限公司 | 一种智能路由器自动化测试方法和系统 |
US20160357644A1 (en) * | 2012-06-25 | 2016-12-08 | Storone Ltd. | System and method for datacenters disaster recovery |
CN109783334A (zh) * | 2018-12-14 | 2019-05-21 | 平安普惠企业管理有限公司 | 压力测试报告生成方法、装置、计算机设备和存储介质 |
-
2019
- 2019-08-01 CN CN201910707145.8A patent/CN110427268A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136791A (zh) * | 2006-11-16 | 2008-03-05 | 中兴通讯股份有限公司 | 一种基于文件传输协议的网络吞吐量测试方法 |
US20160357644A1 (en) * | 2012-06-25 | 2016-12-08 | Storone Ltd. | System and method for datacenters disaster recovery |
CN103559113A (zh) * | 2013-11-06 | 2014-02-05 | 北京安兔兔科技有限公司 | 系统运算性能测试方法及装置 |
CN104092583A (zh) * | 2014-07-14 | 2014-10-08 | 杭州东信北邮信息技术有限公司 | 一种智能路由器自动化测试方法和系统 |
CN109783334A (zh) * | 2018-12-14 | 2019-05-21 | 平安普惠企业管理有限公司 | 压力测试报告生成方法、装置、计算机设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459544A (zh) * | 2020-03-03 | 2020-07-28 | 北京和利时系统工程有限公司 | 安全计算机板卡中多对线程数据表决方法、介质和装置 |
CN112559269A (zh) * | 2020-12-21 | 2021-03-26 | 北京安兔兔科技有限公司 | 一种处理器性能测试方法及装置 |
CN113778824A (zh) * | 2021-08-23 | 2021-12-10 | 深圳市联影高端医疗装备创新研究院 | 操作系统实时性检测方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427268A (zh) | 一种加速器的性能影响因素的侦测方法及相关装置 | |
CN110297701A (zh) | 数据处理作业调度方法、装置、计算机设备及存储介质 | |
TWI428767B (zh) | 最佳化配置系統參數集之方法,程式及裝置 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
Duggan et al. | Contender: A Resource Modeling Approach for Concurrent Query Performance Prediction. | |
CN104573000B (zh) | 基于排序学习的自动问答装置及方法 | |
EP3416065B1 (en) | Query method and query device | |
WO2017161646A1 (zh) | 大数据量预测的三层联合动态选择最优模型方法 | |
CN102098101B (zh) | 波峰寻找方法及系统 | |
CN104252406B (zh) | 数据处理的方法及装置 | |
Ortiz et al. | {SLAOrchestrator}: Reducing the Cost of Performance {SLAs} for Cloud Data Analytics | |
CN106383746A (zh) | 大数据处理系统的配置参数确定方法和装置 | |
CN105022693B (zh) | 一种应用程序的性能测试方法及装置 | |
GB2611727A (en) | Automated feedback and continuous learning for query optimization | |
Tramm et al. | ARRC: A random ray neutron transport code for nuclear reactor simulation | |
CN101604287A (zh) | 一种基于硬件计数器获取性能数据实现动态优化服务器性能的方法 | |
CN107015900A (zh) | 一种视频网站的服务性能预测方法 | |
CN109558248A (zh) | 一种用于确定面向海洋模式计算的资源分配参数的方法及系统 | |
CN108198124A (zh) | 医学图像处理方法、装置、计算机设备和存储介质 | |
CN109212999B (zh) | 数字卫星仿真工况的智能生成方法及系统 | |
CN101561766A (zh) | 一种支持多核帮助线程的低开销的块同步方法 | |
Li et al. | An experimental study on deep learning based on different hardware configurations | |
Kassing et al. | Resource allocation in serverless query processing | |
CN110191015A (zh) | 基于cpi指标的云服务性能智能预测方法和装置 | |
CN106326005A (zh) | 一种迭代型MapReduce作业的参数自动调优方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191108 |
|
RJ01 | Rejection of invention patent application after publication |