TWI499980B - 使用虛擬任務之用於多核心處理器效能分析的關聯式模型化技術 - Google Patents
使用虛擬任務之用於多核心處理器效能分析的關聯式模型化技術 Download PDFInfo
- Publication number
- TWI499980B TWI499980B TW099141691A TW99141691A TWI499980B TW I499980 B TWI499980 B TW I499980B TW 099141691 A TW099141691 A TW 099141691A TW 99141691 A TW99141691 A TW 99141691A TW I499980 B TWI499980 B TW I499980B
- Authority
- TW
- Taiwan
- Prior art keywords
- task
- duration
- created
- tasks
- association
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 24
- 230000000007 visual effect Effects 0.000 claims description 24
- 238000010422 painting Methods 0.000 claims description 11
- 239000000872 buffer Substances 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 5
- 238000013480 data collection Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Processing Or Creating Images (AREA)
Description
本發明大體上係有關多核心處理器,並更特別係有關多核心機器的效能分析。
現代的一般用途及圖形處理器可包括一或多個核心。這些處理器可運行大量的執行緒。因此,視任務數量及可運行的不同執行緒之數量而定,分析一個處理器的效能可能會涉及到很複雜的任務。
傳統上,軌跡是對於在一個處理器上所運行的任務間之時間性順序的一個圖形描述。以軟體為基礎的軌跡分析使軟體設計師能夠瞭解任務間的操作順序。
然而,就多核心處理器而言,可能會需要更為精細的分析。
依據本發明之一實施例,係特地提出一種方法,其包含下列步驟:接收對於在一個多核心處理器中的一個以隱含方式創造之任務的一個識別;以及使該以隱含方式創造之任務與一個經實際編碼之任務相聯結。
依據本發明之一實施例,尚特地提出一種儲存有指令的電腦可讀媒體,該等指令在由一電腦執行時係用於進行
下列步驟:接收對於在一個多核心處理器中的一個以隱含方式創造之任務的一個識別;以及使該以隱含方式創造之任務與一個經實際編碼之任務相聯結。
依據本發明之一實施例,還特地提出一種裝置,其包含:一個多核心處理器,以及耦接至該處理器的一個記憶體,該記憶體儲存有用以接收對於一個多核心處理器中的一個以隱含方式創造之任務的一個識別以及使該以隱含方式創造之任務與一個經實際編碼之任務相聯結的指令。
第1圖為本發明之一實施例的一個示意描繪;第2圖為描繪示於第1圖中之實施例所用之一順序的一個流程圖;第3圖為依據本發明之一實施例的一個以任務為基礎的關聯式模型的視覺化表示;第4圖為依據本發明之一實施例所產生的親子關聯的視覺化表示;第5圖為依據本發明之一實施例之依賴關聯的視覺化表示;第6圖為對依據本發明之一實施例的一個虛擬任務視覺化表示之描繪;第7圖為對依據本發明之一實施例的另一個虛擬任務視覺化表示之描繪;並且第8圖為一個實施例之流程圖。
依據本發明的一些實施例,除了時間性順序以外的關聯可在稱為任務的程式碼塊之間被視覺化。一個任務為用於排程和執行的任何一種常用的工作單元。其可為具有開始與結束的程式碼的任何一部分。其持續期間可被定義為執行此任務的多個循環。
軌跡為任務間之連結。一個關聯式模型依照上代對下代、同輩、依賴性、及生產者與消耗者而給定任務間之關聯。亦可使用其他關聯。
親子關聯存在於一第一任務和由第一任務所衍生的一第二任務之間。當一第一任務依賴於一第二任務來執行時,依賴性便存在於此第一任務和此第二任務之間。生產者與消耗者關聯係指一第一任務創造資料並將其置於一個緩衝器中,而一第二任務從此緩衝器中消耗那些資料。
基元(primitive)是作為一個關聯中之一方的任何一個實體。一個任務是一種基元。另一種基元稱為參數。一個參數可以是一個緩衝器、一個名稱數值對、一個字串、或任何類型的正規資料類型或是對一個任務具有一項關聯的結構。亦可使用其他基元。
請參考第1圖,效能分析工具10可包括一個控制件12,其可為一個處理器。此處理器可為一個多核心處理器。於一實施例中,其可為一個圖形處理器,並且在一個實施例中,其可為一個單指令多資料(SIMD)多核心處理器。控制件12耦接至一個記憶體14,其可儲存一個圖形使用者介
面或此工具之前端16、將基元和基元間之關聯編碼的多個應用程式介面(API)18以及提供可運用之特徵之工具箱的一個程式庫20。控制件可耦接至一個輸入/輸出件22,以容許使用者輸入資訊及接收輸出。可使用一個顯示器24來將包括任務的基元間之關聯視覺化。
軟體開發員使用效能分析工具來藉由瞭解例如軟體內之任務的基元間之關聯而增進其軟體之效能。軟體開發員可藉由瞭解這些關聯而明白如何改善軟體效能。
一般而言,軟體開發員開發兩種版本的程式碼。一種版本的程式碼為僅執行例如遊戲之所欲功能的程式碼。在一些實施例中,另一種版本的程式碼在其中包括有創造基元關聯之視覺化表示的API 18(而在其他實施例中,可係使用二元輸出而非視覺化表示來做更進一步的分析)。具有API的版本的程式碼被稱為具儀表碼(instrumented code)。將這些具儀表碼串流至前端圖形使用者介面16使設計師能夠知道程式碼中發生了什麼事。其示出正在程式碼中運行的執行緒、執行緒內之任務、以及最重要的在那些任務間的功能性關聯。
請參考第2圖,由應用程式介面18所實施的順序從接收對於一個執行緒的選擇開始,如於方塊22中所指出的。接下來,選擇一個基元識別符,如於方塊24中所指出的。於方塊26中,此識別符被登錄。接著,在方塊28中,此識別符被分配給一個基元。
在這個時候,設計師接著錄入在一個所選基元和其他
基元之間的關聯。所選基元被稱為「這個」基元,而和這個基元有關聯的基元被稱為「那個」基元。
在一些實施例中,順序18自動暗含由設計師所錄入的那些關聯以外的多個關聯。例如,若一第一任務為一第二任務之上代,則暗含著第二任務為此上代之下代。同樣地,若一第一任務和一第二任務有關,且第二任務和一第三任務有關,則暗含著第一任務也和第三任務有關,並且可暗含此關聯之本質。這可被稱為傳遞性關聯(transitive relationships)或從其他關聯所暗含的關聯。在一些實施例中,使用傳遞性關聯減少了使用者的資料錄入負擔。此外,可係有一對N或扇出的關聯。例如,在一些實施例中,單一個上代可衍生任何數量的下代,並且並不需要分開編碼所有的這些下代。
此外,順序18為各個基元識別符提供時間戳記。其亦將任何任務在何時開始及結束的時間作為輸出而提供。因此,在一個實施例中,其可將一連串的執行緒顯示為於一表中之數行。各行可包括於此執行緒中之任務順序。此外,亦可藉由視覺化表示來指出巢狀任務,例如將巢狀任務示為從其於當中所執行之任務的向外延伸。使用者可在一個特定任務上點擊,並且可響應於對此任務之選擇而圖形式地顯示其關聯。
相對於以時間為基礎的追蹤系統,系統10可係以關聯為基礎。在任務與不同緩衝器間之時間性關聯比其間之關聯較不重要。在一些實施例中,任務間之關聯被顯示,在
一些實施例中,即使其相對時序不被顯示亦然。因此,在一些實施例中,於此執行緒中,任務之時間順序可被繪示,但不同執行緒中之任務的時間性順序可不被顯示。在一些實施例中,相對於時間性關聯,功能性關聯可被顯現。一個功能性關聯為除了任務間之時間性順序以外的任何關聯。
在一個實施例中,各個任務可係由一個四邊形來表示,其於x方向上的長為其花多久時間來執行的一個函數。在一些實施例中,可使用滑鼠點擊與拖曳技術來選擇多個任務,以顯示在那些所選任務和任何其他任務間之關聯。
因此,舉個簡單的例子,請參考第3圖,這裡有四個基元,包括三個任務36、38和42,以及為一個緩衝器40形式的一個參數。箭頭44、52、50和48示出在這些任務之間的關聯。例如,頂點任務38可將其結果置於緩衝器40中,且那些結果可被任務42使用。因此,任務38為生產者,而任務42為消耗者。由於頂點任務38係由繪畫任務36所創造,故箭頭52指出頂點任務為繪畫任務36的下代。同樣地,像素任務42取決於頂點任務38而執行,並且因而,箭頭46指出此依賴性。因此,在一些情況中,任務間可有多重的關聯。此外,亦可有多種物件類型。
回到第2圖,在於方塊28中分配識別符給基元之後,針對這個基元的關聯接著被錄入,如於方塊30中所指出的。雖然於本文中係描述手動技術,但當中程式碼分析導致關聯之自動錄入而不需使用者介入的自動技術亦受考慮。
接著,於菱形32,一項檢查判定是否有任何更多的基元要編碼。倘若如此,則此流程迭代。否則的話,於菱形34的一項檢查便判定是否有更多執行緒要編碼。倘若如此,則此流程迭代。否則的話,此流程便結束。
第4圖示出對於一項親子關聯之視覺化表示的一個範例。在一個實施例中,此視覺化表示可為具有數個可用滑鼠選擇之任務或基元描繪的一個圖形使用者介面。於此範例中,只示出四個執行緒。對於各個執行緒,任務係以四邊形指出。
於此實例中,使用者已於第二個執行緒中選擇一個上代任務B。響應於此,此親子關聯之視覺化表示被自動地產生。即,在第三個執行緒中之從任務B延伸到一連串的為任務B之下代的任務C之箭頭。此外,數個箭頭亦從在第三個執行緒中的任務C延伸到在第四個執行緒中的為上代任務B之孫的任務C。
第5圖為一個依賴性關聯的視覺化表示。其相當於第4圖,可是現在使用者所選擇的任務B具有對任務A、C、D和E的依賴性。即,任務B取決於來自於任務A之輸入,如由標示為「進入依賴性」之箭頭所指出的。任務C、D和E取決於任務B之輸出,標示為「出去依賴性」。因此,此視覺化表示示出在不同執行緒中之任務間的功能性關聯。
在例如呈現動作(rendering pass)的一些圖形應用程式中,迄今所說明之技術將不引動任務視覺化。然而,呈現動作可為對由一個程式所執行之工作的一種有用衡
量,且對於在一應用程式開發者等級之側繪而言可為一個合意的工具。
因為圖形應用程式介面並不含有實際代表呈現動作的顯函式,所以由於呈現動作係在一連串的API呼叫期間被以隱含方式創造出來的,它並不會利用前文所說明的技術而被編碼。因此,可利用一個虛擬任務而將這樣的一個以隱含方式創造的任務視覺化。舉一個較為具體的例子,下面的呼叫範例可在直接多樣應用程式(Direct X API)中作出:SetRenderTarget(1)
Draw(draw_args_1)
Draw(draw_args_2)
SetRenderTarget(2)
Draw(draw_args_3) 於此程式碼當中,繪畫(draw)1和2為第一個所呈現目標之工作的一部分,而繪畫3為第二個所呈現目標之工作的一部分。此工作係在硬體中執行,並且只有導致此工作的那些命令本身為繪畫命令。設定呈現目標(set render target)命令僅陳述設定狀態,其本身並不創造任何工作。為了解決這個問題,在一些實施例中,可使用一個虛擬任務。此虛擬任務可在設定呈現目標呼叫中被創造:SetRenderTarget(x){ TAL_BeginVirtualTask("RenderTarget"); TAL_SetCurrentTaskID(x->renderTargetID); TAL_EndVirtualTask( ) }
就一般任務而言,開始與結束呼叫之時間戳記會被記錄,因為任務之持續期間可能會受到關注。然而,在上文
中之具有設定呈現目標的範例中,實際任務是在一完成的時候就完結;確切地說,其為將於稍後完成的真實工作的一個佔位器。
為了提供虛擬任務實際持續時間,係可使其他非以隱含方式創造的、或是經實際編碼的任務與此虛擬任務相聯結。例如,當一個繪畫呼叫(draw call)任務被創造時,那個繪畫呼叫任務便為實際虛擬任務的一個下代。配合這個虛擬任務的概念,可給予一個設定呈現目標之持續時間一個持續時間,其配合一串呈現目標虛擬任務之列表來代表使用者,並基於他們的所有有關任務而運算他們的持續時間。
那麼,此等虛擬任務可藉由利用其下代任務之最小和最大值而在一條時間線上被視覺化,如於第6圖中所表示的。可從上代/下代關係而導出示於第6圖中的此視覺化型態。例如,可將底下的呈現目標一之任務繪為繪畫1和繪畫2的下代,並可將呈現目標二繪為繪畫3的下代。因此,呈現目標1和呈現目標2得到一個持續時間,即使此持續時間基本上為相聯結之繪畫呼叫,例如在設定呈現目標1之情況中是繪畫1和繪畫2以及在設定呈現目標2之情況中是繪畫3,的持續時間。
虛擬任務在示出更多關於複雜任務的資訊方面而言可亦是很有用的,以使基本的資料收集可在無更細節之資訊的情況下完成。在呈現目標的這個例子中,只有虛擬任務(呈現目標2、呈現目標3)可在一個應用程式運行中被示
出,如於第7圖中所示的。配合大量的執行緒,在一些情況中,這可比第6圖中之描繪更清楚。例如,配合本身各含有成千上百個任務的128個不同的執行緒,設定呈現目標2執行最長的,且設定呈現目標3很可能取決於設定呈現目標2的完成。此洞察可使設計師能夠停止收集資料或立即採取行動,可能是藉由容許設定呈現目標2和3共同執行,或藉由將設定呈現目標2最佳化,現在已經知道其為一個時間消耗者。
參考第8圖,用於錄入一個虛擬任務的順序60可為一個模組或示於第2圖中的一個API 18的一部分。一開始,虛擬任務如於方塊62中所指地開始,猶如其為一個真實任務一樣。然後,亦猶如此虛擬任務為一個真實任務一樣,一個目前任務識別符在方塊64中被設定。接下來,在方塊66中使此任務與另一個任務相聯結。例如,可使設定呈現目標虛擬任務與一或多個繪畫呼叫相聯結,如例如第6圖中所繪示的。此聯結提供一個虛擬任務持續時間。最後,此虛擬任務被終止(方塊68)。
簡言之,虛擬任務對於建造針對複雜、高度平行軟體的資料收集工具而言,可以是很有用的。如果沒有他們的話,資料收集工具可能只能示出執行一個API之機制,這在一些情況中可能會阻撓對於簡單且關鍵的效能洞察之獲得。在一些實施例中,藉由使用虛擬任務,可獲得使此種問題能夠從一開始便更為明朗的一個抽象概念,而致能更多具生產力並有效的由上至下資料收集。
可在多種硬體架構中實施於本文中所說明的圖形處理技術。例如,可將圖形機能整合在一個晶片組中。或者是,可使用一個分立圖形處理器。再舉另一個實施例,圖形功能可由包括多核心處理器的一個一般用途處理器來實施。
本說明書通篇中之對「一個實施例」或「一實施例」之指涉係指配合此實施例所說明的一個特定的特徵、結構或特點係被包括在至少一個涵括於本發明內的實作中。因此,「一個實施例」或「一實施例」這些詞語的出現並不必然係指相同實施例。此外,這個特定的特徵、結構或特點可係以除了所例示之特定實施例以外的其他合適形式來制定,並且所有此等形式皆可被涵括於本申請案之申請專利範圍內。
雖然已針對有限數量的實施例來說明本發明,熟於此技者當可識出從其而來的多種修改體與變異體。後附申請專利範圍意欲涵蓋落於本發明之真實精神與範疇內的所有這些修改體與變異體。
10‧‧‧效能分析工具
12‧‧‧控制器
14‧‧‧記憶體
16‧‧‧圖形使用者介面
18‧‧‧應用程式介面(API)
18、60‧‧‧順序
20‧‧‧程式庫
22‧‧‧輸入/輸出件
24‧‧‧顯示器
22~30、62~68‧‧‧方塊
32~34‧‧‧菱形
36、38、42、A~E‧‧‧作業
40‧‧‧緩衝器
44~52‧‧‧箭頭
第1圖為本發明之一實施例的一個示意描繪;第2圖為描繪示於第1圖中之實施例所用之一順序的一個流程圖;第3圖為依據本發明之一實施例的一個以任務為基礎的關聯式模型的視覺化表示;第4圖為依據本發明之一實施例所產生的親子關聯的視覺化表示;
第5圖為依據本發明之一實施例之依賴關聯的視覺化表示;第6圖為對依據本發明之一實施例的一個虛擬任務視覺化表示之描繪;第7圖為對依據本發明之一實施例的另一個虛擬任務視覺化表示之描繪;第8圖為一個實施例之流程圖。
18‧‧‧順序
22~30‧‧‧方塊
32~34‧‧‧菱形
Claims (29)
- 一種方法,其包含下列步驟:接收對於一個多核心處理器中的一個以隱含方式創造之任務的識別;以及使該以隱含方式創造之任務與一個經實際編碼之任務相聯結。
- 如申請專利範圍第1項之方法,其包括下列步驟:提供對於在該經實際編碼之任務與該以隱含方式創造之任務間之關聯的視覺化表示。
- 如申請專利範圍第1項之方法,其包括下列步驟:指示該等任務間之關聯。
- 如申請專利範圍第3項之方法,其中,指示該等任務間之關聯之步驟包括:指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第3項之方法,其包括下列步驟:提供對於該關聯的視覺化表示。
- 如申請專利範圍第1項之方法,其包括下列步驟:使用該經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第6項之方法,其包括下列步驟:使用多個經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第1項之方法,其包括下列步驟:接收對於作為該以隱含方式創造之任務的一個設 定呈現目標的識別。
- 如申請專利範圍第8項之方法,其包括下列步驟:使該設定呈現目標與至少一個繪畫呼叫相聯結。
- 如申請專利範圍第9項之方法,其包括下列步驟:將該設定呈現目標顯示為該繪畫呼叫的一個下代。
- 一種儲存有指令的電腦可讀媒體,該等指令在由一電腦執行時係用於進行下列步驟:接收對於一個多核心處理器中的一個以隱含方式創造之任務的識別;以及使該以隱含方式創造之任務與一個經實際編碼之任務相聯結。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟之指令:提供對於在該經實際編碼之任務與該以隱含方式創造之任務間之關聯的視覺化表示。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟之指令:指示該等任務間之關聯。
- 如申請專利範圍第13項之媒體,其進一步儲存有用於下列步驟之指令:指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第13項之媒體,其進一步儲存有用於下列步驟之指令:提供對於該關聯的視覺化表示。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟之指令:使用該經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第16項之媒體,其進一步儲存有用於下列步驟之指令:使用多個經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟之指令:接收對於作為該以隱含方式創造之任務的一個設定呈現目標的識別。
- 如申請專利範圍第18項之媒體,其進一步儲存有用於下列步驟之指令:使該設定呈現目標與至少一個繪畫呼叫相聯結。
- 如申請專利範圍第19項之媒體,其進一步儲存有用於下列步驟之指令:將該設定呈現目標顯示為該繪畫呼叫的一個下代。
- 一種裝置,其包含:一個多核心處理器;以及耦接至該處理器的一個記憶體,該記憶體儲存有用於接收對於該多核心處理器中的一個以隱含方式創造之任務的識別、及用於使該以隱含方式創造之任務與一個經實際編碼之任務相聯結的指令。
- 如申請專利範圍第21項之裝置,其中,該記憶體儲存有用於提供對於在該經實際編碼之任務與該以隱含方式創造之任務間之關聯的視覺化表示的指令。
- 如申請專利範圍第21項之裝置,該裝置可指示該等任務間之關聯。
- 如申請專利範圍第21項之裝置,其中,該裝置為一個圖形處理器。
- 如申請專利範圍第24項之裝置,其中,該裝置為一個單指令多資料多核心處理器。
- 如申請專利範圍第21項之裝置,該裝置可指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第26項之裝置,該裝置可提供對於該持續時間的視覺化表示。
- 如申請專利範圍第27項之裝置,該裝置可使用該經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
- 如申請專利範圍第28項之裝置,該裝置可使用多個經實際編碼之任務的持續時間來指示針對該以隱含方式創造之任務的持續時間。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/645,568 US8850404B2 (en) | 2009-12-23 | 2009-12-23 | Relational modeling for performance analysis of multi-core processors using virtual tasks |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201137752A TW201137752A (en) | 2011-11-01 |
TWI499980B true TWI499980B (zh) | 2015-09-11 |
Family
ID=43531605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099141691A TWI499980B (zh) | 2009-12-23 | 2010-12-01 | 使用虛擬任務之用於多核心處理器效能分析的關聯式模型化技術 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8850404B2 (zh) |
JP (1) | JP5421228B2 (zh) |
KR (1) | KR101232535B1 (zh) |
CN (1) | CN102110012B (zh) |
DE (1) | DE102010053558A1 (zh) |
GB (1) | GB2476548A (zh) |
TW (1) | TWI499980B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6258159B2 (ja) * | 2014-08-26 | 2018-01-10 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
CN107003828B (zh) * | 2014-12-15 | 2021-05-14 | 英特尔公司 | 图形指令的仪器化 |
US9836186B2 (en) | 2015-11-19 | 2017-12-05 | International Business Machines Corporation | Visualization and control of application interactions |
GB2555586B (en) * | 2016-10-31 | 2019-01-02 | Imagination Tech Ltd | Performance profiling in a graphics unit |
CN108647134B (zh) * | 2018-05-04 | 2019-04-12 | 北京物资学院 | 一种面向多核架构的任务监测、跟踪及识别方法 |
US10990439B1 (en) * | 2019-09-26 | 2021-04-27 | Facebook Technologies, Llc | Tracing task execution across services in microkernel-based operating systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6074135A (en) * | 1996-09-25 | 2000-06-13 | Innovative Technologies, Inc. | Coating or ablation applicator with debris recovery attachment |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
TW200941209A (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corp | Power-aware thread schedulingard and dynamic use of processors |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047122A (en) | 1992-05-07 | 2000-04-04 | Tm Patents, L.P. | System for method for performing a context switch operation in a massively parallel computer system |
JPH064361A (ja) * | 1992-06-18 | 1994-01-14 | Hokuriku Nippon Denki Software Kk | トレース情報収集方式 |
JP3224426B2 (ja) * | 1992-09-04 | 2001-10-29 | 富士通株式会社 | プログラム解析支援装置 |
JPH07325732A (ja) * | 1994-05-31 | 1995-12-12 | Mitsubishi Electric Corp | マルチプロセスのデバッグ方法 |
US6560722B1 (en) | 1999-12-30 | 2003-05-06 | Texas Instruments Incorporated | Developing and deploying real-time high-performance applications with DSPs |
JP2002318712A (ja) * | 2001-04-20 | 2002-10-31 | Matsushita Electric Ind Co Ltd | プログラム実行履歴解析方法 |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7316005B2 (en) | 2004-01-26 | 2008-01-01 | Microsoft Corporation | Data race detection using sequential program analysis |
JP2004318914A (ja) * | 2004-08-02 | 2004-11-11 | Hitachi Ltd | プログラムの表示方法及び装置並びにその処理プログラムを格納した記録媒体 |
US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
US7941585B2 (en) * | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
US9070104B2 (en) | 2004-11-12 | 2015-06-30 | Sap Se | Cross-context task management |
CN101354693B (zh) * | 2008-09-11 | 2010-06-09 | 重庆邮电大学 | 一种异构多核处理器的核间通信调度系统及方法 |
US8484276B2 (en) * | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
US8581916B2 (en) * | 2009-06-26 | 2013-11-12 | Intel Corporation | Graphics analysis techniques |
-
2009
- 2009-12-23 US US12/645,568 patent/US8850404B2/en not_active Expired - Fee Related
-
2010
- 2010-11-29 JP JP2010265298A patent/JP5421228B2/ja not_active Expired - Fee Related
- 2010-12-01 TW TW099141691A patent/TWI499980B/zh not_active IP Right Cessation
- 2010-12-06 DE DE102010053558A patent/DE102010053558A1/de not_active Ceased
- 2010-12-07 GB GB1020734A patent/GB2476548A/en not_active Withdrawn
- 2010-12-22 CN CN201010618074.3A patent/CN102110012B/zh not_active Expired - Fee Related
- 2010-12-22 KR KR1020100132752A patent/KR101232535B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6074135A (en) * | 1996-09-25 | 2000-06-13 | Innovative Technologies, Inc. | Coating or ablation applicator with debris recovery attachment |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
TW200941209A (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corp | Power-aware thread schedulingard and dynamic use of processors |
Also Published As
Publication number | Publication date |
---|---|
DE102010053558A1 (de) | 2012-03-08 |
JP2011138494A (ja) | 2011-07-14 |
GB201020734D0 (en) | 2011-01-19 |
US20110154337A1 (en) | 2011-06-23 |
GB2476548A (en) | 2011-06-29 |
US8850404B2 (en) | 2014-09-30 |
KR101232535B1 (ko) | 2013-02-12 |
KR20110073362A (ko) | 2011-06-29 |
TW201137752A (en) | 2011-11-01 |
JP5421228B2 (ja) | 2014-02-19 |
CN102110012B (zh) | 2015-06-24 |
CN102110012A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896112B2 (en) | Visualization tool for parallel dependency graph evaluation | |
US9658943B2 (en) | Interactive graph for navigating application code | |
US9678616B2 (en) | Graphics command management tool and methods for analyzing performance for command changed before application modification | |
TWI499980B (zh) | 使用虛擬任務之用於多核心處理器效能分析的關聯式模型化技術 | |
Harman et al. | Pareto optimal search based refactoring at the design level | |
US20140189651A1 (en) | Animated Highlights in a Graph Representing an Application | |
KR100909153B1 (ko) | 그래픽 파이프라인 서브유닛을 디버깅하기 위한 방법 및시스템 | |
US20140189650A1 (en) | Setting Breakpoints Using an Interactive Graph Representing an Application | |
EP3316143B1 (en) | Performance profiling of a graphics unit | |
EP3000041A1 (en) | Graph for navigating application code | |
TWI506420B (zh) | 用於多核心處理器效能分析的關聯式模型化技術 | |
Stolte et al. | Visualizing application behavior on superscalar processors | |
WO2013081593A1 (en) | External validation of graphics pipelines | |
US11989537B2 (en) | Dataflow-based computer program visualization and refactoring | |
Seyster | Techniques for visualizing software execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |