设备中动态数据收集的方法以及相应的设备技术

技术编号:15063580 阅读:114 留言:0更新日期:2017-04-06 12:20
本发明专利技术公开一种设备中动态数据收集的方法以及相应的设备。设备中动态数据收集的方法包括:通过设备硬件收集高级别性能事件的数据,所述高级别性能事件表明造成性能瓶颈的备选原因;基于数据的实时分析,在造成所述性能瓶颈的所述高级别性能事件之间确定第一性能事件;以及重新配置所述设备硬件,以收集在所述第一性能事件之下的较低级别性能事件的额外的数据,以及所述较低级别性能事件表明比所述备选原因更具体的额外的备选原因;所述设备在连续执行所述应用程序的同时,执行所述收集、所述确定和所述重新配置的步骤。本发明专利技术所提供的方法以及设备,能够使能设备以监视和调整其运行时的性能,同时持续不断地执行应用程序。

【技术实现步骤摘要】

本专利技术有关于计算系统,特别是有关于计算系统的运行时数据收集(runtimedatacollection)和性能调整(performancetuning)。
技术介绍
由于现代计算系统的复杂性增加,越来越多的不可预料的性能事件可能在系统中发生,导致性能下降,如当处理器出现利用率或缓存出现低命中率(lowhitrate)时。性能事件是导致性能瓶颈的原因。用户可能会注意到一个应用程序需要较长的时间运行,但可能不容易确定(pin-point)发生了什么事件而导致问题的出现。一些现代的计算系统配备性能计数器,可以配置来衡量性能的各个方面,如内存带宽或处理器的利用率。评估运行时数据,以确定问题的来源。然而,可用的性能计数器的数量,以及存储计数器数据的缓冲区,通常小于可能会出现在计算系统中的可能发生的性能事件。为了监视更多的性能事件,计算系统通常一次收集性能事件的一个子集的数据。性能计数器每次配置为用于性能事件的一个子集,并将应用程序重新启动以收集该子集的数据。轮询策略(round-robinpolicy)可以用来确定收集哪个子集的数据,并多次重新启动应用程序以涵盖所有可能的性能事件。然而,在运行时反复重新启动应用程序是不希望发生的。因此,需要使用改进的工具来检测性能瓶颈,以优化计算系统的运行时性能。
技术实现思路
有鉴于此,本专利技术提供一种设备中动态数据收集的方法以及相应的设备。依据本专利技术一实施方式,提供一种设备中动态数据收集的方法,包括:通过设备硬件收集高级别性能事件的数据,所述高级别性能事件表明造成性能瓶颈的备选原因;基于数据的实时分析,在造成所述性能瓶颈的所述高级别性能事件之间确定第一性能事件;以及重新配置所述设备硬件,以收集在所述第一性能事件之下的较低级别性能事件的额外的数据,以及所述较低级别性能事件表明比所述备选原因更具体的额外的备选原因;所述设备在连续执行所述应用程序的同时,执行所述收集、所述确定和所述重新配置的步骤。依据本专利技术另一实施方式,提供一种用于执行动态数据收集的设备,包括:一个或多个处理器,操作以执行应用程序;设备硬件,操作以收集高级别性能事件的数据,所述高级别性能事件表明在连续执行所述应用程序期间造成性能瓶颈的备选原因;诊断模块,耦接至所述设备硬件,其中所述诊断模块被操作以基于所述数据的实时分析,在连续执行所述应用程序期间,在造成所述性能瓶颈的所述高级别性能事件之间确定第一性能事件;以及重新配置模块,耦接至所述设备硬件,其中所述重新配置模块被操作,以在连续执行所述应用程序期间,重新配置所述设备硬件,以收集所述第一性能事件之下的较低级别性能事件的额外的数据,以及所述较低级别性能事件表明比所述备选原因更具体的额外的备选原因。本专利技术所提供的设备中动态数据收集的方法以及相应的设备,能够使能设备以监视和调整其运行时的性能,同时持续不断地执行应用程序。对于已经阅读后续由各附图及内容所显示的较佳实施方式的本领域的技术人员来说,本专利技术的各目的是明显的。附图说明图1为根据本专利技术一实施例的执行动态数据收集的设备的示意图。图2为根据本专利技术一实施例的性能事件的分层结构的示意图。图3为根据本专利技术一实施例的用于动态数据收集的硬件配置的示意图。图4为根据本专利技术一实施例的用于动态数据收集的软件和硬件结合的示意图。图5为根据本专利技术一实施例的用于动态数据收集的软件层的示意图。图6为根据本专利技术一实施例的动态数据收集方法的流程图。具体实施方式在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一设备耦接于第二设备,则代表所述第一设备可直接电连接于所述第二设备,或通过其他设备或连接手段间接地电连接至所述第二设备。本专利技术的实施例提供了一种方法和系统,该方法和系统能够使能设备以监视和调整其运行时的性能,同时持续不断地执行应用程序,例如,图形应用程序或任何计算应用程序。该方法和系统在运行时执行性能时间的动态数据收集,不需要重新启动应用程序,只要该应用程序的工作负荷保持在大致相同的水平。因为系统可以在运行时进行调整,因此数据收集是动态的,如同数据的收集和分析,性能事件中的哪一个被监视也是动态的。在一实施例中,系统(也可称为设备)收集高级别的性能事件(high-levelperformanceevents)的数据,实时分析数据,并基于分析结果重新配置设备的硬件(例如,性能计数器),以收集较低级别的(lower-level)性能事件的数据。在出现终止条件之前,为了不同级别的性能事件,可重复数据收集、数据分析和硬件重新配置的过程。在一实施例中,性能事件被安排为多层级的层级结构。至于造成性能瓶颈的原因,较低级别的性能事件相对于较高级别的性能事件更具体。例如,用户可能遇到的性能瓶颈表现为低吞吐量或长的响应时间。造成性能瓶颈的原因,在较高层级,可能是计算资源的低利用率。这种“计算资源的低利用率”是高层级的性能事件,表明了一个可能造成性能瓶颈的原因。要诊断低利用率的原因,收集各种计算资源的运行时数据,并对收集的数据进行实时分析。基于分析,可以确定,低利用率是由于停滞的流水线(pipeline)造成的。这种“停滞的流水线”是较低层级的性能事件,表明了造成低利用率的原因,也表明了一个更具体的造成性能瓶颈的原因。如前所述,造成性能瓶颈的可能的原因数目远远大于设备中的性能计数器的数量。当需要对一不同的性能事件有进行针对性的诊断时,性能计数器被重新配置来收集来自计算资源的不同集合或其他性能指标的运行时数据。在一个实施例中,当应用程序继续执行时,只要在执行过程中没有工作负载变化,可以重新配置性能计数器。因此,当工作负载保持不变,应用程序可以连续运行而不被中断,同时不同级别的性能事件的运行时数据被收集和分析。一旦确定了性能瓶颈的具体原因,该设备可以重新配置以调整将被执行的应用程序的性能。在一个实施例中,该设备在运行时进行重新配置,而不中断应用程序的执行。例如,高级别的性能事件可包括,但不限于,计算单元(CU)利用率事件、内存延迟事件、以及类似的事件。较低级别的性能事件的例子可包括,但不限于,计算单元匮乏(starvation)、低缓存命中(cachehits)、资源冲突(conflict)、流水线停滞(stall)、以及类似的事件。计算单元是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、或其他类型的计算引擎中的功能单元。计算单元的例子包括,但不限于,向量处理器(例如,向量着色器(shader),顶点着色器等)、像素处理器(例如,像素着色器、片段着色器等)、计算处理器(例如,计算着色器)和用于特定功能(function)或特性(feature)的固定流水线逻辑(如复制引擎)。为确保当设备收集并分析各级别的性能事件的数据时,该工作负载基本上保持不变,该设备本文档来自技高网...
设备中动态数据收集的方法以及相应的设备

