首页> 中国专利> 将计数值分配给在多核处理器上执行的任务

将计数值分配给在多核处理器上执行的任务

摘要

一种技术包括:在基于处理器的机器中,提供表示由处理核的硬件计数器在多个任务在该核上活动的时间段期间所获取的计数值的数据;确定在该时间段期间计数值可归因于任务中的给定任务的可能性,并至少部分地基于所确定的可能性将计数值的一部分归因于给定任务。

著录项

  • 公开/公告号CN102110024A

    专利类型发明专利

  • 公开/公告日2011-06-29

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201010619567.9

  • 发明设计人 C·J·科迈克;N·杜卡;

    申请日2010-12-22

  • 分类号G06F9/50;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人毛力

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 02:43:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-09

    未缴年费专利权终止 IPC(主分类):G06F9/50 授权公告日:20130619 终止日期:20161222 申请日:20101222

    专利权的终止

  • 2013-06-19

    授权

    授权

  • 2011-08-10

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20101222

    实质审查的生效

  • 2011-06-29

    公开

    公开

说明书

背景技术

典型的现代计算机系统可包括多核处理器,多核处理器包括执行多个线程的一个或多个处理核。相对复杂的软件堆栈可在多核处理器上运行,且因此,诸如绘图调用的给定软件功能可不在处理核集合上串行地执行,而是替代地,该功能通常被分成多个任务,这多个任务在处理核上的多个线程上执行。此外,特定任务何时执行通常本质上不是确定的,因为任何单任务理论上可以被调度程序预清空、从执行中流去除、并稍后重新调度到另一线程和/或核上。

在存在这些复杂性的情况下,分析程序确定诸如高速缓存未命中、执行失速等等的哪些监测性能度量可归因于特定任务、任务组或软件函数是困难的。

附图说明

图1示出根据本发明的实施例的计算机系统的示意图。

图2是描述根据本发明的实施例将计数值分配给在多核处理器上执行的任务的技术的流程图。

图3是根据本发明的实施例在多核处理器上执行的时间交迭任务的图示。

图4是描述根据本发明的实施例根据执行任务的处理核对所选任务进行分类的技术的流程图。

图5A和5B是描述根据本发明的实施例将计数值分配给在处理核上执行的所选任务的技术的流程图。

具体实施方式

参照图1,根据本发明的实施例,多核机器或系统10具有多核图形处理器30,该多核图形处理器30具有多个处理核34。对于此示例,每个处理核34具有用于测量特定性能度量的硬件计数器36(每个核34一个计数器36,如图1所描绘)。例如,给定处理核34可包括用于对高速缓存未命中计数的硬件计数器36、用于对执行失速次数计数的计数器36、用于保持表明执行利用率的计数的计数器36等。应注意,多核图形处理器30仅仅是多核处理器的示例,因为本文所描述的多核处理器可以是除图形处理器之外的多核处理器,诸如作为非限制性示例的单指令多数据(SIMD)多核处理器或系统10的主系统处理器14。

在本文中假定处理核34执行任务,其中任务是用于调度和执行的任何常见工作单元。一般而言,任务可以是代码的的具有开头和结束的任何一部分,且任务的持续时间可被定义为用于执行该任务的多个处理器周期。给定的较高级软件函数(例如图形处理情况下的绘图调用)可调用跨多个处理核34上的许多线程执行的若干任务。

硬件计数器36是核专属的,因此处理核34不具有每线程硬件计数器。替代地,硬件计数器36由在处理核34上运行的各个任务无区分地取样。硬件计数器36与任务之间对应性的缺少可能在确定计数值的哪些部分归因于给定任务时引入问题。例如,特定硬件计数器36可对整个处理核34的高速缓存未命中计数。虽然在处理核34上执行的给定任务可在任务开始和结束时对硬件计数器36取样,但从这些样本中得出的计数值(即计数变化量)不一定表明可归因于该给定任务的高速缓存未命中,因为许多其他交迭的任务在给定任务活动的时间区间期间也会引起高速缓存未命中。

根据本文中所描述的本发明的实施例,系统10执行用于在给定时间周期期间执行的任务之间分配计数值的技术。为简化以下讨论,假定硬件计数器36是高速缓存未命中计数器,其在每次特定高速缓存未命中在核34中发生时由处理核34加1。根据本发明的其他实施例,本文所描述的技术可适用于分配与除高速缓存未命中之外的其他度量相关联的计数值。

参照图2并结合图1,根据本发明的一些实施例,系统10执行技术100,以将计数值的一部分归因于在处理核34上执行的给定任务。该技术100包括在其中多个任务在处理核34上活动的时间段期间提供表示计数值的计数器数据(框104)。该技术100包括确定该计数值可归因于该时间段期间的任务中的给定任务的可能性(框108),并按照框112至少部分地基于所确定的可能性将计数值的一部分归因于给定任务。

