TW201407537A - 執行圖形上色的系統、方法和電腦程式產品 - Google Patents

執行圖形上色的系統、方法和電腦程式產品 Download PDF

Info

Publication number
TW201407537A
TW201407537A TW102115412A TW102115412A TW201407537A TW 201407537 A TW201407537 A TW 201407537A TW 102115412 A TW102115412 A TW 102115412A TW 102115412 A TW102115412 A TW 102115412A TW 201407537 A TW201407537 A TW 201407537A
Authority
TW
Taiwan
Prior art keywords
vertices
vertex
assigned
classification
graph
Prior art date
Application number
TW102115412A
Other languages
English (en)
Other versions
TWI534754B (zh
Inventor
Jonathan Michael Cohen
William N Bell
Michael J Garland
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of TW201407537A publication Critical patent/TW201407537A/zh
Application granted granted Critical
Publication of TWI534754B publication Critical patent/TWI534754B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提供執行圖形上色的系統、方法和電腦程式產品。在使用中會辨識具有複數頂點的圖形。除此之外,圖形的該等複數頂點還會被分類,其中,該等複數頂點的分類會被最佳化。

Description

執行圖形上色的系統、方法和電腦程式產品
本發明關於圖形上的計算獨立集,且更明確地說,關於圖形上色。
藉由計算獨立集執行圖形上色係有價值的決策實務。舉例來說,圖形上色可讓平行演算法用來找尋資料中的平行性。然而,藉由計算獨立集來執行圖形上色的目前技術卻有各種限制。
舉例來說,藉由計算獨立集來執行圖形上色的目前施行方式已呈現各種效率不彰的情形,當利用此等方法來分析的資料集的大小增加時效率可能更差。再者,當在平行計算裝置上執行時,目前的施行方式可能沒有效率。因此,需要解決和先前技術相關聯的此等及/或其它問題。
本發明提供執行圖形上色的系統、方法和電腦程式產品。在使用中會辨識具有複數頂點的圖形。除此之外,圖形的該等複數頂點還會被分類,其中,該等複數頂點的分類會被最佳化。該分類通常稱為「上色(coloring)」。
600‧‧‧系統
601‧‧‧主處理器
602‧‧‧通訊匯流排
604‧‧‧主記憶體
606‧‧‧圖形處理器
608‧‧‧顯示器
610‧‧‧次要儲存體
第一圖所示的係根據一具體實施例,用以執行圖形上色的方法。
第二圖所示的係根據另一具體實施例,利用雜湊在圖形上色期間計算隨機數值的方法。
第三圖所示的係根據又一具體實施例,在圖形上色期間計算局部最大值與最小值的方法。
第四圖所示的係根據又一具體實施例,在分類期間移除複數頂點中一或更多數不予考慮的方法。
第五圖所示的係根據又一具體實施例,在分類期間壓縮圖形的方法。
第六圖所示的係可以施行各種先前具體實施例之各種架構及/或功能的示範性系統。
第一圖所示的係根據一具體實施例,用以執行圖形上色的方法100。如操作102中所示,具有複數頂點的圖形會被辨識。於其中一具體實施例中,該圖形可能包含該等複數頂點的表示符,其中,該等複數頂點中的每一個頂點會藉由一或更多數連結線(舉例來說,邊緣、...等)被連接至其它頂點中的一或更多數。於另一具體實施例中,該等複數頂點(舉例來說,節點、...等)中的每一者可能代表一不同的物件(舉例來說,資料元素、...等),俾便該圖形的該等複數頂點代表一物件集。於又一具體實施例中,該圖形的每一條連結線可能代表被該連結線直接連接之頂點之間的關聯性。舉例來說,被連結線直接連接的兩個頂點可以分享相依性、競奪、...等。
除此之外,如操作104中所示,該圖形的該等複數頂點會被分類,其中,該等複數頂點的分類會被最佳化。於其中一具體實施例中,分類該等複數頂點可能包含指派一隨機數給圖形中的每一個頂點。舉例來說,介於零與一之間的隨機數可被產生並指派給該等複數頂點中的每一者。於另一具體實施例中,分類該等複數頂點可能包含修正已指派給每一個頂點的隨機數(舉例來說,透過數學運算、...等)。
進一步言之,於其中一具體實施例中,分類該等複數頂點可能包含比較每一個頂點之已指派數和該頂點之每一個相鄰頂點的已指派數。舉例來說,單一頂點的相鄰頂點可能包含該圖形裡面藉由單一連結線直接被連接至該單一頂點的所有其它頂點(舉例來說,沒有經由另一頂點被連接至該單一頂點的頂點、...等)。
又進一步言之,於其中一具體實施例中,分類該等複數頂點可能包含判斷單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點 的每一個已指派數。舉例來說,該單一頂點的已指派數可與該單一頂點之每一個相鄰頂點的已指派數作比較,並且可從此等已指派數中決定最大數(舉例來說,局部最大值)。於另一具體實施例中,可能針對圖形中每一個頂點執行單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數的判斷。
此外,於其中一具體實施例中,分類該等複數頂點可能包含判斷單一頂點的已指派數是否小於該單一頂點之每一個相鄰頂點的每一個已指派數。舉例來說,該單一頂點的已指派數可與該單一頂點之每一個相鄰頂點的已指派數作比較,並且可從此等已指派數中決定最小數(舉例來說,局部最小值)。於另一具體實施例中,可能針對圖形中每一個頂點執行單一頂點的已指派數是否小於該單一頂點之每一個相鄰頂點的每一個已指派數的判斷。
於其中一具體實施例中,可透過第二數對每一個頂點的已指派數進行加、減、乘、或是其它運算來修正該已指派數,其中,該第二數相依於該頂點的某些特性或者藉由特定程序選出。判斷該已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數可藉由組合該等第一數與第二數來進行。於另一具體實施例中,該隨機數可能包含一隨機數R並且可由另一數值S增補,形成一對數值(R,S),以便在比較圖形頂點時一起考慮。又,於另一具體實施例中,數值S可從圖形的特性(例如,頂點度)或其特定函數中推知。除此之外,該對數值(R,S)還可合併成單一數值作為最佳數值。(舉例來說,加總該等兩個數值、將R與S的位元儲存在單一整數裡面、...等)。
另外,於其中一具體實施例中,分類該等複數頂點可能包含倘若判定該單一頂點的已指派數大於該單一頂點之每一個相鄰頂點的已指派數的話將該單一頂點加入一獨立集。於另一具體實施例中,已指派數大於它們每一個相鄰頂點之已指派數的圖形中所有頂點皆可被加入該獨立集。依此方式,該獨立集裡面的所有頂點彼此獨立。舉例來說,該獨立集裡面沒有任一頂點可於該圖形裡面直接連接。於另一實施例中,該獨立集裡面的所有頂點彼此不能分享任何相依性或競奪。
此外,於其中一具體實施例中,分類該等複數頂點可能包含標記(舉例來說,上色、...等)獨立集中的所有頂點。舉例來說,獨立集中的每一個頂點可被標記為獨立頂點。於另一範例中,獨立集中的所有頂點可被指派一有限數值集中相同的數值(舉例來說,一有限顏色集中的單一顏色、...等)。
進一步言之,於其中一具體實施例中,分類該等複數頂點可能包含先從圖形中移除獨立集中的頂點並隨後分類圖形中剩餘的頂點。舉例來說,分類該等複數頂點可經由複數迭代操作來執行,其中,在每一次迭代操作期間,所有獨立頂點可被辨識、放在獨立集中、標記、以及從接續迭代操作所分類的圖形中移除。於另一具體實施例中,每一次迭代操作可能和自己的獨立集相關聯,而且每一個獨立集可以不同於其它獨立集的數值(舉例來說,顏色、...等)加以標記,俾使得每一次迭代操作的獨立集含有該次迭代操作的所有獨立頂點。於又一具體實施例中,該等複數頂點中僅一部分可在分類期間被分類。舉例來說,分類該等複數頂點可經由複數迭代操作來執行,其中,當預設數量頂點被分類時、預設數量迭代操作被執行時、...等,分類便可停止。
又進一步言之,於其中一具體實施例中,最佳化分類可能包含在分類期間運用雜湊函數來指派虛擬隨機數給圖形中的每一個頂點。舉例來說,圖形中的每一個頂點的指數可運用雜湊函數來雜湊,以便取得被指派給該頂點的隨機數。依此方式,可避免分類期間的一或更多數查找。舉例來說,圖形中每一個頂點的隨機數可藉由在分類期間雜湊每一個頂點的指數來取得,取代在該等隨機數被指派的資料結構(舉例來說,陣列、表格、...等)中查找和該頂點相關聯的隨機數。
另外,於其中一具體實施例中,最佳化分類可能包含比較每一個頂點之已指派數和該頂點之每一個相鄰頂點的已指派數,以及判斷單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數且同時判斷單一頂點的已指派數是否小於該單一頂點之每一個相鄰頂點的每一個已指派數。
舉例來說,該單一頂點的已指派數可與該單一頂點之每一個 相鄰頂點的已指派數作比較,並且可從此等已指派數中決定最大數(舉例來說,局部最大值)與最小數(舉例來說,局部最小值)。於另一具體實施例中,可能針對圖形中每一個頂點執行單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數的判斷。
於另一具體實施例中,已指派數大於它們每一個相鄰頂點之已指派數的圖形中所有頂點皆可被加入第一獨立集,而已指派數小於它們每一個相鄰頂點之已指派數的圖形中所有頂點皆可被加入和該第一獨立集不同的第二獨立集。依此方式,可以減少在分類該等複數頂點期間所執行的迭代操作次數(舉例來說,減少兩倍),因為在每一次迭代操作期間有兩倍的頂點可被加入獨立集。
除此之外,於其中一具體實施例中,最佳化分類可能包含當該等複數頂點中的一或更多數已被加入獨立集時在分類期間移除此等一或更多數頂點不予考慮。舉例來說,該等複數頂點可能儲存在一資料結構中(舉例來說,稀疏矩陣資料結構、...等),而當一或更多數頂點已被加入獨立集時,此等頂點可於該資料結構裡面被標記並且可於未來分類迭代操作期間被忽略。
進一步言之,於其中一具體實施例中,最佳化分類可能包含在分類期間改變圖形大小。舉例來說,最佳化分類可能包含在該分類的一或更多數迭代操作之後縮小圖形大小。於另一具體實施例中,當一或更多數頂點已在最佳化期間被加入獨立集時,此等頂點和它們的對應邊緣可從圖形中移除,其可造成頂點與邊緣少於早先圖形的新圖形。除此之外,此新圖形還可用於未來分類迭代操作。於另一具體實施例中,最佳化分類可正交地執行(舉例來說,使得多次最佳化可彼此獨立地套用、...等)。
現在將提出關於各種非必要架構與特點的更具解釋性資訊,前面的構造可依照使用者的需求利用或不利用此等架構與特點來施行。應該強烈注意的係,下面提出的資訊係為達解釋之目的,而不應被視為限制意義。任何下面特點皆可排除或不排除其它已述特點視情況併入。
第二圖所示的係根據另一具體實施例,利用雜湊在圖形上色期間計算隨機數值的方法200。方法200為本發明的選擇性作法,可實行在 第一圖之功能的背景中。然而,理所當然的係,方法200亦可施行在任何所希望環境中。還應該注意的係,前述定義可套用於本說明中。
如操作202中所示,具有複數頂點的圖形會被辨識。除此之外,如操作204中所示,隨機數會指派給圖形中的每一個頂點,其中,每一個隨機數係藉由對該等頂點中每一者的指數執行雜湊而算出。舉例來說,一資料結構可能包含圖形裡面每一個頂點的指數,而此等指數可被雜湊,用以決定每一個頂點的隨機數。於另一具體實施例中,可能針對該等頂點中每一者來計算雜湊測量值與決定性測量值兩者。於又一具體實施例中,隨機數可藉由對該等頂點中每一者的指數執行雜湊而算出並且將該隨機數加至每一個頂點的度數(舉例來說,每一個頂點之直接相鄰頂點的數量),俾使得具有較高度數的頂點可被指派至一獨立集並且比具有較低度數的頂點更早被上色。
依此方式,不必從記憶體處讀取隨機數便能計算每一個頂點的隨機數。舉例來說,對該等頂點中每一者的指數執行雜湊可不必查找儲存在隨機記憶體中之陣列中指派給每一個頂點的隨機數,此記憶體存取可能慢過雜湊之執行。除此之外,對該等頂點中每一者的指數執行雜湊可不需要全域同步。舉例來說,對該等頂點中每一者的指數執行雜湊可不必:運用執行緒來選擇隨機數;指派該隨機數給頂點;等待所有執行緒完成選擇與指派所有頂點的隨機數;以及執行全域同步,其中,所有執行緒會以選定的隨機數來填充一表格並且在繼續圖形上色之前先同步化。
進一步言之,如操作206中所示,已指派給每一個頂點的隨機數會與該頂點之每一個相鄰頂點的已指派數作比較。又進一步言之,如操作208中所示,倘若判定已指派給該頂點的隨機數大於已指派給該頂點之每一個相鄰頂點的隨機數的話,圖形中的一或更多數頂點會指派給一獨立集。
又進一步言之,於其中一具體實施例中,藉由執行雜湊來指派隨機數給每一個頂點、比較該等隨機數、以及指派一或更多數頂點給獨立集可被執行為獨立集決定處理和圖形上色處理中一或更多數的一部分。舉例來說,圖形上色處理可用來在圖形之該等複數頂點之中決定獨立集。 表1所示的係示範性獨立集決定方法。當然,應該注意的係,表1中所示的方法僅係為達解釋之目的而提出,因此,不應被視為有限制意義。
同樣地,於其中一具體實施例中,表1中之方法的單次迭代操作執行可能導致產生並非最大的獨立集。舉例來說,對非最大變化例來說,“Mark all neighboring vertices as not part of set”可以略過,如步驟3。於另一具體實施例中,該演算法亦可修正成藉由設定Phi[j]等於頂點j的度數加上落在範圍[0,1)中的隨機數來優先化例如高度數頂點。
於另一範例中,圖形上色方法可用來上色從圖形中算出之頂點的獨立集。表2所示的係示範性圖形上色方法。當然,應該注意的係,表2中所示的方法僅係為達解釋之目的而提出,因此,不應被視為有限制意義。
c++
除此之外,舉例來說,請參見,M.Luby在SIAM Journal on Computing 4(1986)1036中所發表的「A simple parallel algorithm for the maximal independent set problem」;M.T.Jones與P.E.Plassmann在SIAM Journal of Scientific Computing 14(1993)654中所發表的「A Parallel Graph Coloring Heuristic」;以及J.R.Allwright,R.Bordawekar,P.D.Coddington,K.Dincer,以及C.L.Martin於1995年在美國雪城大學(Syracuse University)Technical Report Tech.Rep.SCCS-666所發表的「A comparison of parallel graph coloring algorithms」。本文以引用的方式將其全部併入,其說明示範性獨立集決定方法和圖形上色方法。
進一步言之,於其中一具體實施例中,參照表1,藉由對每一個頂點的指數執行雜湊來計算圖形之每一個頂點的隨機數可能包含透過來自儲存在稀疏矩陣資料結構中之行指數資料的雜湊函數直接於晶片上計算Phi[k]。這可被執行用以取代從輔助陣列處讀取Phi[k],其可能需要從記憶體處進行收集。於另一具體實施例中,藉由對每一個頂點的指數執行雜湊來計算圖形之每一個頂點的隨機數可能還允許該方法完全省略表1的省略迴圈1。
依此方式,獨立集決定方法的完整迭代操作可能變成單一一般化稀疏矩陣-向量乘積(Sparse Matrix-Vector Product,SpMV)操作,其中可能存在有效的平行施行方式,接著,則在表1的迴圈3中平行縮減。於另一具體實施例中,倘若僅需要一獨立集的話,那麼,表1的迴圈3可以省略,而整個方法可建構成單一一般化稀疏矩陣-向量乘積。依此方式,不需要外來的全域通訊以及全域同步。
第三圖所示的係根據另一具體實施例,在圖形上色期間計算局部最大值與最小值的方法300。方法300為本發明的選擇性作法,可實行在第一圖與第二圖之功能的背景中。然而,理所當然的係,方法300亦可施行在任何所希環境中。還應該注意的係,前述定義可套用於本說明中。
如操作302中所示,具有複數頂點的圖形會被辨識。除此之外,如操作304中所示,隨機數會指派給圖形中的每一個頂點。進一步言 之,如操作306中所示,最小頂點與最大頂點會從該圖形的該等複數頂點處同步被算出。於其中一具體實施例中,最大頂點可藉由判斷指派給每一個頂點的隨機數是否大於指派給每一個頂點之所有相鄰頂點的每一個隨機數而算出。
除此之外,最小頂點可藉由判斷指派給每一個頂點的隨機數是否小於指派給每一個頂點之所有相鄰頂點的每一個隨機數而算出。於另一具體實施例中,判斷圖形之最大頂點可和判斷圖形之最小頂點同步執行。於又一具體實施例中,倘若一頂點被判定為同時為最小頂點與最大頂點的話,那麼,該頂點自動被判定為最小頂點或最大頂點(舉例來說,經由任意選擇、經由預設的內定決定、...等)。
又進一步言之,如操作308中所示,被判定為最大頂點的圖形中所有頂點可儲存在第一獨立集中,而被判定為最小頂點的圖形中所有頂點可儲存在和該第一獨立集不同的第二獨立集中。於其中一具體實施例中,指派隨機數給圖形中的每一個頂點、同步計算圖形中最小頂點與最大頂點、以及指派最大頂點與最小頂點給不同獨立集可被執行為獨立集決定方法和圖形上色方法中一或更多數的一部分。
舉例來說,表3所示的係經過修正之獨立集決定方法,其會計算最小頂點與最大頂點。當然,應該注意的係,表3中所示的方法僅係為達解釋之目的而提出,因此,不應被視為有限制意義。
除此之外,於其中一具體實施例中,表3中的方法可以查詢謂詞(舉例來說,“is j min/max,”、...等)組織成單一縮減,其可減少GPU或其它向量架構上的實行分歧。於另一具體實施例中,每次迭代操作總成本可能和表1中所示的方法幾乎沒有改變;但是,用以執行圖形上色所需要的迭代操作次數則可因使用表3中所示的方法而減半。
依此方式,可以同時決定圖形中的局部最大頂點和局部最小頂點。於其中一具體實施例中,局部最大頂點和局部最小頂點可保證為獨立集,而且脫連(disjoint)(舉例來說,同時為局部最大值和局部最小值的任何頂點將不會連接而且可任意被視為任一集合的一部分)。於另一具體實施例中,倘若發展需要獨立集(非最大獨立集)的原生圖形上色方法的話,那麼,表2中所示方法的每一次迭代操作可能僅需要表1中所示方法的步驟1與2,其中,表1中的步驟2可被修正為同時計算2個集合。所以,此新方法可能需要半數的迭代操作,較小的每次迭代操作成本。於又一具體實施例中,全域同步的數量可能減少(舉例來說,減少2倍)。
進一步言之,於其中一具體實施例中,於不同於表2中所示 之需要最大獨立集之方法的方法中,表3中所示的上面方法可能需要保有兩個旗標,而非僅有一個,用以標記某個節點是否為最大集合或相鄰集合的成員(舉例來說,第一旗標);或者標記其是否為最小集合或相鄰集合的成員(舉例來說,第二旗標)。於另一具體實施例中,可以使用不同於表2中所示方法的方法,其中,此方法會依據從先前已指派顏色中收集到資訊以不同的方式來選擇顏色。
第四圖所示的係根據另一具體實施例,在分類期間移除複數頂點中一或更多數不予考慮的方法400。方法400為本發明的選擇性作法,可實行在第一圖至第三圖之功能的背景中。然而,理所當然的係,方法400亦可施行在任何所希望環境中。還應該注意的係,前述定義可套用於本說明中。
如操作402中所示,具有複數頂點的圖形會被辨識。除此之外,如操作404中所示,該等複數頂點中的一或更多數會在分類過程的第一迭代操作期間被加至一或更多數獨立集。進一步言之,如操作406中所示,已在分類過程的第一迭代操作期間被加至一或更多數獨立集的該等複數頂點中的該等一或更多數會被歸類為獨立集頂點。於其中一具體實施例中,將該等複數頂點中的該等一或更多數歸類為獨立集頂點可能包含標記該等頂點(舉例來說,為該等頂點貼標籤、...等)。
又進一步言之,如操作408中所示,該等複數頂點中的一或更多數會在分類過程的第二迭代操作期間被加至一或更多數獨立集,其中,已在分類過程的第一迭代操作中被歸類為獨立集頂點的該等複數頂點中的該等一或更多數不會在分類過程的第二迭代操作期間被考慮。於其中一具體實施例中,分類過程的第一迭代操作與第二迭代操作可被執行為獨立集決定方法和圖形上色方法中一或更多數的一部分。
另外,於其中一具體實施例中,方法400還提出表1中方法的步驟2可以僅需要考慮未被標記的節點,以便加速該方法之後繼迭代操作。舉例來說,從N個未被標記圖形節點組成的集合開始,在表1中方法的第K次迭代操作結束時未被標記節點的數量可能為N *(1/C)^K,常數C>1。
除此之外,於其中一具體實施例中,最佳化可能包含一或更多數不同的施行方式,相依於和分類相關聯的基礎資料結構。舉例來說,在容易決定每列行指數的稀疏矩陣格式中(舉例來說,CSR、ELL、...等),一節點的目前狀態可被查找,而且倘若該節點被標記的話可以執行早出(early-out)(舉例來說,表1中方法的步驟2的早出、...等)。
於另一具體實施例中,在不容易決定每列行指數的矩陣格式中,輔助資料結構(舉例來說,COO格式的CSR列指標)可依照前置計算,或者,最佳化可直接套用至個別矩陣項。這可能導致更有利的記憶體存取圖樣並且可防止龐大工作量。
第五圖所示的係根據另一具體實施例,在分類期間壓縮圖形的方法500。方法500為本發明的選擇性作法,可實行在第一圖至第四圖之功能的背景中。然而,理所當然的係,方法500亦可施行在任何所希望環境中。還應該注意的係,前述定義可套用於本說明中。
如操作502中所示,具有複數頂點的圖形會被辨識。除此之外,如操作504中所示,該等複數頂點中的一或更多數會在分類過程的一或更多數迭代操作期間被加至一或更多數獨立集。進一步言之,如操作506中所示,已在分類過程的第一迭代操作期間被加至一或更多數獨立集的該等複數頂點中的該等一或更多數會被歸類為獨立集頂點。
又進一步言之,如操作508中所示,被歸類為獨立集頂點的所有頂點以及它們的對應邊緣會從圖形中被移除。另外,如操作510中所示,新圖形會依據剩餘頂點與邊緣被創造。此外,如操作512中所示,新圖形之該等複數頂點中的一或更多數會在分類過程的一或更多數額外迭代操作期間被加至一或更多數額外獨立集。依此方式,新圖形可能僅含仍有作用(舉例來說,不在獨立集中、...等)的頂點。
另外,於其中一具體實施例中,從圖形中移除頂點與邊緣以及創造新圖形可被執行為獨立集決定方法和圖形上色方法中一或更多數的一部分。舉例來說,表1中所示方法可在固定圖形資料結構中加速。當一群未被標記節點下降至臨界值以下,藉由明確壓縮圖形資料結構可進一步提高效能。
舉例來說,其可能會判定在目前資料結構上執行進一步迭代操作的成本高於產生僅由未被標記節點組成之新資料結構的成本加上在該較小結構上迭代操作的(低)成本,因此,方法500可能響應於此判定而選擇壓縮該矩陣代表符。於其中一具體實施例中,新矩陣結構的格式可能和第一矩陣結構相同或不同於第一矩陣結構。於另一具體實施例中,可以透過平行前綴和(parallel prefix sum)來執行上面方法。
於又一具體實施例中,當未上色節點的數量達到預設數額時可以切換為序列演算法。舉例來說,平行方法可在特定次數的分類迭代操作中於第一圖形上執行,而當特殊臨界數量之未分類頂點被決定時,新圖形可被創造,而且在序列處理器上運轉的序列方法可以在新圖形裡面的剩餘頂點上執行額外的分類迭代操作。
除此之外,於其中一具體實施例中,在分類期間可能允許預設數額的誤差。舉例來說,分類可能在預設事件(舉例來說,預設數量的迭代操作、預設數量的已標記頂點、...等)之後結束。於另一範例中,在該預設事件之後,所有未被標記頂點可被指派至一特殊集、指派一特殊顏色、...等。最終的分類可能不符圖形上色或獨立集的準則,但是,可能「近似獨立」或是一種「近似的上色」。
第六圖所示的係可以施行各種先前具體實施例之各種架構及/或功能的示範性系統600。如圖所示,本發明提供的系統600包含至少一主處理器601,其被連接至通訊匯流排602。系統600還包含主記憶體604。控制邏輯(軟體)與資料係儲存在主記憶體604中,該主記憶體的形式可能為隨機存取記憶體(Random Access Memory,RAM)。
系統600還包含圖形處理器606和顯示器608(也就是,電腦螢幕)。於其中一具體實施例中,圖形處理器606可能包含複數著色器模組、一格柵化模組、...等。前面模組中的每一者可能位於單一半導體平台上,用以形成圖形處理單元(Graphics Processing Unit,GPU)。
於本說明中,單一半導體平台可能係指單獨一元式基於半導體的積體電路或晶片。應該注意的係,單一半導體平台一詞亦可能係指具有高連接能力的多晶片模組,模擬晶片上操作,並且相較於習知中央處理 單元(Central Processing Unit,CPU)與匯流排施行方式有顯著改善。當然,各種模組亦可依照使用者的需求分開設置或設置在多數半導體平台的各種組合中。
系統600可能還包含一次要儲存體610。舉例來說,次要儲存體610包含硬碟機及/或抽取式儲存機,其代表軟碟機、磁帶機、光碟機、...等。抽取式儲存機會以熟知的方式從抽取式儲存單元處讀取及/或寫入至抽取式儲存單元。
電腦程式或電腦控制邏輯演算法可以儲存在主記憶體604及/或次要儲存體610中。此等電腦程式被執行時會讓系統600執行各種功能。記憶體604、儲存體610及/或任何其它儲存體係電腦可讀取媒體的可能範例。
於其中一具體實施例中,前面各圖的架構及/或功能可以施行在主處理器601、圖形處理器606、能夠實施主處理器601與圖形處理器606兩者之至少一部分功能的積體電路(圖中並未顯示)、晶片組(也就是,被設計成當作執行相關功能之單一單元來運作與販售的一群積體電路、...等)、及/或針對本文主旨之任何其它積體電路的背景中。
又,前面各圖的架構及/或功能可以施行在通用電腦系統、電路板系統、專門用在娛樂用途的遊戲機系統、特定應用系統、及/或任何其它所希望系統的背景中。舉例來說,系統600可能具有桌上型電腦、膝上型電腦、及/或任何其它類型邏輯的形式。又,系統600可能具有各種其它裝置的形式,包含,但是並不受限於,個人數位助理(Personal Digital Assistant,PDA)裝置、行動電話裝置、電視、...等。
進一步言之,圖中雖然並未顯示,不過,系統600可能被耦合至網路,以達通訊之目的,舉例來說,電信網路、區域網路(Local Area Network,LAN)、無線網路、廣域網路(Wide Area Network,WAN)(例如,網際網路)、點對點網路、纜線網路、...等。
上面雖然已說明各種具體實施例,不過,應該瞭解的係,它們僅當作範例被提出,而沒有限制意義。因此,較佳具體實施例的範圍與範疇不應受限於任何上述示範性具體實施例,而應僅根據下面的申請專利 範圍及它們的等效範圍來定義。

Claims (21)

  1. 一種方法,其包括:辨識具有複數頂點的圖形;分類該圖形的該等複數頂點;其中,該等複數頂點的分類會被最佳化。
  2. 如申請專利範圍第1項的方法,其中,分類該等複數頂點包含指派隨機數給圖形中的每一個頂點。
  3. 如申請專利範圍第2項的方法,其中,分類該等複數頂點包含透過數學運算來修正已指派給每一個頂點的隨機數。
  4. 如申請專利範圍第2項的方法,其中,分類該等複數頂點包含比較每一個頂點之已指派數和該頂點之每一個相鄰頂點的已指派數。
  5. 如申請專利範圍第4項的方法,其中,分類該等複數頂點包含判斷單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數。
  6. 如申請專利範圍第5項的方法,其中,會針對圖形中的每一個頂點來判斷單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數。
  7. 如申請專利範圍第5項的方法,其中,分類該等複數頂點包含倘若判定該單一頂點的已指派數大於該單一頂點之每一個相鄰頂點的已指派數的話將該單一頂點加入一獨立集。
  8. 如申請專利範圍第7項的方法,其中,分類該等複數頂點包含上色該獨立集中的所有頂點。
  9. 如申請專利範圍第8項的方法,其中,該獨立集中的所有頂點會被指派一有限數值集中相同的數值。
  10. 如申請專利範圍第7項的方法,其中,分類該等複數頂點包含先從圖形中移除該獨立集中的頂點並隨後分類該圖形中剩餘的頂點。
  11. 如申請專利範圍第1項的方法,其中,分類該等複數頂點係經由複數迭代操作來執行。
  12. 如申請專利範圍第1項的方法,其中,最佳化分類包含在分類期間運 用雜湊函數來指派隨機數給圖形中的每一個頂點。
  13. 如申請專利範圍第12項的方法,其中,圖形中的每一個頂點的指數係運用雜湊函數來雜湊,以便取得被指派給該頂點的隨機數。
  14. 如申請專利範圍第2項的方法,其中,最佳化分類包含比較每一個頂點之已指派數和該頂點之每一個相鄰頂點的已指派數,以及判斷單一頂點的已指派數是否大於該單一頂點之每一個相鄰頂點的每一個已指派數且同時判斷單一頂點的已指派數是否小於該單一頂點之每一個相鄰頂點的每一個已指派數。
  15. 如申請專利範圍第14項的方法,其中,已指派數大於它們每一個相鄰頂點之已指派數的圖形中所有頂點會被加入第一獨立集,而已指派數小於它們每一個相鄰頂點之已指派數的圖形中所有頂點會被加入和該第一獨立集不同的第二獨立集。
  16. 如申請專利範圍第1項的方法,其中,最佳化分類包含當該等複數頂點中的一或更多數已被加入獨立集時在分類期間移除此等一或更多數頂點不予考慮。
  17. 如申請專利範圍第1項的方法,其中,最佳化分類包含在分類期間改變圖形大小。
  18. 如申請專利範圍第1項的方法,其中,最佳化分類包含在該分類的一或更多數迭代操作之後縮小圖形大小。
  19. 一種具現在電腦可讀取媒體上的電腦程式產品,其包括:用以辨識具有複數頂點的圖形的編碼;用以分類該圖形的該等複數頂點的編碼;用以最佳化該等複數頂點的分類的編碼。
  20. 一種系統,其包括:處理器,用以辨識具有複數頂點的圖形,以及分類該圖形的該等複數頂點,其中,該等複數頂點的分類會被最佳化。
  21. 如申請專利範圍第20項的系統,其中,該處理器會透過匯流排被耦合至記憶體。
TW102115412A 2012-05-01 2013-04-30 執行圖形上色的系統、方法和電腦程式產品 TWI534754B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/461,710 US9053041B2 (en) 2012-05-01 2012-05-01 System, method, and computer program product for performing graph coloring

Publications (2)

Publication Number Publication Date
TW201407537A true TW201407537A (zh) 2014-02-16
TWI534754B TWI534754B (zh) 2016-05-21

Family

ID=49384597

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102115412A TWI534754B (zh) 2012-05-01 2013-04-30 執行圖形上色的系統、方法和電腦程式產品

Country Status (4)

Country Link
US (1) US9053041B2 (zh)
CN (1) CN103383772B (zh)
DE (1) DE102013206178A1 (zh)
TW (1) TWI534754B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014215941A (ja) * 2013-04-30 2014-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 経路情報の処理方法、コンピュータ・プログラム及びコンピュータ。
EP3101563B1 (en) * 2015-06-05 2018-01-10 Technische Universität Kaiserslautern Automated determination of network motifs
CN105068787A (zh) * 2015-08-28 2015-11-18 华南理工大学 一种稀疏矩阵向量乘法的异构并行计算方法
US10747433B2 (en) * 2018-02-21 2020-08-18 Wisconsin Alumni Research Foundation Computer architecture for high-speed, graph-traversal
CN108491505B (zh) * 2018-03-22 2021-08-03 中国科学院信息工程研究所 一种基于拓扑势值排序的dsatur图顶点着色方法
CN109461198B (zh) * 2018-11-12 2023-05-26 网易(杭州)网络有限公司 网格模型的处理方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017043B1 (en) * 1999-03-19 2006-03-21 The Regents Of The University Of California Methods and systems for the identification of circuits and circuit designs
CN1501326A (zh) * 2002-11-15 2004-06-02 矽统科技股份有限公司 三维空间数字图像处理器与应用其上的能见度处理方法
US7619990B2 (en) * 2006-06-30 2009-11-17 Alcatel-Lucent Usa Inc. Two tiered packet labeling for data network traceback
US20110164527A1 (en) * 2008-04-04 2011-07-07 Mishra Rajesh K Enhanced wireless ad hoc communication techniques
WO2011032077A2 (en) * 2009-09-11 2011-03-17 University Of Maryland, College Park System and method for data management in large data networks
US20120051589A1 (en) * 2010-08-24 2012-03-01 Honeywell International Inc. method for clustering multi-modal data that contain hard and soft cross-mode constraints
US9053209B2 (en) 2012-05-01 2015-06-09 Nvidia Corporation System, method, and computer program product for performing graph coloring

Also Published As

Publication number Publication date
DE102013206178A1 (de) 2013-11-07
TWI534754B (zh) 2016-05-21
US9053041B2 (en) 2015-06-09
CN103383772B (zh) 2017-04-12
CN103383772A (zh) 2013-11-06
US20130293563A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
TWI534754B (zh) 執行圖形上色的系統、方法和電腦程式產品
JP5950285B2 (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
US8131660B2 (en) Reconfigurable hardware accelerator for boolean satisfiability solver
US20140067808A1 (en) Distributed Scalable Clustering and Community Detection
US8745307B2 (en) Multiple page size segment encoding
US10452717B2 (en) Technologies for node-degree based clustering of data sets
US9053209B2 (en) System, method, and computer program product for performing graph coloring
US8843527B2 (en) Fast predicate table scans using single instruction, multiple data architecture
CN109656798B (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
US20150278425A1 (en) Timing Closure Using Transistor Sizing in Standard Cells
WO2020233709A1 (zh) 模型压缩方法及装置
US20110055243A1 (en) System and method for finding top n pairs in a map-reduce setup
JP2013186770A (ja) データ処理装置
CN103530243B (zh) 用于确定用于设备的设置的系统、方法
US8146039B2 (en) Optimal distance based buffer tree for data path and clock
CN111597548A (zh) 实现隐私保护的数据处理方法及装置
EP4012573A1 (en) Graph reconstruction method and apparatus
TWI690848B (zh) 基於記憶體處理器的多處理架構及其操作方法
US9135369B2 (en) System, method, and computer program product for performing graph aggregation
US20220318440A1 (en) Techniques for accelerating the designing of manufacturing facilities
CN110309367B (zh) 信息分类的方法、信息处理的方法和装置
US8527923B1 (en) System, method, and computer program product for hierarchical formal hardware verification of floating-point division and/or square root algorithmic designs using automatic sequential equivalence checking
US8698836B2 (en) System, method, and computer program product for optimizing stratified sampling associated with stochastic transparency
CN111723247A (zh) 基于图的假设计算
CN110647574B (zh) 一种社交网络数据展示方法、终端设备及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees