CN112445547A - 面向异构众核处理器的低扰动性能数据采集方法 - Google Patents
面向异构众核处理器的低扰动性能数据采集方法 Download PDFInfo
- Publication number
- CN112445547A CN112445547A CN201910822171.5A CN201910822171A CN112445547A CN 112445547 A CN112445547 A CN 112445547A CN 201910822171 A CN201910822171 A CN 201910822171A CN 112445547 A CN112445547 A CN 112445547A
- Authority
- CN
- China
- Prior art keywords
- performance
- event
- performance data
- core
- data acquisition
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种面向异构众核处理器的低扰动性能数据采集方法,用于国产众核处理器,包括以下步骤:S1、在主核设置需要采集的性能数据所对应的性能事件,并对性能事件进行分类;S2、通过CSR寄存器设置硬件计数器的初值、计数使能控制、计数事件的选择,即将性能事件选择为计数事件,以实现对硬件计数器的初始化;S3、用户对需要进行性能数据采集的程序段进行插装,通过计算获得该程序段触发该性能事件的次数为两次统计接口函数的差值;S4、主核通过读取保存在统计接口参数地址中的性能事件的计数值实现性能数据的采集。本发明可以对多类性能事件进行并行采集,大大提高了数据采集效率,实现了高效全面、对程序低扰动的性能数据采集。
Description
技术领域
本发明涉及一种面向异构众核处理器的低扰动性能数据采集方法,属于计算机技术领域。
背景技术
众核处理器逐渐成为高性能计算的主要设备,发挥出众核处理器的硬件潜力成为应用技术的重要方向,面向众核处理器的性能监测越来越重要。作为性能监测的重要组成部分,性能数据的采集自然成为了关键。异构众核处理器作为高性能计算的主流体系结构,为并行程序的快速运行提供了便利,但随着并行程序的规模越来越大,程序越来越复杂,给性能数据的采集带来了严峻挑战,而目前大多数的数据采集工具已经很难适应这种大规模高复杂度的状况。
目前成熟的性能监测工具如Vtune、TAU等,通过调用工具预设的API来进行数据采集,为数据收集提供了便利,但在使用过程中也会面临一些困难,首先是使用平台的局限性,使其在异构众核处理器上的应用较为困难;其次,对于在异构众核处理器上运行的大规模并行程序,其性能数据往往规模很大且较为复杂,这也给数据采集带来了挑战。
传统的性能数据采集方法通常采用插装的方式来获得程序运行时的性能数据,包括源码插装、动态插装、库插装等。目前主流的性能监测工具就是利用插装的方法实现了数据采集功能,对于并行程序能够获得较好的数据采集效果。然而异构众核处理器的出现,以及并行程序的规模不断扩大,对性能监测工具带来挑战,性能数据的采集量大,采集时间开销大等一些列困难,影响其效率和实用性。同时受到监测工具可扩展性的制约,其在异构众核处理器上的移植也成为一大难题。如何提供一种适用于异构众核处理器的性能数据采集方法,在国产异构众核处理器上,以最小的代价实现性能数据采集,成为本领域技术人员努力的方向。
发明内容
本发明的目的是提供一种面向异构众核处理器的低扰动性能数据采集方法,该面向异构众核处理器的低扰动性能数据采集方法可以对多类性能事件进行并行采集,大大提高了数据采集效率,实现了高效全面、对程序低扰动的性能数据采集。
为达到上述目的,本发明采用的技术方案是:一种面向异构众核处理器的低扰动性能数据采集方法,用于国产众核处理器,其特征在于:包括以下步骤:
S1、在主核设置需要采集的性能数据所对应的性能事件,并对性能事件进行分类;
S2、通过CSR寄存器设置硬件计数器的初值、计数使能控制、计数事件的选择,即将性能事件选择为计数事件,以实现对硬件计数器的初始化;
S3、用户对需要进行性能数据采集的程序段进行插装,即根据需要采集的性能数据所对应的性能事件,选择该性能事件对应的初始化接口和统计接口,在程序段前调用初始化接口函数和统计接口函数,在程序段后调用统计接口函数,通过计算获得该程序段触发该性能事件的次数为两次统计接口函数的差值;
S4、主核通过读取保存在统计接口参数地址中的性能事件的计数值实现性能数据的采集,两次统计接口函数获得的计数值的差值即为性能数据。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,在S1中,对性能事件进行分类主要是根据硬件事件计数器所在的部件位置,分为主核事件计数器、从核事件计数器、从核阵列事件计数器和存储控制器事件计数器。
2. 上述方案中,所述初始化接口一般设置于主核程序段,所述统计接口一般设置于程序的核心段或者核心函数前后。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明面向异构众核处理器的低扰动性能数据采集方法,其针对国产异构众核处理器,利用硬件PMU实现对大规模复杂并行程序的性能数据采集,实用性较好,对并行程序的性能影响基本可以忽略,并且可以对多类性能事件进行并行采集,大大提高了数据采集效率,实现了高效全面、对程序低扰动的性能数据采集。
附图说明
附图1为本发明面向异构众核处理器的低扰动性能数据采集方法流程图;
附图2为本发明低扰动性能数据采集方法中性能事件结构图。
具体实施方式
实施例:一种面向异构众核处理器的低扰动性能数据采集方法,基于大规模异构***,用于国产众核处理器,包括以下步骤:
S1、在主核设置需要采集的性能数据所对应的性能事件,并对性能事件进行分类;
S2、通过CSR寄存器设置硬件计数器的初值、计数使能控制、计数事件的选择,即将性能事件选择为计数事件,以实现对硬件计数器的初始化;
S3、用户对需要进行性能数据采集的程序段进行插装,即根据需要采集的性能数据所对应的性能事件,选择该性能事件对应的初始化接口和统计接口,在程序段前调用初始化接口函数和统计接口函数,在程序段后调用统计接口函数,通过计算获得该程序段触发该性能事件的次数为两次统计接口函数的差值;
S4、主核通过读取保存在统计接口参数地址中的性能事件的计数值实现性能数据的采集,两次统计接口函数获得的计数值的差值即为性能数据。
在S1中,对性能事件进行分类主要是根据硬件事件计数器所在的部件位置,分为主核事件计数器、从核事件计数器、从核阵列事件计数器和存储控制器事件计数器。
上述初始化接口一般设置于主核程序段,所述统计接口一般设置于程序的核心段或者核心函数前后。
实施例进一步解释如下:
异构众核处理器一般指芯片上存在具有两种不同功能的处理器核,一种处理器核专注计算,逻辑设计简单,数量较多,计算峰值能力强,一般用于加速密集计算,称为运算核心(简称从核);一种处理器核专注于控制和服务,逻辑设计复杂,数量较少,一般用于实现各种功能控制和服务操作,称为控制核心(简称主核)。
面向异构众核处理器的低扰动性能数据采集方法基于事件采样原理,以硬件性能计数器为依托,通过只在主核设置和启动计数器进行事件计数来实现众核处理器性能数据的快速采集,直接用硬件来实现对性能数据的记录,可以将对程序的干扰降到最低,做到对主核程序低开销,从核程序基本无开销,因而采集到的数据更精确,对源程序的性能影响更小,且同时数据采集种类覆盖面广,可同时对多个不同事件类的性能数据进行并行采集,提高性能数据采集效率;以一种轻便插装的方式在用户程序中调用相应性能事件的初始化和统计接口,即可快速采集到用户所关注的性能数据,操作简便。
具体操作流程如图1所示,包括四个步骤:
1、在主核设置所关心的性能事件;
2、初始化对应的硬件计数器;
3、对用户程序进行插装,包括初始化接口和统计接口;
4、主核通过读取保存在统计接口参数地址中的计数值实现性能数据的采集。
本发明方法支持多类事件的性能数据采集,包括主核、从核、从核阵列和存储控制,其中主核的通用事件支持多种处理器模式下的事件计数,设置有2个计数器,可以单独使用,也可以同时使用;从核的事件计数器以CSR的形式开放给从核,可通过RCSR/WCSR指令进行读写访问,其他模块的事件计数器由于设计复杂度的考虑,不开放给从核访问,可以利用主核对IOR的访问权限,实现对从核组所有事件计数器的读写访问。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
异构众核处理器:处理器采用主从异构结构,由控制核心和运算核心组成。
采用上述面向异构众核处理器的低扰动性能数据采集方法时,其针对国产异构众核处理器,利用硬件PMU实现对大规模复杂并行程序的性能数据采集,实用性较好,对并行程序的性能影响基本可以忽略,并且可以对多类性能事件进行并行采集,大大提高了数据采集效率,实现了高效全面、对程序低扰动的性能数据采集。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种面向异构众核处理器的低扰动性能数据采集方法,用于国产众核处理器,其特征在于:包括以下步骤:
S1、在主核设置需要采集的性能数据所对应的性能事件,并对性能事件进行分类;
S2、通过CSR寄存器设置硬件计数器的初值、计数使能控制、计数事件的选择,即将性能事件选择为计数事件,以实现对硬件计数器的初始化;
S3、用户对需要进行性能数据采集的程序段进行插装,即根据需要采集的性能数据所对应的性能事件,选择该性能事件对应的初始化接口和统计接口,在程序段前调用初始化接口函数和统计接口函数,在程序段后调用统计接口函数,通过计算获得该程序段触发该性能事件的次数为两次统计接口函数的差值;
S4、主核通过读取保存在统计接口参数地址中的性能事件的计数值实现性能数据的采集,两次统计接口函数获得的计数值的差值即为性能数据。
2.根据权利要求1所述的面向异构众核处理器的低扰动性能数据采集方法,其特征在于:在S1中,对性能事件进行分类主要是根据硬件事件计数器所在的部件位置,分为主核事件计数器、从核事件计数器、从核阵列事件计数器和存储控制器事件计数器。
3.根据权利要求1所述的面向异构众核处理器的低扰动性能数据采集方法,其特征在于:所述初始化接口一般设置于主核程序段,所述统计接口一般设置于程序的核心段或者核心函数前后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910822171.5A CN112445547A (zh) | 2019-09-02 | 2019-09-02 | 面向异构众核处理器的低扰动性能数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910822171.5A CN112445547A (zh) | 2019-09-02 | 2019-09-02 | 面向异构众核处理器的低扰动性能数据采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445547A true CN112445547A (zh) | 2021-03-05 |
Family
ID=74734892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910822171.5A Withdrawn CN112445547A (zh) | 2019-09-02 | 2019-09-02 | 面向异构众核处理器的低扰动性能数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445547A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077080A (zh) * | 2013-01-07 | 2013-05-01 | 清华大学 | 基于高性能平台的并行程序性能数据采集方法及装置 |
CN105426296A (zh) * | 2015-11-24 | 2016-03-23 | 无锡江南计算技术研究所 | 基于插装标签的核间协同多线程pmu事件监测方法 |
CN106126384A (zh) * | 2016-06-12 | 2016-11-16 | 华为技术有限公司 | 一种采集性能监视单元pmu事件的方法及装置 |
-
2019
- 2019-09-02 CN CN201910822171.5A patent/CN112445547A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077080A (zh) * | 2013-01-07 | 2013-05-01 | 清华大学 | 基于高性能平台的并行程序性能数据采集方法及装置 |
CN105426296A (zh) * | 2015-11-24 | 2016-03-23 | 无锡江南计算技术研究所 | 基于插装标签的核间协同多线程pmu事件监测方法 |
CN106126384A (zh) * | 2016-06-12 | 2016-11-16 | 华为技术有限公司 | 一种采集性能监视单元pmu事件的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tikir et al. | PSINS: An open source event tracer and execution simulator for MPI applications | |
US20070157177A1 (en) | Methods and apparatus to analyze processor systems | |
CN101996271B (zh) | 实现pscad电力***仿真计算模型自动生成的*** | |
CN104866580A (zh) | 一种数据库变更对现有业务影响的快速侦测方法 | |
Lahiri et al. | Fast performance analysis of bus-based system-on-chip communication architectures | |
CN101794993A (zh) | 基于mpi的电网仿真实时并行计算平台及应用 | |
US8245084B2 (en) | Two-level representative workload phase detection | |
CN109684517B (zh) | 一种历史数据存储方法、读写方法、存储装置和设备 | |
CN103077080A (zh) | 基于高性能平台的并行程序性能数据采集方法及装置 | |
CN112445547A (zh) | 面向异构众核处理器的低扰动性能数据采集方法 | |
CN102902769A (zh) | 一种云计算平台数据库基准测试***及其方法 | |
CN110990227B (zh) | 一种数值水池应用特征性能采集和监控***及其运行方法 | |
CN104461832A (zh) | 一种监控应用服务器资源的方法及装置 | |
CN102541738B (zh) | 加速多核cpu抗软错误测试的方法 | |
Kim et al. | A scalable high-performance i/o system for a numerical weather forecast model on the cubed-sphere grid | |
CN101901192B (zh) | 一种片上和片外数据对象静态分配方法 | |
Geimer et al. | Recent developments in the scalasca toolset | |
CN102135793A (zh) | 一种面向低功耗的多核共享Cache混合划分方法 | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
CN103226328A (zh) | 采集次数控制模式下的多线程数据采集***同步控制方法 | |
Curreri et al. | Performance analysis with high-level languages for high-performance reconfigurable computing | |
Jian-feng et al. | A High Performance Data Storage Method for Embedded Linux Real-time Database in Power Systems | |
Tikir et al. | Psins: An open source event tracer and execution simulator | |
CN104698929A (zh) | 费控智能电能表的实时控制方法 | |
CN105468625A (zh) | 利用虚拟机构建数据库集群的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210305 |