基于插装标签的核间协同多线程pmu事件监测方法

文档序号:9667247阅读:236来源:国知局
基于插装标签的核间协同多线程pmu事件监测方法
【技术领域】
[0001]本发明涉及计算机技术领域,更具体地说,本发明涉及一种基于插装标签的核间协同多线程PMU事件监测方法。
【背景技术】
[0002]硬件体系结构的设计者为了评测他们的结构设计,在处理上植入了很多硬件性能计数器,这种做法也为利用硬件支持来分析程序的性能影响因素提供了可能。随着处理器设计的不断改进和性能的不断提升,现代处理器大都集成了一类特殊的硬件性能监测单元,即PMU(performance monitoring unit,称为“性能监视单元”或“硬件性能计数器”),来收集处理器中的性能事件。
[0003]例如,如果发生一次指令Cache(高速缓存)脱靶事件,则PMU的相应寄存器通过加一来记录这一事件。借助PMU的监测功能,能够揭示处理器中发生的实际性能事件,通过对这些性能事件的统计和分析,程序员可以了解到不同的程序编码方式会产生怎样的底层硬件行为。同时,根据这些行为,能够进一步分析是什么硬件事件影响了程序的性能,从而指导程序员进行算法层面的程序改进,并且提示编译器进行代码优化,进而帮助操作系统实现更高效的资源管理。
[0004]在实际开发过程中,系统的很多优化策略都用到了PMU监测数据。借助PMU的性能监测功能,系统可以为用户提供比较全面的底层运行时信息。在效果方面,由于PMU的监测数据可以真实反映程序在特定硬件平台上的实际运行效果,因此利用PMU机制优化程序性能有很多天然的优势。
[0005]随着众核处理器逐渐成为高性能计算的主要设备,如何发挥出众核处理器的硬件潜力,性能监测技术起着越来越重要的作用。以龙芯3A平台为例,现有技术利用性能计数器实现了一款单进程采样的性能分析工具Tprofiler,其实现分为两个模块:前端和后端。其中前端运行于用户层,负责分析后端收集的性能信息,指导程序员优化代码;后端运行于内核层,负责控制性能计数器,收集程序运行过程中产生的硬件事件信息。
[0006]然而,上述现有的在众核处理器上的协同性能监测技术,有以下问题:首先,因为各自监测,数据分布,协同时需要复杂的通信;其次,每个监测点存在一定的开销,大量线程同时监测存在一定的开销。
[0007]具体地,一般而言,传统的针对单核、多核处理器的性能监测往往是各个处理器核自行利用各个处理器核的PMU进行单独性能监测,这就只能反映某个处理器核的性能使用效率,并不能反映整个处理器的性能使用状况,为了综合反映整个处理器的性能,需要某种片上数据交互机制将这些监测数据进行信息聚合,形成整体统一的性能监测效果,达到真实有效地反映处理器的整体性能使用效率。

【发明内容】