参照图1,根据本发明的一些实施例,一般而言,图形处理器30执行用于在显示器40上生成图像的任务,诸如图1所描述的示例性描绘的图形用户界面(GUI)44。GUI 44显示在图形处理器30上执行的任务,并允许用户选择一个或多个任务以进行分析。作为更具体的示例,根据本发明的一些实施例,GUI 44可允许用户使特定的软件函数(绘图调用,作为非限制性示例)突出显示,以选择该函数来进行与该调用相关联的性能度量的分析。所选函数可涉及在图形处理器30上执行的多个任务、可涉及在不同线程上执行的多个任务、且可涉及在不同处理核34上执行的任务。

通过突出显示并选择给定软件函数,用户可从由系统10提供的分析中获益,且该分析可用于评估对程序代码的改变是否改变了某些性能度量的这些目的。例如,性能分析可揭示对程序的改变增加或减少了高速缓存未命中次数。可构想该分析的其他和/或不同用途,且也在所附权利要求的范围内。

根据本发明的一些实施例,GUI 44可通过在一个或多个处理核34上执行的分析程序的执行来驱动。在本发明的其他实施例中,分析程序可以是在系统10的主系统处理器14上执行的软件的结果。主处理器14可包括执行诸如分析程序的应用程序的一个或多个微处理器和/或微处理器核。根据本发明的一些实施例,相应的程序代码可被存储在系统存储器18中。以此方式,系统存储器18可存储表示由处理器14执行的一个或多个应用程序20的数据。应用程序20中的一个可以是例如分析程序,该分析程序在由处理器14执行时使处理器14执行图2的技术100的一个或多个部分。在该分析中,存储器18可存储一个或多个初始、中间或最终数据集22,例如,这些数据集可表示软件函数或用户的任务选择、由在图形处理器30上执行的任务所取样的取样计数器值、可归因于特定任务的计数值、与对这些任务确定的计数值相关联的错误等。

系统10可包括用于从诸如鼠标或键盘的输入设备接收可用于选择待分析任务的I/O数据的输入/输出(I/O)接口50,以及其他部件。系统10可包括用于与网络通信的网络接口卡(NIC)。

注意,在图1中描述的体系结构仅仅是可用于实现本文中所公开的计数值分配技术的多核系统的示例。例如,在本发明的其他实施例中,经由主处理器14上的处理得到的计数值可被分配给在处理器14上活动的任务。此外,根据本发明的其他实施例,系统10可具有未在图1中描绘的多个其他部件,诸如附加的图形处理器、桥、外围设备和其他部件。

根据本发明的一些实施例,图3描绘示出系统10(图1)如何将计数值分配给特定任务的示例。参照图3并结合图1,对于本示例,假定多个任务(具体是任务1201、1202、1203以及1204,作为示例)在交迭的时间区间中活动。本示例的目标是确定可归因于任务1204的执行的计数器变化值。如根据图3可见,任务1201、1202以及1203分别在线程T0、T1以及T2上执行,并与在线程T4上执行的任务1204至少部分地交迭。本示例特别感兴趣的时间是任务1204活动期间的从时刻t2到时刻t5的时间。虽然任务1204在时刻t2和t5分别取样开始和结束计数器值以得到计数值,但该计数值并不直接表明仅可归因于任务1204的计数值。

为了将计数值的变化归因于任务1204,系统10将从时刻t2到时刻t5的时间区间分成“时间片(time slice)”。在该背景下,“时间片”是活动任务120的数量不变的时间单元。利用该准则,图3中所描述的示例因此描述了用于将计数值分配给任务1204的三个相关时间片:从时刻t2到时刻t3的第一时间片,其中所有四个任务1201、1202、1203以及1204活动;从时刻t3到时刻t4的第二时间片,其中任务1202、1203以及1204活动;以及从时刻t4到时刻t5的第三时间片,其中任务1203和1204活动。

根据本发明的一些实施例,在理想情况下,每个任务120在任务120的开始和结束时对硬件计数器34取样。因此,对于图3中描述的四个任务1201、1202、1203和1204,,硬件计数器34相应地被取样八次。例如,根据本发明的一些实施例,作为非限制性示例,可将表示取样计数器值的数据存储在图形处理器30上,和/或传递至存储器18,其中所存储的值被存储为数据集22。

每个时间片与特定计数值相关联。例如,从时刻t2到时刻t3的时间片与根据在时刻t3所取样的计数器值减去在时刻t2指示的取样计数器值得到的计数值相关联。对于每个时间片,系统10根据所确定的任务1204在该时间片期间改变计数值的可能性将相关联的计数值分配给任务1204。因此,对于从时刻t0到时刻t1的时间片,归因于任务1204的计数值部分为0;类似地,对于从时刻t1到时刻t2的时间片,归因于任务1204的计数值部分为零,因为任务1204在这些时间片期间不活动。然而,对于图3中所描述的剩余时间片,任务1204是活动的,因此系统10将计数值的一部分归因于任务1204

