TWI613545B - 繪圖處理程序之分析方法與分析系統 - Google Patents
繪圖處理程序之分析方法與分析系統 Download PDFInfo
- Publication number
- TWI613545B TWI613545B TW105132243A TW105132243A TWI613545B TW I613545 B TWI613545 B TW I613545B TW 105132243 A TW105132243 A TW 105132243A TW 105132243 A TW105132243 A TW 105132243A TW I613545 B TWI613545 B TW I613545B
- Authority
- TW
- Taiwan
- Prior art keywords
- groups
- reference drawing
- load
- training
- programs
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 11
- 230000008569 process Effects 0.000 title description 2
- 238000004458 analytical method Methods 0.000 claims abstract description 51
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000012706 support-vector machine Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/245—Classification techniques relating to the decision surface
- G06F18/2453—Classification techniques relating to the decision surface non-linear, e.g. polynomial classifier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Abstract
一種繪圖處理程序之分析方法與分析系統。分析方法包括以下步驟:以一探測電路對一繪圖處理器硬體量測出數個參考繪圖程式相對應的數個負載分值及數個負載總值,並建立出各個參考繪圖程式對應於各個硬體元件之一加權係數,以依據此些負載總值及此些加權係數將此些參考繪圖程式分類為數個群組。將參考繪圖程式之參考繪圖參數集合作為數個輸入,並將此些群組作為數個輸出,找出一映射函數,以訓練出此些參考繪圖程式對應於此些群組之一歸類關係。分析繪圖處理器硬體之此些硬體元件分別對應之負載分值與此些參考繪圖參數之相對關係。
Description
本揭露是有關於一種繪圖處理程序之分析方法與分析系統。
隨著對行動裝置上晝面顯示的細緻度及華麗度之追求,因此繪圖處理器硬體已被廣泛的用於加速應用程式上3D場景的繪製,然而受限於行動裝置上有限的電池容量,因此行動裝置上的繪圖應用程式開發者必須能在開發階段很快的了解到3D場景的複雜度是如何影響處理功耗,以取得效能、3D場景表現、及功耗之間的平衡,並藉由修改繪圖應用程式來進行單位功耗之效能的最佳化。
針對繪圖處理器硬體的功耗預估,一般主要是於程式執行過程中實際存取硬體元件(或硬體模擬器)以獲得硬體訊號/狀態變動資訊,並藉此來估算功耗值,然而這種硬體訊號/狀
態變動資訊是相依於硬體架構且繪圖處理器硬體供應商並不一定有提供方法來取得這些訊號/狀態變動資訊;此外,繪圖應用程式開發者很難直接從這些硬體變動資訊了解到是哪一段程式碼或哪一個3D場景會造成大量的功率消耗,進一步限制了最佳化的進行。
此外,除了功耗預估以外,處理時間的預估同樣也面臨上述一樣的問題,繪圖應用程式開發者很難直接從這些硬體變動資訊了解到是哪一段程式碼或哪一個3D場景會花費大量的處理時間,進一步限制了最佳化的進行。
本揭露係有關於一種繪圖處理程序之分析方法與分析系統。
根據本揭露之一實施例,提出一種繪圖處理程序之分析方法。繪圖處理程序之分析方法包括以下步驟。提供數個參考繪圖程式及各個參考繪圖程式之數個參考繪圖參數,各該參考繪圖程式之該些參考繪圖參數組成一參考繪圖參數集合。以一探測電路對一繪圖處理器硬體量測出此些參考繪圖程式相對應的數個負載分值及數個負載總值,各個負載分值對應於此些參考繪圖程式及繪圖處理器硬體之數個硬體元件,並建立出各個參考繪圖程式對應於各個硬體元件之一加權係數,以依據此些負載總值及此些加權係數將此些參考繪圖程式分類為數個群組(group)。
將此些參考繪圖參數集合作為數個輸入,並將此些群組作為數個輸出,找出此些輸入與此些輸出之一映射函數,以訓練出此些參考繪圖程式對應於此些群組之一歸類關係(classifying relationship)。分析繪圖處理器硬體之此些硬體元件分別對應之負載分值與此些參考繪圖參數之相對關係。
根據本揭露之一實施例,提出一種繪圖處理程序之分析系統。繪圖處理程序之分析系統包括一參數擷取單元、一分組單元、一歸類單元(classifier)及一相對資訊單元。參數擷取單元對數個參考繪圖程式個別分析出數個參考繪圖參數,各該參考繪圖程式之該些參考繪圖參數組成一參考繪圖參數集合。分組單元係以一探測電路對一繪圖處理器硬體量測出此些參考繪圖程式相對應的數個負載分值及數個負載總值,各個負載分值對應於此些參考繪圖程式及繪圖處理器硬體之數個硬體元件,並建立出各個參考繪圖程式對應於各個硬體元件之一加權係數,以依據此些負載總值及此些加權係數將此些參考繪圖程式分類為數個群組(group)。歸類單元係將此些參考繪圖參數集合作為數個輸入,並將此些群組作為數個輸出,找出此些輸入與此些輸出之一映射函數,以訓練出此些參考繪圖程式對應於此些群組之一歸類關係(classifying relationship)。相對資訊單元分析繪圖處理器硬體之此些硬體元件分別對應之負載分值與此些參考繪圖參數之相對關係(relative relationship)。
為了對本揭露之上述及其他方面有更佳的瞭解,下
文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
100、100A、100B‧‧‧繪圖處理程序之分析系統
110‧‧‧參數擷取單元
120‧‧‧分組單元
130‧‧‧歸類單元
131‧‧‧訓練歸類單元
140‧‧‧相對資訊單元
150‧‧‧計算單元
900‧‧‧繪圖處理器硬體
CR‧‧‧歸類關係
LR‧‧‧相對關係
Ri、Rn,i‧‧‧參考繪圖參數
Ri’‧‧‧待估算繪圖參數
RPn‧‧‧參考繪圖程式
RP’‧‧‧待估算繪圖程式
S110、S120、S121、S122、S123、S124、S125、S126、S127、S128、S130、S131、S132、S133、S134、S135、S136、S137、S140、S210、S220、S230‧‧‧流程步驟
α j,i‧‧‧斜率係數
β j‧‧‧平移係數
Pj、Pn,j、Pj’‧‧‧負載分值
PT、PT’、PTn‧‧‧負載總值
Wk,j、Wk’,j‧‧‧加權係數
第1圖繪示繪圖處理程序之分析系統示意圖。
第2A圖繪示另一繪圖處理程序之分析系統示意圖。
第2B圖繪示另一繪圖處理程序之分析系統示意圖。
第3圖繪示負載總值的估算模型的示意圖。
第4圖繪示繪圖處理程序之分析方法於離線模式之流程圖。
第5A~5C圖繪示第4圖之各步驟的示意圖。
第6圖繪示繪圖處理程序之分析方法於線上模式之流程圖。
第7圖繪示第6圖之各步驟的示意圖。
請參照第1圖,其繪示繪圖處理程序之分析系統100之示意圖。繪圖處理程序之分析系統100對各種繪圖程式進行分析,以估算出一繪圖處理器硬體(Graphics Processing Unit,GPU)900(繪示於第5A圖)執行各種繪圖程式所需之處理負載。繪圖處理器硬體900例如是OpenGL ES 2.0 API為基礎的嵌入式繪圖處理器硬體(Embedded GPU),此繪圖處理器硬體常用於可攜式裝置的磚牆式延緩描繪(Tile-Based Deferred Rendering,TBDR)繪圖處理器硬體架構。繪圖處理器硬體900又例如是DirectX。處理負載例如是處理功耗或處理時間。如此一來,程式開發者能
夠針對高處理負載的繪圖程式進行改善。
繪圖處理程序之分析系統100包括一參數擷取單元110、一分組單元120、一歸類單元130、一相對資訊單元140及一計算單元150。繪圖處理程序之分析系統100在離線模式(offline mode)時,參數擷取單元110、分組單元120、歸類單元130及相對資訊單元140根據數個參考繪圖應用程式建立一估算模型。繪圖處理程序之分析系統100在線上模式(online mode)時,參數擷取單元110、歸類單元130、相對資訊單元140及計算單元150根據上述估算模型對一待估算繪圖程式進行估算,以獲得繪圖處理器硬體900(繪示於第5A圖)執行此待估算繪圖程式之負載總值。
請參照第2A圖,其繪示另一繪圖處理程序之分析系統100A之示意圖。在一實施例中,繪圖處理程序之分析系統100A可以僅執行離線模式的工作,而僅包括參數擷取單元110、分組單元120、歸類單元130及相對資訊單元140。請參照第2B圖,其繪示另一繪圖處理程序之分析系統100B之示意圖。在另一實施例中,繪圖處理程序之分析系統100B可以僅執行線上模式的工作,而僅包括參數擷取單元110、歸類單元130、相對資訊單元140及計算單元150。
參數擷取單元110、分組單元120、歸類單元130、相對資訊單元140及計算單元150例如分別是或組合成一晶片、一電路、一電路板、或儲存數組程式碼之記錄媒體。
請參照第3圖,其繪示負載總值PT的估算模型的示意圖。負載總值PT例如是處理功耗或處理時間。以磚牆式延緩描繪(TBDR)繪圖處理器硬體架構為例,繪圖處理器硬體900包括J個硬體元件,例如是虛擬驅動管理器(Virtual Drive Manager,VDM)、PDM元件、通用可擴展著色引擎(Universal Scalable Shader Engine,USSE)、拼貼共處理器(tiling coprocessor)、畫素共處理器(pixel coprocessor)、紋理共處理器(texturing coprocessor)、紋理快取記憶體(texture cache)、主記憶體(main memory)。
請參照下表一,其表示參考繪圖程式之參考繪圖參數與繪圖處理器硬體900之各項硬體元件之關係。參考繪圖參數可至少包括一般參數(general parameter)、幾何相關參數(geometry parameter)、像素相關參數(fragment parameter)、貼圖相關參數(texture parameter)。
一般參數包括幀速率(frame rate)。幾何參數可至少包括頂點數目(number of triangles/number of vertices)、批數(number of batches)、照光模式(lighting model)、細節的級別
(level-of-detail)、原始組合形式(primitive assembly type)、交錯的屬性(interleaving attributes)、實例(instancing)。分割參數包括解析度(resolution)、剪裁測試/板緩衝(scissor test/stencil buffer)、阿爾發測試(alpha test)、抗鋸齒(anti-aliasing)。紋理參數包括紋裡元素數量(number of texels)、紋理貼圖(texture mapping)、紋理過濾(texture filtering)、紋理壓縮(texture compression)、POT/NPOT。
表一中的「X」表示對應的參考繪圖參數與硬體元件具有高度相關性。如下式(2)所示,各個負載分值Pj與I個參考繪圖參數Ri,(1iI)具有一相對關係,後續以線性關係為例說明。下標i表示第i個參考繪圖參數。
也就是說,上式(1)可以轉換為下式(3),下述式(3)即為負載總值PT的估算模型。
如第3圖所示,根據上述負載總值PT的估算模型,欲估算某一待估算繪圖程式之負載總值PT’時,可以擷取出待估算繪圖參數Ri’,(1iI)。依據待估算繪圖參數Ri’,(1iI),配合相對資訊單元140所事先訓練出來之斜率係數α j,i(1jJ且1iI)及平移係數β j,(1jJ),以計算出負載分值Pj’,(1jJ)。再依據估算繪圖參數Ri’,(1iI),歸類出此待估算繪圖程式所屬的群組後(例如是第k’群組),可以得知此群組之加權係數Wk’,j,(1jJ),並求出負載總值PT’。
請參照第4及5A~5C圖,第4圖繪示繪圖處理程序之分析方法於離線模式之流程圖,第5A~5C圖繪示第4圖之各步驟的示意圖。繪圖處理程序之分析方法於離線模式中,可以
將數個參考繪圖程式分為K個群組,並建立出各群組之繪圖處理器硬體900的負載總值PT的估算模型。以下係以繪圖處理程序之分析系統100B分析處理功耗為例作說明。在步驟S110中,提供數個參考繪圖程式RPn,(1nN),並透過參數擷取單元110對此些參考繪圖程式RPn,(1nN)個別分析出數個參考繪圖參數Rn,i,(1nN且1iI)。此步驟是當參考繪圖程式運行於繪圖處理器硬體900時,將繪圖程式執行過程中每次呼叫繪圖API的動作及所帶的參數記錄成一個追蹤檔(API Trace),並透過事後的分析以擷取出可用來進行負載估算的參考繪圖參數Rn,i,(1nN且1iI)。
在步驟S120中,分組單元120將此些參考繪圖程式RPn,(1nN)分類為數個群組(例如是K個群組)。在此步驟中,群組的數量可以預先決定。對每個參考繪圖程式RPn,(1nN)而言,當其運行於繪圖處理器硬體900時,可藉由額外添加的探測電路來進行負載分析,以量測出其相對應的負載分值Pn,j,(1nN且1jJ),負載總值PTn,(1nN),並建立出其對應的各硬體元件之加權係數Wn,j,(1nN且1jJ),此即為各硬體元件對整體負載的貢獻比率值。再使用各種分群演算法,例如可以是K平均演算法(K-means algorithm)來進行分組,其中分群演算法的輸入值主要有(1)預建立的群組個數K、(2)負載總值PTn,(1nN)、(3)加權係數Wn,j,(1nN且1jJ);而輸出則為(1)K個群組中各自包含的參考繪圖程式集合,在此稱為群組配
置、(2)K個群組中各自對應的各硬體元件之加權係數Wk,j,(1kK且1jJ),在此稱為加權係數集合。其概念在於將參考繪圖程式RPn,(1nN)之加權係數Wn,j,(1nN且1jJ)對應於負載總值PTn之成長趨勢近似者劃歸為同一個群組,並平均出各群組之加權係數Wk,j,(1kK且1jJ);這樣作的物理意義在於將各硬體元件使用率近似的參考繪圖程式劃歸為同一個群組,並計算出此群組的加權係數,因此之後於線上模式進行負載估算時就可以根據待估算繪圖程式之特性對其進行歸類,以動態選用其對應群組之加權係數Wk’,j,(1jJ)來進行負載估算,使其適應繪圖處理器硬體900中各硬體元件的負載不平衡情況,進一步提高負載估算的準確度。舉例來說,30個參考繪圖程式RPn,(1nN)中,第1~10個參考繪圖程式RPn(1n10)之加權係數Wn,j,(1n10且1jJ)對應於負載總值PTn之成長趨勢相近,而被歸類為同一群組,並平均出第一群組之加權係數W1,j,(1jJ)(未繪示);第11~30個參考繪圖程式RPn,(11n30)之加權係數Wn,j,(11n30且1jJ)對應於負載總值PTn之成長趨勢相近,而被歸類為同一群組,並平均出第二群組之加權係數W2,j,(1jJ)(未繪示)。分群演算法另外又可以為例如:最大期望演算法(Expectation-maximization algorithm)、高連通子圖分群演算法(Highly Connected Subgraphs clustering algorithm)、基於連通性分群法/層次聚類法(Connectivity based clustering/hierarchical clustering)等。
分組單元120詳細的實現方式如第5B圖繪示之流程圖所述。為了將此些參考繪圖程式RPn,(1nN)分類為K個群組,首先在步驟S121會將各參考繪圖程式之負載總值PTn,(1nN)及加權係數Wn,j,(1nN且1jJ)視為每個具有D維向量的資料點;接著在步驟S122提供預建立的群組個數,並在步驟S123根據預建立的群組個數K,從上述資料點之集合中隨機取K個點,以作為K個群組各自暫時的中心點;之後在步驟S124分別計算剩下的資料點至K個群組暫時的中心點之相異度,並將各資料點劃歸到相異度最低的群組。相異度一般用歐式距離或馬式距離來運算,距離越小則表示兩者之間越相似;再來在步驟S125根據分類結果重新計算K個群組各自的中心點,計算方法是取各群組中所有資料點各自維度的算術平均數;如果K個群組之中心點產生變化(步驟S126的結果為否),則在步驟S127需要將所有資料點再按照新的K個群組中心點重新分類,其方法同樣是計算所有資料點至新的K個群組中心點之相異度,並將各資料點劃歸到相異度最低的群組;再根據分類結果重新計算K個群組各自的中心點;如果此時K個群組之中心點保持不變(步驟S126的結果為是),則代表分類結果已經穩定不變,所以可以在步驟S128結束此疊代方法,以完成K個群組之分類。此時K個群組中各自包含的資料點即表示K個群組中各自包含的參考繪圖程式集合(群組配置);而K個群組各自的中心點即表示K個群組中各自對應的各硬體元件之加權係數Wk,j,(1kK且1jJ)。
完成分組後,再來要對已分組的參考繪圖程式RPn,(1nN)進行分析。在步驟S130中,訓練歸類單元131的動作依據此些參考繪圖參數Rn,i,(1nN且1iI),訓練出此些參考繪圖程式對應於此些群組之一歸類關係(classifying relationship)CR。此步驟是根據機器學習演算法(Machine Learning Algorithm)來執行,例如是一人工神經網路(artificial neural network algorithm,ANN algorithm)或一支持向量機演算法(Support Vector Machine algorithm,SVM algorithm)來進行訓練,其中機器學習演算法的輸入值主要有(1)分組單元120所產生之K個群組中各自包含的參考繪圖程式集合(群組配置)、(2)參數擷取單元110對此些參考繪圖程式RPn,(1nN)進行個別分析後所擷取出的數個參考繪圖參數Rn,i,(1nN且1iI);而輸出則為訓練完成之可藉由繪圖參數來預測對應群組的歸類單元130。由於作完參考繪圖程式RPn,(1nN)之分組後,各參考繪圖程式是對應於哪個群組的這層關係是已知的,因此可以藉由這層關係來進行歸類單元130的訓練;之後於線上模式進行負載估算時就可以藉由待估算繪圖程式之參數來預測對應群組,並選用其對應群組之加權係數Wk’,j,(1jJ)來進行負載估算。另外,此步驟並非依據硬體元件中細部的硬體訊號或資訊來訓練,而是依據參考繪圖程式RPn,(1nN)之參考繪圖參數Rn.i,(1nN且1iI)進行訓練。也就是說,後續於線上模式欲判斷待估算繪圖程式RP’(繪示於第7圖)屬於哪一群組時,可以不分析硬體
元件,而是依據待估算繪圖程式RP’之待估算繪圖參數Ri’,(1iI)(繪示於第7圖)即可,以減少和繪圖處理器硬體900的相依性。舉例來說,分組單元120作完參考繪圖程式RPn,(1nN)之分組後,我們即可以知道各個參考繪圖程式RPn,(1nN)是對應於K個群組,(1kK)中的某一個群組,如第1個參考繪圖程式RP1是對應於群組K-1,第2個參考繪圖程式RP2是對應於群組K-2,依此類推。而各個參考繪圖程式RPn,(1nN)也會經由參數擷取單元110擷取出I個參考繪圖參數Rn,i,(1nN且1iI),形成一組特定的參考繪圖參數集合;如第1個參考繪圖程式RP1會有對應的參考繪圖參數集合R1,i,(1iI),第2個參考繪圖程式RP2也會有對應的參考繪圖參數集合R2,i,(1iI),依此類推。因此有了各個參考繪圖程式RPn,(1nN)是對應於K個群組,(1kK)中的某一個群組這層關係,我們就可以藉由參考繪圖程式RPn,(1nN)對應的參考繪圖參數集合Rn,i,(1nN且1iI),及其對應的群組編號,訓練出如何由參考繪圖參數映射到群組,而這也等於在訓練如何將參考繪圖程式映射到群組,以完成訓練歸類單元131的動作。
訓練歸類單元131詳細的實現方式如第5C圖繪示之流程圖所述。首先在步驟S131將各參考繪圖程式RPn,(1nN)之數個參考繪圖參數Rn,i,(1nN且1iI)視為輸入特徵x(n),將各參考繪圖程式對應的群組編號視為目標變數y(n);接著在步驟S132將一個x(n)與y(n)配對成為一組訓練範例(x(n),y(n)),此
即為各參考繪圖程式對應於此些群組之歸類關係,而這層已知的關係也是後續步驟的訓練依據;之後在步驟S133將所有訓練範例結合成訓練集合{(x(n),y(n)):n=1,…,N},以成為歸類單元130的訓練資料庫;再來在步驟S134透過監督式訓練(Supervised training),隨機從訓練集合中取出樣本來進行訓練,以找出一個可以由x映射到y的函數,使此映射函數可以藉由x來預測y;然後在步驟S135評估映射函數之預測誤差是否小於臨界值(Threshold),如果映射函數之預測誤差仍然過大,則需在步驟S136新增更多的訓練範例(x(n),y(n))再使用新的訓練集合重新進行監督式訓練,以產生出新的映射函數;最後如果映射函數之預測誤差小於臨界值,則代表訓練結果已經穩定,而在步驟S137完成歸類單元130之訓練;而所產生的歸類單元130已具備可藉由繪圖參數來預測對應群組之能力。
在一實施例,在步驟S140,相對資訊單元140分析負載分值Pn,j,(1nN且1jJ)與參考繪圖參數Rn,i,(1nN且1iI)之相對關係,例如線性關係(linear relationship)LR,而完成相對關係訓練分析後可獲得斜率係數α j,i,(1jJ且1iI)及平移係數β j,(1jJ);因此之後於線上模式時就可以藉由待估算繪圖程式之參數,配合訓練完成之斜率係數α j,i,(1jJ且1iI)及平移係數β j,(1jJ)來進行負載分值的估算。相對關係除了前述舉例之線性關係,另外又如:正交多項式回歸(Polynomial regression)、羅吉斯迴歸(Logarithmic regression)、
指數迴歸(Exponential regression)等關係。
上述步驟S140可執行於步驟S120~S130之前,或者同時進行。步驟S140與步驟S120~S130並不會互相干擾。
請參照第6~7圖,第6圖繪示繪圖處理程序之分析方法於線上模式之流程圖,第7圖繪示第6圖之各步驟的示意圖。繪圖處理程序之分析方法於線上模式中,可以分析出待估算繪圖程式RP’屬於哪一群組,並依據估算模型計算出繪圖處理器硬體900的負載總值PT’。在步驟S210中,提供待估算繪圖程式RP’,並且經由參數擷取單元110獲得此待估算繪圖程式RP’之待估算繪圖參數Ri’,(1iI)。
在步驟S220中,歸類單元130依據待估算繪圖參數Ri’,(1iI),分析出待估算繪圖程式屬於哪一群組(例如是第k’群組),並從離線模式中分組單元120所輸出之加權係數集合,挑選出其對應群組的各硬體元件之加權係數Wk’,j,(1jJ)。因此歸類單元130的輸入是待估算繪圖參數Ri’,(1iI),而其輸出為此待估算繪圖程式RP’所對應群組之加權係數Wk’,j,(1jJ)。另外歸類單元130在對待估算繪圖程式進行歸類時,其可以選擇最接近的群組或是多個接近的群組。如果是選擇最接近的群組,則輸出此群組對應之加權係數;如果是選擇多個接近的群組,則根據待估算繪圖程式與這多個接近群組的接近關係來對這些群組對應的加權係數進行線性內插,以計算出一組新的加權係數並輸出。
在步驟S230中,計算單元150依據歸類單元130所輸出之加權係數Wk’,j,(1jJ)、待估算繪圖參數Ri’,(1iI)、以及於離線模式中相對資訊單元140所輸出之可藉由繪圖參數來預測負載分值的斜率係數α j,i,(1jJ且1iI)及平移係數β j,(1jJ),以上述式(3)之估算模型,計算繪圖處理器硬體900執行待估算繪圖程式RP’之負載總值PT’。
於一實施例中,上述所採用之相對關係,是依據於離線模式時訓練分析所得。
於一實施例中,繪圖處理器硬體900所包括之複數個硬體元件以其各對應之負載分值執行該待估算繪圖程式。
根據上述實施例,本案是藉由分析程式原始碼或API追蹤檔(API Trace)獲得的繪圖參數,來預估其於繪圖處理器硬體900上執行時的負載總值,是一種較貼近於繪圖程式開發者的繪圖處理器硬體900之負載總值的估算方式。如此一來,能夠讓程式開發者快速察覺到負載瓶頸是落於程式碼的哪一段並進行改善。這些繪圖參數可以不需實際存取硬體元件(或硬體模擬器)來獲得,且不相依於繪圖處理器硬體900的硬體架構,因此上述估算模型可以移轉至各種不同的繪圖處理器硬體900的硬體架構,針對每一種硬體架構,重新進行一次估算模型之離線模式的訓練即可,提供了相當大的彈性與擴充性。
此外,上述估算模型可以根據待估算繪圖程式之特性,動態選用最合適的加權係數,以適應繪圖處理器硬體900中
各硬體元件與繪圖管線的負載不平衡情況,進一步提高負載估算的準確度。
綜上所述,雖然本揭露已以各種實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
S110、S120、S130、S140‧‧‧流程步驟
Claims (16)
- 一種繪圖處理程序之分析方法,包括:提供複數個參考繪圖程式及各該參考繪圖程式之複數個參考繪圖參數,各該參考繪圖程式之該些參考繪圖參數組成一參考繪圖參數集合;以一探測電路對一繪圖處理器硬體量測出該些參考繪圖程式相對應的複數個負載分值及複數個負載總值,各該負載分值對應於該些參考繪圖程式及該繪圖處理器硬體之複數個硬體元件,並建立出各該參考繪圖程式對應於各該硬體元件之一加權係數,以依據該些負載總值及該些加權係數將該些參考繪圖程式分類為複數個群組(group);將該些參考繪圖參數集合作為複數個輸入,並將該些群組作為複數個輸出,找出該些輸入與該些輸出之一映射函數,以訓練出該些參考繪圖程式對應於該些群組之一歸類關係(classifying relationship);以及分析該繪圖處理器硬體之該些硬體元件分別對應之該負載分值與該些參考繪圖參數之一相對關係。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中將該些參考繪圖程式分類為該些群組之步驟包括:將各該參考繪圖程式之該負載總值及該些加權係數視為各個具有D維向量的一資料點;根據該些群組之個數,從該些資料點之集合中隨機取複數 個,以作為該些群組之複數個中心點;分別計算各該群組之其他資料點至各該中心點之相異度,並將各該資料點劃歸到相異度最低之該些群組之其中之一;重新計算各該群組之各該中心點;以及若該些群組之該些中心點產生變化,則再次執行將各該資料點規劃歸到該些群組之其中之一的步驟。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中將該些參考繪圖程式分類為該些群組之步驟係透過K平均演算法(K-means algorithm)、最大期望演算法(Expectation-maximization algorithm)、高連通子圖分群演算法(Highly Connected Subgraphs clustering algorithm)或基於連通性分群法/層次聚類法(Connectivity based clustering/hierarchical clustering)進行。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中訓練出該些參考繪圖程式對應於該些群組之該歸類關係之步驟包括:將各該參考繪圖參數集合視為該些輸入之其中之一,並將各該參考繪圖程式對應的該些群組之其中之一視為該些輸出之其中一;將該些輸入之其中之一與該些輸出之其中之一配對成為一組訓練範例;將該些訓練範例結合成一訓練集合,以成為一訓練資料庫; 透過一監督式訓練,隨機從該訓練集合中取出樣本來進行訓練,以找出由該些輸入映射到該些輸出的該映射函數;評估該映射函數之一預測誤差是否小於一臨界值;以及若該映射函數之該預測誤差大於該臨界值,則新增該些訓練範例,並執行將該些訓練範例結合成該訓練集合之步驟及找出由該些輸入映射到該些輸出的該映射函數之步驟。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中訓練出該些參考繪圖程式對應於該些群組之該歸類關係之步驟係透過一人工神經網路(artificial neural network algorithm)或一支持向量機演算法(Support Vector Machine algorithm)進行。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,更包括:提供一待估算繪圖程式,並獲得該待估算繪圖程式之複數個待估算繪圖參數;依據該些待估算繪圖參數,分析出該待估算繪圖程式屬於該些群組(group)之至少其中之一,並獲得該些加權係數;以及依據該些加權係數及該些待估算繪圖參數,計算該繪圖處理器硬體執行該待估算繪圖程式之該負載總值。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中,該繪圖處理器硬體之各該硬體元件以各對應之該負載分值執行該待估算繪圖程式,該些硬體元件之該些負載分值以該 些加權係數進行加權總和,而獲得該負載總值。
- 如申請專利範圍第1項所述之繪圖處理程序之分析方法,其中各該負載總值係為一處理功耗或一處理時間。
- 一種繪圖處理程序之分析系統,包括:一參數擷取單元,對複數個參考繪圖程式個別分析出複數個參考繪圖參數,各該參考繪圖程式之該些參考繪圖參數組成一參考繪圖參數集合;一分組單元,係以一探測電路對一繪圖處理器硬體量測出該些參考繪圖程式相對應的複數個負載分值及複數個負載總值,各該負載分值對應於該些參考繪圖程式及該繪圖處理器硬體之複數個硬體元件,並建立出各該參考繪圖程式對應於各該硬體元件之一加權係數,以依據該些負載總值及該些加權係數將該些參考繪圖程式分類為複數個群組(group);以及一歸類單元(classifier),係將該些參考繪圖參數集合作為複數個輸入,並將該些群組作為複數個輸出,找出該些輸入與該些輸出之一映射函數,以訓練出該些參考繪圖程式對應於該些群組之一歸類關係(classifying relationship);以及一相對資訊單元,分析該繪圖處理器硬體之該些硬體元件分別對應之該負載分值與該些參考繪圖參數之一相對關係。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該分組單元係將各該參考繪圖程式之該負載總值及該些加權係數視為各個具有D維向量的一資料點;該分組單元根據該 些群組之個數,從該些資料點之集合中隨機取複數個,以作為該些群組之複數個中心點;該分組單元分別計算各該群組之其他資料點至各該中心點之相異度,並將各該資料點劃歸到相異度最低之該些群組之其中之一;該分組單元重新計算各該群組之各該中心點;若該些群組之該些中心點產生變化,則該分組單元再次將各該資料點規劃歸到該些群組之其中之一。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該分組單元係透過K平均演算法(K-means algorithm)、最大期望演算法(Expectation-maximization algorithm)、高連通子圖分群演算法(Highly Connected Subgraphs clustering algorithm)或基於連通性分群法/層次聚類法(Connectivity based clustering/hierarchical clustering)將該些參考繪圖程式分類為該些群組。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該歸類單元將各該參考繪圖參數集合視為該些輸入之其中一,並將各該參考繪圖程式對應的該些群組之其中之一視為該些輸出之其中一;該歸類單元將該些輸入之其中一與該些輸出之其中之一配對成為一組訓練範例;該歸類單元將該些訓練範例結合成一訓練集合,以成為一訓練資料庫;該歸類單元透過一監督式訓練,隨機從該訓練集合中取出樣本來進行訓練,以找出由該些輸入映射到該些輸出的該映射函數;該歸類單元評估該映射函數之一預測誤差是否小於一臨界值;若該映射函數之該預測誤差 大於該臨界值,則該歸類單元新增該些訓練範例,並再次將該些訓練範例結合成該訓練集合及再次找出由該些輸入映射到該些輸出的該映射函數。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該歸類單元係透過一人工神經網路(artificial neural network algorithm)或一支持向量機演算法(Support Vector Machine algorithm)訓練出該些參考繪圖程式對應於該些群組之該歸類關係。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該參數擷取單元更對一待估算繪圖程式分析出複數個待估算繪圖參數,該歸類單元更依據該些待估算繪圖參數分析出該待估算繪圖程式屬於複數個群組(group)之至少其中之一,並獲得複數個加權係數,該繪圖處理程序之分析系統更包括:一計算單元,係依據該些加權係數及該些待估算繪圖參數,計算該繪圖處理器硬體執行該待估算繪圖程式之該負載總值。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中該繪圖處理器硬體之各該硬體元件以各對應之該負載分值執行該待估算繪圖程式,該些硬體元件之該些負載分值以該些加權係數進行加權總和,而獲得該負載總值。
- 如申請專利範圍第9項所述之繪圖處理程序之分析系統,其中各該負載總值係為一處理功耗或一處理時間。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??104137577 | 2015-11-13 | ||
TW104137577 | 2015-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201717013A TW201717013A (zh) | 2017-05-16 |
TWI613545B true TWI613545B (zh) | 2018-02-01 |
Family
ID=58692014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105132243A TWI613545B (zh) | 2015-11-13 | 2016-10-05 | 繪圖處理程序之分析方法與分析系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9953393B2 (zh) |
CN (1) | CN106708499B (zh) |
TW (1) | TWI613545B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800790B (zh) * | 2020-06-19 | 2021-02-02 | 安徽省信盾科技有限公司 | 基于云计算和5g互联的信息解析方法及人机协同云平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050603A1 (en) * | 2002-08-07 | 2007-03-01 | Martin Vorbach | Data processing method and device |
US20090002379A1 (en) * | 2007-06-30 | 2009-01-01 | Microsoft Corporation | Video decoding implementations for a graphics processing unit |
US20100153654A1 (en) * | 2002-08-07 | 2010-06-17 | Martin Vorbach | Data processing method and device |
US20100211933A1 (en) * | 2009-02-19 | 2010-08-19 | Nvidia Corporation | Debugging and perfomance analysis of applications |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100959470B1 (ko) | 2002-03-22 | 2010-05-25 | 마이클 에프. 디어링 | 확장가능한 고성능 3d 그래픽 |
US7362892B2 (en) * | 2003-07-02 | 2008-04-22 | Lockheed Martin Corporation | Self-optimizing classifier |
GB2406184B (en) | 2003-09-17 | 2006-03-15 | Advanced Risc Mach Ltd | Data processing system |
US7418606B2 (en) | 2003-09-18 | 2008-08-26 | Nvidia Corporation | High quality and high performance three-dimensional graphics architecture for portable handheld devices |
US7567252B2 (en) * | 2003-12-09 | 2009-07-28 | Microsoft Corporation | Optimizing performance of a graphics processing unit for efficient execution of general matrix operations |
US20060080076A1 (en) | 2004-10-12 | 2006-04-13 | Nec Laboratories America, Inc. | System-level power estimation using heteregeneous power models |
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
US7868893B2 (en) * | 2006-03-07 | 2011-01-11 | Graphics Properties Holdings, Inc. | Integration of graphical application content into the graphical scene of another application |
US7549069B2 (en) | 2006-03-15 | 2009-06-16 | Fujitsu Limited | Estimating software power consumption |
US8436864B2 (en) * | 2006-08-01 | 2013-05-07 | Nvidia Corporation | Method and user interface for enhanced graphical operation organization |
US8199158B2 (en) | 2008-06-11 | 2012-06-12 | Intel Corporation | Performance allocation method and apparatus |
US8180604B2 (en) * | 2008-09-30 | 2012-05-15 | Hewlett-Packard Development Company, L.P. | Optimizing a prediction of resource usage of multiple applications in a virtual environment |
US20130127858A1 (en) * | 2009-05-29 | 2013-05-23 | Luc Leroy | Interception of Graphics API Calls for Optimization of Rendering |
US20110016455A1 (en) | 2009-07-20 | 2011-01-20 | Glenn Perry | Power Profiling for Embedded System Design |
US8645732B2 (en) | 2010-02-19 | 2014-02-04 | Qualcomm, Incorporated | Protocol stack power optimization for wireless communications devices |
US8803892B2 (en) * | 2010-06-10 | 2014-08-12 | Otoy, Inc. | Allocation of GPU resources across multiple clients |
US8643656B2 (en) | 2010-09-30 | 2014-02-04 | Nec Laboratories America, Inc. | Energy-aware task consolidation on graphics processing unit (GPU) |
US8527239B2 (en) | 2010-10-01 | 2013-09-03 | Apple Inc. | Automatic detection of performance bottlenecks in a graphics system |
US8620985B2 (en) * | 2010-10-14 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Method, system, and product for performing uniformly fine-grain data parallel computing |
US8650428B2 (en) | 2011-07-19 | 2014-02-11 | Ati Technologies Ulc | Dynamic weight calculation in a digital power estimation and management system |
CN103092837A (zh) * | 2011-10-28 | 2013-05-08 | 鸿富锦精密工业(深圳)有限公司 | 量测图形文件解析系统及方法 |
US9141166B2 (en) | 2011-12-13 | 2015-09-22 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains |
CN106909444B (zh) | 2011-12-22 | 2021-01-12 | 英特尔公司 | 用于指定应用线程性能状态的指令的指令处理装置及相关方法 |
US9135741B2 (en) * | 2012-01-23 | 2015-09-15 | Nec Laboratories America, Inc. | Interference-driven resource management for GPU-based heterogeneous clusters |
US20130211752A1 (en) | 2012-02-14 | 2013-08-15 | Wayne State University | Software power analysis |
CN103294716B (zh) * | 2012-02-29 | 2016-08-10 | 佳能株式会社 | 用于分类器的在线半监督学习方法和装置及处理设备 |
US20140082383A1 (en) | 2012-09-20 | 2014-03-20 | Apple Inc. | Predicting user intent and future interaction from application activities |
CN103778267B (zh) * | 2012-10-19 | 2017-03-29 | 英业达科技有限公司 | 计算机绘图的公差检测系统及其方法 |
US9195291B2 (en) | 2013-06-21 | 2015-11-24 | Apple Inc. | Digital power estimator to control processor power consumption |
US10084869B2 (en) | 2013-10-04 | 2018-09-25 | Verto Analytics Oy | Metering user behaviour and engagement with user interface in terminal devices |
CN103645908B (zh) * | 2013-12-29 | 2016-09-14 | 中国科学院软件研究所 | 网构软件全生命周期开发实现系统 |
US9715663B2 (en) * | 2014-05-01 | 2017-07-25 | International Business Machines Corporation | Predicting application performance on hardware accelerators |
KR101927233B1 (ko) * | 2015-03-16 | 2018-12-12 | 한국전자통신연구원 | 이기종 멀티-코어 시스템의 gpu 전력 측정 방법 |
US9747659B2 (en) * | 2015-06-07 | 2017-08-29 | Apple Inc. | Starvation free scheduling of prioritized workloads on the GPU |
-
2015
- 2015-12-07 CN CN201510888257.XA patent/CN106708499B/zh active Active
- 2015-12-29 US US14/983,494 patent/US9953393B2/en active Active
-
2016
- 2016-10-05 TW TW105132243A patent/TWI613545B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050603A1 (en) * | 2002-08-07 | 2007-03-01 | Martin Vorbach | Data processing method and device |
US20100153654A1 (en) * | 2002-08-07 | 2010-06-17 | Martin Vorbach | Data processing method and device |
US20090002379A1 (en) * | 2007-06-30 | 2009-01-01 | Microsoft Corporation | Video decoding implementations for a graphics processing unit |
US20100211933A1 (en) * | 2009-02-19 | 2010-08-19 | Nvidia Corporation | Debugging and perfomance analysis of applications |
Also Published As
Publication number | Publication date |
---|---|
CN106708499B (zh) | 2020-10-27 |
US20170140495A1 (en) | 2017-05-18 |
TW201717013A (zh) | 2017-05-16 |
US9953393B2 (en) | 2018-04-24 |
CN106708499A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sahu et al. | A lightweight multi-section CNN for lung nodule classification and malignancy estimation | |
Parker et al. | Accelerating fuzzy-c means using an estimated subsample size | |
CN114401666A (zh) | 基于深度学习的3d点云的对象检测和实例分割 | |
Le et al. | Interactive boundary prediction for object selection | |
CN105765609B (zh) | 使用有向无环图的存储器促进 | |
US20180260531A1 (en) | Training random decision trees for sensor data processing | |
KR101618996B1 (ko) | 호모그래피를 추정하기 위한 샘플링 방법 및 영상 처리 장치 | |
CN112329871B (zh) | 一种基于自校正卷积与通道注意力机制的肺结节检测方法 | |
CN111914728A (zh) | 高光谱遥感影像半监督分类方法、装置及存储介质 | |
Uddin | Addressing accuracy paradox using enhanched weighted performance metric in machine learning | |
CN103559205A (zh) | 基于MapReduce的并行特征选择方法 | |
Lin et al. | Hypergraph optimization for multi-structural geometric model fitting | |
WO2022100607A1 (zh) | 一种神经网络结构确定方法及其装置 | |
CN113096080B (zh) | 图像分析方法及系统 | |
TWI613545B (zh) | 繪圖處理程序之分析方法與分析系統 | |
Lechner et al. | Blackthorn: latency estimation framework for CNNs on embedded Nvidia platforms | |
JP2022079947A (ja) | プルーニング管理装置、プルーニング管理システム及びプルーニング管理方法 | |
US20160203637A1 (en) | Method and apparatus for consistent segmentation of 3d models | |
CN116977271A (zh) | 缺陷检测方法、模型训练方法、装置及电子设备 | |
CN111028249A (zh) | 一种基于深度学习的服装图像分割方法 | |
CN112860531B (zh) | 基于深度异构图神经网络的区块链广泛共识性能评测方法 | |
CN115599873A (zh) | 基于人工智能物联网的数据采集方法、系统及云平台 | |
CN111368120B (zh) | 目标指纹库构建方法、装置、电子设备及存储介质 | |
Li et al. | PC-OPT: A SfM point cloud denoising algorithm | |
US20230177116A1 (en) | Neural network synthesizer |