[0008]本发明所要解决的技术问题是针对现有技术中存在上述缺陷,针对一种异构众核处理器,提供一种具有低开销而且轻量级的多线程协同性能监测技术。
[0009]为了实现上述技术目的,根据本发明,提供了一种基于插装标签的核间协同多线程PMU事件监测方法,所述核间协同多线程PMU事件监测方法用于异构众核处理器,异构众核处理器包括用于执行计算操作的运算核心和用于执行控制和服务操作的运算控制核心。
[0010]所述核间协同多线程PMU事件监测方法包括:运算控制核心设置各个运算核心上运行的线程所关心的性能事件;初始化各个运算核心上运行的线程的PMU;在各个运算核心上运行的线程上插装标签;运算控制核心在后台透明地收集各个运算核心上运行的线程上的插装标签所实时返回的数据;运算控制核心集中整理分析返回的数据以执行性能监测。
[0011]优选地,所述基于插装标签的核间协同多线程PMU事件监测方法还包括:根据数据分析结果形成性能计数事件记录。
[0012]优选地,所述标签被插装在每个线程的预定位置。
[0013]优选地,所述插装的标签用于登记性能计数事件的配置信息。
[0014]优选地,所述插装的标签还用于感知运算核心程序的执行轨迹。
[0015]本发明提供了一种基于插装标签的核间协同多线程PMU事件监测方法,其能够在一种异构众核处理器上,利用PMU监测数据,准确而又高效地实现整个芯片的程序性能监测。
【附图说明】
[0016]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0017]图1示意性地示出了根据本发明优选实施例的基于插装标签的核间协同多线程PMU事件监测方法的示意图。
[0018]图2示意性地示出了根据本发明优选实施例的基于插装标签的核间协同多线程PMU事件监测方法的流程图。
[0019]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0020]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0021]异构众核处理器一般指芯片上存在具有两种不同功能的处理器核,一种处理器核专注计算,逻辑设计简单,数量较多,计算峰值能力强,一般用于加速密集计算,称之为运算核心;一种处理器核专注于控制和服务,逻辑设计复杂,数量较少,一般用于实现各种功能控制和服务操作,称之为运算控制核心。
[0022]基于插装标签的核间协同多线程PMU事件监测技术采用控制核心定时感知机制,基于运算核心程序的插装标签,利用运算控制核心上的线程级PMU监测服务,在运算核心计算的同时,实现控制核心对运算核心PMU事件的记录。该技术一方面实现了较为准确的能够对应到用户程序的运算核心PMU事件监测,另一方面也降低了插装机制对运算核心程序执行的干扰。
[0023]如图1所示,基于编译器的插装方法,性能监测功能模块在多个任务的运算核心程序上指定位置插入定位标签,用于登记性能计数事件的配置信息,并感知运算核心程序的执行轨迹。同时,在运算任务相对较轻的运算控制核心上建立轻量级监测扫描服务,在合理配置的时间段内“触摸”运算核心程序上的定位标签。根据定位标签记录的信息,控制核心上的监测扫描服务进行多个任务的运算核心性能计数器的配置和读写,并通过监测数据处理服务对获取到的性能计数器值进行统计处理,最终形成较为准确的性能计数事件记录。
[0024]图2示意性地示出了根据本发明优选实施例的基于插装标签的核间协同多线程PMU事件监测方法的流程图。该方法用于包括用于执行计算操作的运算核心和用于执行控制和服务操作的运算控制核心的异构众核处理器。
[0025]如图2所示,根据本发明优选实施例的基于插装标签的核间协同多线程PMU事件监测方法包括:
[0026]第一步骤S1:运算控制核心设置各个运算核心上运行的线程所关心的性能事件;
[0027]第二步骤S2:初始化各个运算核心上运行的线程的PMU;
[0028]第三步骤S3:在各个运算核心上运行的线程上插装标签;优选地,所述标签被插装在每个线程的预定位置;优选地,所述插装的标签用于登记性能计数事件的配置信息,并感知运算核心程序的执行轨迹。
[0029]第四步骤S4:运算控制核心在后台透明地收集各个运算核心上运行的线程上的插装标签所实时返回的数据;例如,所述返回的数据包括但不限于:性能计数事件的配置信息(包括与PMU有关的信息等)以及运算核心程序的执行轨迹。
[0030]第五步骤S5:运算控制核心集中整理分析返回的数据以执行性能监测,并且根据数据分析结果形成性能计数事件记录;由此,形成了统一的全处理器的性能监测。
[0031]综上所述,本发明的基于插装标签的核间协同多线程PMU事件监测装置,采用在运算核心上插装标签,控制核心建立PMU监测服务的方法,实现了性能监测的灵活控制,提升了并行程序PMU事件的监测效率。
[0032]本发明在运算核心上插装标签,建立线程级PMU监测服务,而且采取了主从协同的性能数据监测方案。本发明的基于插装标签的核间协同多线程PMU事件监测装置,利用空闲的控制核心实现了对整个芯片的协同性能监测功能,数据通信开销小,对运算核心的应用性能的影响基本上可忽略。
[0033]此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
[0034]可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【主权项】
1.一种基于插装标签的核间协同多线程PMU事件监测方法,所述核间协同多线程PMU事件监测方法用于异构众核处理器,异构众核处理器包括用于执行计算操作的运算核心和用于执行控制和服务操作的运算控制核心;其特征在于所述核间协同多线程PMU事件监测方法包括: 运算控制核心设置各个运算核心上运行的线程所关心的性能事件; 初始化各个运算核心上运行的线程的PMU; 在各个运算核心上运行的线程上插装标签; 运算控制核心在后台透明地收集各个运算核心上运行的线程上的插装标签所实时返回的数据; 运算控制核心集中整理分析返回的数据以执行性能监测。2.根据权利要求1所述的基于插装标签的核间协同多线程PMU事件监测方法,其特征在于还包括:根据数据分析结果形成性能计数事件记录。3.根据权利要求1或2所述的基于插装标签的核间协同多线程PMU事件监测方法,其特征在于,所述标签被插装在每个线程的预定位置。4.根据权利要求1或2所述的基于插装标签的核间协同多线程PMU事件监测方法,其特征在于,所述插装的标签用于登记性能计数事件的配置信息。5.根据权利要求1或2所述的基于插装标签的核间协同多线程PMU事件监测方法,其特征在于,所述插装的标签还用于感知运算核心程序的执行轨迹。
【专利摘要】本发明提供了一种基于插装标签的核间协同多线程PMU事件监测方法,用于异构众核处理器。异构众核处理器包括用于执行计算操作的运算核心和用于执行控制和服务操作的运算控制核心。其中,运算控制核心设置各个运算核心上运行的线程所关心的性能事件;初始化各个运算核心上运行的线程的PMU;在各个运算核心上运行的线程上插装标签;运算控制核心在后台透明地收集各个运算核心上运行的线程上的插装标签所实时返回的数据;运算控制核心集中整理分析返回的数据以执行性能监测记录,从而形成统一的全处理器的性能监测。
【IPC分类】G06F11/34
【公开号】CN105426296
【申请号】CN201510826916
【发明人】刘勇, 彭超, 陈华蓉, 王敬宇, 冯赟龙, 王雯霞
【申请人】无锡江南计算技术研究所
【公开日】2016年3月23日
【申请日】2015年11月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1