基于插裝標簽的核間協(xié)同多線程pmu事件監(jiān)測方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,更具體地說,本發(fā)明涉及一種基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法。
【背景技術】
[0002]硬件體系結構的設計者為了評測他們的結構設計,在處理上植入了很多硬件性能計數(shù)器,這種做法也為利用硬件支持來分析程序的性能影響因素提供了可能。隨著處理器設計的不斷改進和性能的不斷提升,現(xiàn)代處理器大都集成了一類特殊的硬件性能監(jiān)測單元,即PMU(performance monitoring unit,稱為“性能監(jiān)視單元”或“硬件性能計數(shù)器”),來收集處理器中的性能事件。
[0003]例如,如果發(fā)生一次指令Cache(高速緩存)脫靶事件,則PMU的相應寄存器通過加一來記錄這一事件。借助PMU的監(jiān)測功能,能夠揭示處理器中發(fā)生的實際性能事件,通過對這些性能事件的統(tǒng)計和分析,程序員可以了解到不同的程序編碼方式會產(chǎn)生怎樣的底層硬件行為。同時,根據(jù)這些行為,能夠進一步分析是什么硬件事件影響了程序的性能,從而指導程序員進行算法層面的程序改進,并且提示編譯器進行代碼優(yōu)化,進而幫助操作系統(tǒng)實現(xiàn)更高效的資源管理。
[0004]在實際開發(fā)過程中,系統(tǒng)的很多優(yōu)化策略都用到了PMU監(jiān)測數(shù)據(jù)。借助PMU的性能監(jiān)測功能,系統(tǒng)可以為用戶提供比較全面的底層運行時信息。在效果方面,由于PMU的監(jiān)測數(shù)據(jù)可以真實反映程序在特定硬件平臺上的實際運行效果,因此利用PMU機制優(yōu)化程序性能有很多天然的優(yōu)勢。
[0005]隨著眾核處理器逐漸成為高性能計算的主要設備,如何發(fā)揮出眾核處理器的硬件潛力,性能監(jiān)測技術起著越來越重要的作用。以龍芯3A平臺為例,現(xiàn)有技術利用性能計數(shù)器實現(xiàn)了一款單進程采樣的性能分析工具Tprofiler,其實現(xiàn)分為兩個模塊:前端和后端。其中前端運行于用戶層,負責分析后端收集的性能信息,指導程序員優(yōu)化代碼;后端運行于內核層,負責控制性能計數(shù)器,收集程序運行過程中產(chǎn)生的硬件事件信息。
[0006]然而,上述現(xiàn)有的在眾核處理器上的協(xié)同性能監(jiān)測技術,有以下問題:首先,因為各自監(jiān)測,數(shù)據(jù)分布,協(xié)同時需要復雜的通信;其次,每個監(jiān)測點存在一定的開銷,大量線程同時監(jiān)測存在一定的開銷。
[0007]具體地,一般而言,傳統(tǒng)的針對單核、多核處理器的性能監(jiān)測往往是各個處理器核自行利用各個處理器核的PMU進行單獨性能監(jiān)測,這就只能反映某個處理器核的性能使用效率,并不能反映整個處理器的性能使用狀況,為了綜合反映整個處理器的性能,需要某種片上數(shù)據(jù)交互機制將這些監(jiān)測數(shù)據(jù)進行信息聚合,形成整體統(tǒng)一的性能監(jiān)測效果,達到真實有效地反映處理器的整體性能使用效率。
【發(fā)明內容】
[0008]本發(fā)明所要解決的技術問題是針對現(xiàn)有技術中存在上述缺陷,針對一種異構眾核處理器,提供一種具有低開銷而且輕量級的多線程協(xié)同性能監(jiān)測技術。
[0009]為了實現(xiàn)上述技術目的,根據(jù)本發(fā)明,提供了一種基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,所述核間協(xié)同多線程PMU事件監(jiān)測方法用于異構眾核處理器,異構眾核處理器包括用于執(zhí)行計算操作的運算核心和用于執(zhí)行控制和服務操作的運算控制核心。
[0010]所述核間協(xié)同多線程PMU事件監(jiān)測方法包括:運算控制核心設置各個運算核心上運行的線程所關心的性能事件;初始化各個運算核心上運行的線程的PMU;在各個運算核心上運行的線程上插裝標簽;運算控制核心在后臺透明地收集各個運算核心上運行的線程上的插裝標簽所實時返回的數(shù)據(jù);運算控制核心集中整理分析返回的數(shù)據(jù)以執(zhí)行性能監(jiān)測。
[0011]優(yōu)選地,所述基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法還包括:根據(jù)數(shù)據(jù)分析結果形成性能計數(shù)事件記錄。
[0012]優(yōu)選地,所述標簽被插裝在每個線程的預定位置。
[0013]優(yōu)選地,所述插裝的標簽用于登記性能計數(shù)事件的配置信息。
[0014]優(yōu)選地,所述插裝的標簽還用于感知運算核心程序的執(zhí)行軌跡。
[0015]本發(fā)明提供了一種基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,其能夠在一種異構眾核處理器上,利用PMU監(jiān)測數(shù)據(jù),準確而又高效地實現(xiàn)整個芯片的程序性能監(jiān)測。
【附圖說明】
[0016]結合附圖,并通過參考下面的詳細描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點和特征,其中:
[0017]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法的示意圖。
[0018]圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法的流程圖。
[0019]需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結構的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標有相同或者類似的標號。
【具體實施方式】
[0020]為了使本發(fā)明的內容更加清楚和易懂,下面結合具體實施例和附圖對本發(fā)明的內容進行詳細描述。
[0021]異構眾核處理器一般指芯片上存在具有兩種不同功能的處理器核,一種處理器核專注計算,邏輯設計簡單,數(shù)量較多,計算峰值能力強,一般用于加速密集計算,稱之為運算核心;一種處理器核專注于控制和服務,邏輯設計復雜,數(shù)量較少,一般用于實現(xiàn)各種功能控制和服務操作,稱之為運算控制核心。
[0022]基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測技術采用控制核心定時感知機制,基于運算核心程序的插裝標簽,利用運算控制核心上的線程級PMU監(jiān)測服務,在運算核心計算的同時,實現(xiàn)控制核心對運算核心PMU事件的記錄。該技術一方面實現(xiàn)了較為準確的能夠對應到用戶程序的運算核心PMU事件監(jiān)測,另一方面也降低了插裝機制對運算核心程序執(zhí)行的干擾。
[0023]如圖1所示,基于編譯器的插裝方法,性能監(jiān)測功能模塊在多個任務的運算核心程序上指定位置插入定位標簽,用于登記性能計數(shù)事件的配置信息,并感知運算核心程序的執(zhí)行軌跡。同時,在運算任務相對較輕的運算控制核心上建立輕量級監(jiān)測掃描服務,在合理配置的時間段內“觸摸”運算核心程序上的定位標簽。根據(jù)定位標簽記錄的信息,控制核心上的監(jiān)測掃描服務進行多個任務的運算核心性能計數(shù)器的配置和讀寫,并通過監(jiān)測數(shù)據(jù)處理服務對獲取到的性能計數(shù)器值進行統(tǒng)計處理,最終形成較為準確的性能計數(shù)事件記錄。
[0024]圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實施例的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法的流程圖。該方法用于包括用于執(zhí)行計算操作的運算核心和用于執(zhí)行控制和服務操作的運算控制核心的異構眾核處理器。
[0025]如圖2所示,根據(jù)本發(fā)明優(yōu)選實施例的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法包括:
[0026]第一步驟S1:運算控制核心設置各個運算核心上運行的線程所關心的性能事件;
[0027]第二步驟S2:初始化各個運算核心上運行的線程的PMU;
[0028]第三步驟S3:在各個運算核心上運行的線程上插裝標簽;優(yōu)選地,所述標簽被插裝在每個線程的預定位置;優(yōu)選地,所述插裝的標簽用于登記性能計數(shù)事件的配置信息,并感知運算核心程序的執(zhí)行軌跡。
[0029]第四步驟S4:運算控制核心在后臺透明地收集各個運算核心上運行的線程上的插裝標簽所實時返回的數(shù)據(jù);例如,所述返回的數(shù)據(jù)包括但不限于:性能計數(shù)事件的配置信息(包括與PMU有關的信息等)以及運算核心程序的執(zhí)行軌跡。
[0030]第五步驟S5:運算控制核心集中整理分析返回的數(shù)據(jù)以執(zhí)行性能監(jiān)測,并且根據(jù)數(shù)據(jù)分析結果形成性能計數(shù)事件記錄;由此,形成了統(tǒng)一的全處理器的性能監(jiān)測。
[0031]綜上所述,本發(fā)明的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測裝置,采用在運算核心上插裝標簽,控制核心建立PMU監(jiān)測服務的方法,實現(xiàn)了性能監(jiān)測的靈活控制,提升了并行程序PMU事件的監(jiān)測效率。
[0032]本發(fā)明在運算核心上插裝標簽,建立線程級PMU監(jiān)測服務,而且采取了主從協(xié)同的性能數(shù)據(jù)監(jiān)測方案。本發(fā)明的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測裝置,利用空閑的控制核心實現(xiàn)了對整個芯片的協(xié)同性能監(jiān)測功能,數(shù)據(jù)通信開銷小,對運算核心的應用性能的影響基本上可忽略。
[0033]此外,需要說明的是,除非特別說明或者指出,否則說明書中的術語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關系或者順序關系等。
[0034]可以理解的是,雖然本發(fā)明已以較佳實施例披露如上,然而上述實施例并非用以限定本發(fā)明。對于任何熟悉本領域的技術人員而言,在不脫離本發(fā)明技術方案范圍情況下,都可利用上述揭示的技術內容對本發(fā)明技術方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術方案的內容,依據(jù)本發(fā)明的技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術方案保護的范圍內。
【主權項】
1.一種基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,所述核間協(xié)同多線程PMU事件監(jiān)測方法用于異構眾核處理器,異構眾核處理器包括用于執(zhí)行計算操作的運算核心和用于執(zhí)行控制和服務操作的運算控制核心;其特征在于所述核間協(xié)同多線程PMU事件監(jiān)測方法包括: 運算控制核心設置各個運算核心上運行的線程所關心的性能事件; 初始化各個運算核心上運行的線程的PMU; 在各個運算核心上運行的線程上插裝標簽; 運算控制核心在后臺透明地收集各個運算核心上運行的線程上的插裝標簽所實時返回的數(shù)據(jù); 運算控制核心集中整理分析返回的數(shù)據(jù)以執(zhí)行性能監(jiān)測。2.根據(jù)權利要求1所述的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,其特征在于還包括:根據(jù)數(shù)據(jù)分析結果形成性能計數(shù)事件記錄。3.根據(jù)權利要求1或2所述的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,其特征在于,所述標簽被插裝在每個線程的預定位置。4.根據(jù)權利要求1或2所述的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,其特征在于,所述插裝的標簽用于登記性能計數(shù)事件的配置信息。5.根據(jù)權利要求1或2所述的基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,其特征在于,所述插裝的標簽還用于感知運算核心程序的執(zhí)行軌跡。
【專利摘要】本發(fā)明提供了一種基于插裝標簽的核間協(xié)同多線程PMU事件監(jiān)測方法,用于異構眾核處理器。異構眾核處理器包括用于執(zhí)行計算操作的運算核心和用于執(zhí)行控制和服務操作的運算控制核心。其中,運算控制核心設置各個運算核心上運行的線程所關心的性能事件;初始化各個運算核心上運行的線程的PMU;在各個運算核心上運行的線程上插裝標簽;運算控制核心在后臺透明地收集各個運算核心上運行的線程上的插裝標簽所實時返回的數(shù)據(jù);運算控制核心集中整理分析返回的數(shù)據(jù)以執(zhí)行性能監(jiān)測記錄,從而形成統(tǒng)一的全處理器的性能監(jiān)測。
【IPC分類】G06F11/34
【公開號】CN105426296
【申請?zhí)枴緾N201510826916
【發(fā)明人】劉勇, 彭超, 陳華蓉, 王敬宇, 馮赟龍, 王雯霞
【申請人】無錫江南計算技術研究所
【公開日】2016年3月23日
【申請日】2015年11月24日