【技术保护点】
一种设备中动态数据收集的方法,所述设备正在执行应用程序,其特征在于,包括:通过设备硬件收集高级别性能事件的数据,所述高级别性能事件表明造成性能瓶颈的备选原因;基于数据的实时分析,在造成所述性能瓶颈的所述高级别性能事件之间确定第一性能事件;以及重新配置所述设备硬件,以收集在所述第一性能事件之下的较低级别性能事件的额外的数据,以及所述较低级别性能事件表明比所述备选原因更具体的额外的备选原因;所述设备在连续执行所述应用程序的同时,执行所述收集、所述确定和所述重新配置的步骤。

【技术特征摘要】
2015.09.24 US 14/864,3571.一种设备中动态数据收集的方法,所述设备正在执行应用程序,其特征在于,包括:通过设备硬件收集高级别性能事件的数据,所述高级别性能事件表明造成性能瓶颈的备选原因;基于数据的实时分析,在造成所述性能瓶颈的所述高级别性能事件之间确定第一性能事件;以及重新配置所述设备硬件,以收集在所述第一性能事件之下的较低级别性能事件的额外的数据,以及所述较低级别性能事件表明比所述备选原因更具体的额外的备选原因;所述设备在连续执行所述应用程序的同时,执行所述收集、所述确定和所述重新配置的步骤。2.如权利要求1所述的设备中动态数据收集的方法,其特征在于,还包括:在所述较低级别性能事件之间确定第二性能事件;以及在所述应用程序的连续执行期间,重新配置一个或多个设备设置,以相对于所述第二性能事件调整所述设备的性能。3.如权利要求1所述的设备中动态数据收集的方法,其特征在于,所述设备硬件包括性能计数器。4.如权利要求1所述的设备中动态数据收集的方法,其特征在于,还包括:在执行所述应用程序时监视多个工作负载变化的指标;以及当一个或多个所述指标表明所述工作负载变化时,重置所述数据的收集和所述应用程序的执行。5.如权利要求4所述的设备中动态数据收集的方法,其特征在于,所述重置所述数据的收集还包括:当一个或多个所述指标显示所述工作负载变化时,重新开始所述数据的收集。6.如权利要求4所述的设备中动态数据收集的方法,其特征在于,所述指标包括顶点计数、像素计数、着色上下文中的至少一个。7.如权利要求1所述的设备中动态数据收集的方法,其特征在于,所述高级别性能事件包括计算单元利用率事件和内存延迟事件。8.如权利要求1所述的设备中动态数据收集的方法,其特征在于,在内核模式下运行的嵌入式软件驱动程序执行所述确定和所述重新配置的步骤。9.如权利要求1所述的设备中动态数据收集的方法,其特征在于,在用户模式下运行的嵌入式软件的后台程序执行所述确定和所述重新配置的步骤。10.如权利要求1所述的设备中动态数据收集的方法,其特征在于,所述收集的步骤还包括:重置所述设备硬件中的性能计数器;配置所述性能计数器,以收集所述高级别性能事件的所述数据至缓冲区内;以及轮询间隔后从所述缓冲区中取回所述数据。11.一种用于执行动态数据收集的设备,其特征在于,包括:一个或多个处理器,操作以执行应用程序;设备...

【专利技术属性】
技术研发人员:萧立亭徐英哲史音·西乌
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1