在系统10为任务1204的每个时间片确定分配计数值之后,系统10对分配计数值进行求和,以推导出从时刻t2的任务开始到时刻t5的任务结束的任务1204的分配计数值。

作为更具体的示例,对于从时刻t2到时刻t3的时间片,任务1204与任务1201、1202以及1203并发地活动。作为非限制性示例,系统10将此时间片期间的任务1204的可能性评估为计数值的四分之一,因为四个任务都是活动的。因此,例如,如果计数器在时刻t2到时刻t3的时间片期间变化100次,则对于该时间片而言,四分之一即25次的计数器变化归因于任务1204。在从时刻t3到时刻t4的时间片期间,任务1204与另两个任务1202和1203一起活动;且因此,在此时间片期间,关联计数值的三分之一归因于任务1204。类似地,在从时刻t4到时刻t5的时间片期间,任务1204与任务1203一起活动;且因此在该时间片期间,系统10将计数值的一半归因于任务1204

上述的基于活动的任务数量对计数值进行按比例分配是用于分配计数值的许多不同的可能方法的一个示例。例如,根据本发明的其他实施例,计数值分配可基于加权方案。例如,计算更密集的任务120可分配到更大权重,且因此相比于计算较不密集的任务,任务120可分配到不成比例的更大计数值。因此,可构想许多变型,且这些变型在所附权利要求的范围内。

参照图4并结合图1,根据本发明的一些实施例,系统10执行用于标识要在特定处理核34上进行分析的任务的技术150。按照该技术150,系统10接收指示所选任务的用户输入(框154)。因此,作为示例,用户可使用例如鼠标经由GUI 44突出显示并选择特定调用(绘图调用,作为非限制性示例)。响应于所选任务,按照框158,系统10确定与所选任务在时间上交迭的所有任务(框158)。在该确定之后,按照框162,系统10根据处理器核34对经分析任务分类(框162)。

参照图5A和5B并结合图1,在系统10确定要在每个处理核34上分析的任务之后,根据本发明的一些实施例,系统10对每个处理核34执行技术200。

按照技术200,系统10在每个处理核34上如下地处理每个所选任务。首先,系统10标识下一可用任务的时间片(框204),并取回每个任务的开始和结束时间的取样计数值(框208)。如果样本不可用,则系统10可内插开始和/或结束时间。以此方式,系统10确定是否需要内插样本(菱形212),且如果需要则按照框214执行内插。

根据本发明的一些实施例,系统10如下地执行取样内插。系统10找出在要内插样本的时刻的任一侧的最接近的取样计数器值。基于样本可用的两个时刻之间的该时刻的位置,系统10调整取样值之差以得出该内插值。根据本发明的一些实施例,这可以是线性内插。作为非限制性示例,样本值对于处理器周期计数100和200可用,且这些值可分别具有300和360的值。该样本将被内插的时刻可以是处理器周期计数120。因此,对于该情形,内插样本可以是312。

仍参照图1、5A和5B,在可能的一个或多个样本值内插之后,控制继续至菱形218,其中系统10确定特定任务是否未命中开始或结束时间戳。如果是这样,则按照框222,系统10通过找出另一任务的最接近的开始或结束时间来创建相应的时间戳。

在如上所述地预处理数据之后,系统10按照技术200继续根据任务的时间片为所分析任务的每个时间片分配计数值。以此方式,按照框226,系统10确定每个时间片的计数值,并针对每个时间片确定计数值由该任务引起的可能性(框230)。接着,系统10基于所确定的可能性分配每个时间片的计数值(框234),然后按照框238将所分析任务的所有时间片的分配计数值加到一起,以得到整个任务的分配计数值。

最后,系统10按照技术200输出该任务的分配计数值以及指示所确定的计数值中的错误的值(框242)。作为非限制性示例,该错误可利用每个时间片以及分配值来进行计算。例如,如果对于特定时间片,由于在该时间片中存在并发活动的其他两个任务,所分配的计数值是该时间片的总时间变化的33%,因此所报告的错误将会是余下分配计数值的百分比,或67%。注意,错误随着并发活动任务数量的增加而减少。因此,对于相当大数量的活动任务,诸如数千个任务,错误相对较小。

最后,按照技术200,按照菱形246,系统10确定是否要分析该处理核的另一任务。如果是这样,则控制返回到框154(图5A)。

虽然已经关于有限个实施例描述了本发明,但受益于本公开内容的本领域技术人员将会理解从中得出的多种修改和变型。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修改和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号