TWI508023B - 平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術 - Google Patents

平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術 Download PDF

Info

Publication number
TWI508023B
TWI508023B TW099142114A TW99142114A TWI508023B TW I508023 B TWI508023 B TW I508023B TW 099142114 A TW099142114 A TW 099142114A TW 99142114 A TW99142114 A TW 99142114A TW I508023 B TWI508023 B TW I508023B
Authority
TW
Taiwan
Prior art keywords
processor
gilbert
single instruction
objects
vertices
Prior art date
Application number
TW099142114A
Other languages
English (en)
Other versions
TW201135665A (en
Inventor
Aleksey A Bader
Mikhail Smelyanskiy
Jatin Chhugani
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of TW201135665A publication Critical patent/TW201135665A/zh
Application granted granted Critical
Publication of TWI508023B publication Critical patent/TWI508023B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Multi Processors (AREA)

Description

平行及向量式吉伯特-詹森-科西(GILBERT-JOHNSON-KEERTHI)圖形處 理技術
本發明大致上係有關圖形處理。圖形處理為電子資料為了顯示於顯示幕諸如電腦監視器或電視上的處理。
發明背景
吉伯特-詹森-科西(Gilbert-Johnson-Keerthi)演繹法則係由Elmer G.Gilbert、Daniel W.Johnson及S.Sathiya Keerthi於1988年發明。參考Gilbert,E.G.等人「運算三度空間內複雜物件間之快速程序」,IEEE機器人及自動化期刊第4卷第2輯1988年4月199-203頁。
GJK演繹法則決定二凸集間之最小距離。凸集基本上為物件之描述。GJK演繹法則係使用該二凸的明考斯基(Minkowski)和。平滑演繹法則修正對二凸集A及B獲得最接近的成對點。
依據本發明之一實施例,係特地提出一種方法,其包含下列步驟:使用一對齊的向量式資料結構於在一處理器上運作的吉伯特-詹森-科西演繹法則。
圖式簡單說明
第1圖為本發明之一個實施例之示意說明圖;第2圖為依據一個實施例供使用之資料格式之說明圖;第3圖為二物件及GJK演繹法則應用於該等物件之說明圖; 第4圖為本發明之一個實施例之流程圖;及第5圖為一個實施例之系統說明圖。
較佳實施例之詳細說明
參考第1圖,處理器核心30(例如圖形處理器核心)可包括一U字形管線32及一V字形管線38。U字形管線32係耦接至一向量處理單元(VPU)34及算術邏輯單元(ALU)36。向量處理單元34係耦接至通用暫存器(GPR)42(例如16通用暫存器乘4執行緒)及向量暫存器(VXX)40(例如32向量暫存器乘4執行緒)。於若干實施例,硬體暫存器無需夠大來捕捉總資料結構。
V字形管線38係耦接至算術邏輯單元36及16個通用暫存器42之32個向量暫存器40。U字形管線32及V字形管線38係來自一資料快取記憶體47及饋進一指令提取及拾取單元44之一指令快取記憶體45。
資料快取記憶體47接收來自各種處理單元34及36的輸出信號,及透過雙向槽軌匯流排提供資料至第2層級或L2快取記憶體48。L2快取記憶體48係藉環圈匯流排46耦接至主記憶體。計時(CLX)單元49提供時鐘信號予資料快取記憶體與L2快取記憶體間之該匯流排、及該L2快取記憶體與環圈匯流排間之該匯流排。
第1圖所示處理器核心30為單一指令多重資料(SIMD)處理器其使用SIMD載入/儲存指令。因運算係基於512位元或16元素的SIMD寬度,若資料係向量化或經排齊使得資料結構之起始位址係始於SIMD寬度之倍數,則可最有效運算。如此,於前述實例,有32向量暫存器,SIMD寬度為16元素或512位元。則期望資料結構之位址係始於4之倍數亦即16,且最佳為64。
優異地,SIMD處理器核心30係以向量化資料或已排齊的資料工作。於若干實施例,處理器經由有效利用SIMD硬體改良效能而探討資料位準的平行度。如此,「排齊的向量化」資料係指可有效用於平行SIMD架構之資料結構,原因在於其起始位址為執行SIMD處理器寬度的倍數。於一個實施例,暫存器為512位元寬SIMD暫存器。
參考第2圖,顯示用於一個實施例此處SIMD寬度為16元素之資料結構。當然,可利用其它寬度,但類似原理可用來將資料排齊於SIMD寬度。第2圖所示資料儲存結構含有初始分開軸線用來支援對映函數、局部座標系之位置及旋轉、凸集的點數、及各點的位置。但本發明並未限於表示為頂點集合之凸殼的凸。
第2圖所示資料結構試圖以排齊的向量化方式排列所需資訊。於第一列,N係指各行的物件A及B之頂點數,及X、Y及Z為於三度空間表示物件A及B之凸座標之三元組。於第二、三及四列之X1-X16、Y1-Y16及Z1-Z16變數表示分開軸線,其組成局部座標系的方向向量。第五列及以上係有關16物件頂點。各個頂點係使用其X、Y及Z座標值表示。X、Y及Z三元組數目係與物件的頂點數目相同。於本實施例,具有16之SIMD寬度,資料結構為16元素寬。
參考第3圖,顯示二物件,標示為A及B。此等物件揭示一凸集(圖中未顯示),其可為比有效環繞凸集畫界框的物件,界定更複雜的結構。物件A與物件B間之最小距離係指示於本圖。
「凸」係指在第3圖所示物件A與B間描述的界限內部之物項的實際形狀。由X、Y及Z座標所組成的各頂點之點集合揭示凸物件。
依據若干實施例,GJK演繹法則係適用於在適合用於多核心平行處理器的已排齊的向量化資料上運算,諸如第1圖所示。就此方面而言,資料係向量化或就此種處理器之SIMD寬度排齊。
依據一個實施例,應用GJK演繹法則之順序顯示於第4圖。順序139可於軟體、硬體或韌體實施。於軟體實施的實施例,可藉可儲存於電腦可讀取媒體諸如磁性、光學、或半導體儲存裝置的指令實施。指令可藉適當處理器、控制器、或電腦執行,包括第1圖所示該型圖形處理器核心30,或含括可使用單一指令多重資料架構而平行地對多執行緒運算的能力之通用處理器。
如此如方塊10所示,初步,準備已排齊的向量化資料。其次,資料使用迭代重複向量化GJK演繹法則處理來運算二物件A與B間之最小距離。向量化支援對映係在全然向量化GJK實施態樣脈絡實施。免除遮罩運算的協助,指令允許分支。於一個實施例,任何「若-否則」陳述可使用遮罩運算表示為線性碼。
於一個實施例,向量化GJK演繹法則只含有二迴圈。方塊12指示第一迴圈支援對映功能。此一迴圈處理一給定集合的全部各點。方塊14指示第二迴圈重複該額外管理資料量直至識別該演繹法則裡的最佳點(亦即物件間之最短距離)。
演繹法則之虛擬碼對物件A及B的A及B集合使用明考斯基和。如此,二物件和導致其組合。換言之,A+B={a+b: a in A,b in B}。A及B集合之明考斯基差為一新集合:A-B={a-b: a in A,b in B}=A+(-B)。CH(S)表示S頂點之凸殼。
該演繹法則之輸入信號為集合A與B之明考斯基差之凸殼,其為M。第一,任意單工Q係選自M。然後運算一點P,P係最接近Q頂點之凸殼的原點。若P為原點,然後退出。此種情況下,返回零。
否則,Q係縮小至Q的最小子集Q’,使得P係在Q’頂點之凸殼。然後V係等於順著給定-P方向最遠頂點的支援對映運算(Sc),該點為在-P方向的支援點。若V不再於-P方向的極端,則P本身可退出及返回∣∣P∣∣。其次,將V加至Q及然後返回運算最接近Q頂點之凸殼原點的點P。
於若干實施例,向量化辦法允許採用SIMD單元處理成對集合及同時使用多執行緒處理器能力。於若干實施例,於多核心處理器可達成效能的顯著增高。藉由處理具有等數點的集合,可達成最大效能增強。此種情況下,記憶體利用率為最有效。用於遊戲,此乃最可能的估算,原因在於即便複雜的本體也不多於幾十個頂點。
第5圖所示電腦系統130可包括一硬碟機134及一可移除媒體136,藉匯流排104而耦接至晶片組核心邏輯電路110。鍵盤及滑鼠120或其它習知組件可透過匯流排108而耦接至晶片組核心邏輯電路。於一個實施例,核心邏輯電路可透過匯流排105耦接至圖形處理器112及主處理器或主機處理器100。圖形處理器112也可藉匯流排106耦接圖框緩衝器114。圖框緩衝器114可藉匯流排107耦接顯示器螢幕118。於一個實施例,圖形處理器112可為使用SIMD架構之多執行緒多核心平行處理器。
於軟體實施態樣之情況下,相關碼可儲存在任何適當半導體、磁性或光學記憶體,包括主記憶體132或圖形處理器內部的任何可用記憶體。如此,於一個實施例,執行第4圖之順序139之碼可儲存在機器或電腦可讀取媒體諸如記憶體132或圖形處理器112,於一個實施例,可藉處理器100或圖形處理器112執行。於一個實施例,核心30屬於圖形處理器112之一部分。
此處所述技術應用於任何凸物件,包括二維、三維及更高維表面。雖然使用線性時間演繹法則來於前述實施例計算支援對映關係,但也可使用其它演繹法則。此處所述圖形處理技術可於多種硬體架構實施。舉例言之,圖形功能可整合在一晶片組內部。另外,可使用分立圖形處理器。至於又另一實施例,圖形功能可藉通用處理器包括多核心處理器實施。
全文說明書述及「一個實施例」或「一實施例」表示就該實施例所述特定特徵、結構或特性係含括於本發明涵蓋的至少一項實施態樣。如此,出現「一個實施例」或「一實施例」等詞並非必然係指同一實施例。此外,該等特定特徵、結構或特性可以所述特定實施例以外的其它適當形式制定,全部此等形式可涵蓋於本案申請專利範圍。
雖然已經就有限數目之實施例描述本發明,但熟諳技藝人士將瞭解可做出多項修改及變化。隨附之申請專利範圍意圖涵蓋落入於本發明之精髓及範圍內的全部此等修改及變化。
10~14‧‧‧處理方塊
30‧‧‧處理器核心
32‧‧‧U字形管線
34‧‧‧向量處理單元(VPU)
36‧‧‧算術邏輯單元(ALU)
38‧‧‧V字形管線
40‧‧‧向量暫存器(VXX)
42‧‧‧通用暫存器(GPR)
44‧‧‧指令提取及拾取單元
45‧‧‧指令快取記憶體
46‧‧‧環圈匯流排
47‧‧‧資料快取記憶體
48‧‧‧層級2或L2快取記憶體
49‧‧‧計時(CLX)單元
100‧‧‧主處理器
104~108‧‧‧匯流排
110‧‧‧晶片組核心邏輯電路
112‧‧‧圖形處理器
114‧‧‧圖框緩衝器
118‧‧‧顯示器螢幕
120‧‧‧鍵盤/滑鼠
130‧‧‧電腦系統
132‧‧‧主記憶體
134‧‧‧硬碟機
136‧‧‧可移除媒體
139‧‧‧順序
第1圖為本發明之一個實施例之示意說明圖;第2圖為依據一個實施例供使用之資料格式之說明圖;第3圖為二物件及GJK演繹法則應用於該等物件之說明圖;第4圖為本發明之一個實施例之流程圖;及第5圖為一個實施例之系統說明圖。
30‧‧‧處理器核心
32‧‧‧U字形管線
34‧‧‧VPU
36‧‧‧ALU
38‧‧‧V字形管線
40‧‧‧向量暫存器
42‧‧‧通用暫存器
44‧‧‧指令提取及拾取單元
45‧‧‧指令快取記憶體
46‧‧‧環圈匯流排
47‧‧‧資料快取記憶體
48‧‧‧L2快取記憶體
49‧‧‧CLX單元

Claims (20)

  1. 一種方法,包含有下列步驟:使用一對齊的向量式資料結構於在一處理器上運作的吉伯特-詹森-科西(Gilbert-Johnson-Keerthi)演繹法則,該結構包括分開軸線、一局部座標系之位置及旋轉、和在一凸集之中的各點之一位置;以及只在二迴圈中實施該吉伯特-詹森-科西演繹法則,其中第一迴圈支援一對映功能並處理在一給定集合中的全部點,且第二迴圈重複該演繹法則直至針對兩物件間之一最短距離的最佳點被識別。
  2. 如申請專利範圍第1項之方法,其包括使用單一指令多重資料處理器。
  3. 如申請專利範圍第2項之方法,其包括將該資料結構與單一指令多重資料處理器寬度對齊。
  4. 如申請專利範圍第3項之方法,其包括將該資料結構排列成一矩陣,具有一第一列包括多個頂點,一第二、第三及第四列指示分開軸線,及其餘各列指示等於該單一指令多重資料寬度之多個物件的頂點。
  5. 如申請專利範圍第1項之方法,其包括執行支援對映功能之一第一迴圈。
  6. 如申請專利範圍第1項之方法,其包括重複應用該演繹法則直至找到一最佳點。
  7. 如申請專利範圍第1項之方法,其包括於一多核心平行處理器上運作該演繹法則。
  8. 如申請專利範圍第7項之方法,其中該處理器為一分立式圖形處理器。
  9. 一種儲存有指令之電腦可讀取媒體,該等指令可造成電腦執行下列動作:使用一對齊的向量式資料結構於吉伯特-詹森-科西演繹法則,該結構包括分開軸線、一局部座標系之位置及旋轉、和在一凸集之中的各點之一位置;以及只在二迴圈中實施該吉伯特-詹森-科西演繹法則,其中第一迴圈支援一對映功能並處理在一給定集合中的全部點,且第二迴圈重複該演繹法則直至針對兩物件間之一最短距離的最佳點被識別。
  10. 如申請專利範圍第9項之媒體,其進一步儲存在一單一指令多重資料處理器上運作的指令。
  11. 如申請專利範圍第10項之媒體,其進一步儲存用來將該資料結構與一單一指令多重資料處理器寬度對齊之指令。
  12. 如申請專利範圍第11項之媒體,其進一步儲存用來將該資料結構排列成一矩陣之指令,該矩陣具有一第一列包括多個頂點,一第二、第三及第四列指示分開軸線,及其餘各列指示等於該單一指令多重資料寬度之多個物件的頂點。
  13. 如申請專利範圍第9項之媒體,其進一步儲存用來執行支援一對映功能的第一迴圈之指令。
  14. 如申請專利範圍第9項之媒體,其進一步儲存用來重複 應用該演繹法則直至找到一最佳點之指令。
  15. 一種裝置,包含:用以使用一對齊的向量式資料結構於吉伯特-詹森-科西演繹法則之一單一指令多重資料處理器,該結構包括分開軸線、一局部座標系之位置及旋轉、和在一凸集之中的各點之一位置,只在二迴圈中實施該吉伯特-詹森-科西演繹法則,其中第一迴圈支援一對映功能並處理在一給定集合中的全部點,且第二迴圈重複該演繹法則直至針對兩物件間之一最短距離的最佳點被識別;以及耦接至該處理器之一儲存裝置。
  16. 如申請專利範圍第15項之裝置,其中該處理器係為一多核心平行處理器。
  17. 如申請專利範圍第15項之裝置,其中該處理器係用以執行支援一對映功能的第一迴圈。
  18. 如申請專利範圍第17項之裝置,其中該處理器係用以重複應用該演繹法則直至找到一最佳點。
  19. 如申請專利範圍第15項之裝置,其中該處理器係用以將該資料結構排列成一矩陣,該矩陣具有一第一列包括多個頂點,一第二、第三及第四列指示分開軸線。
  20. 如申請專利範圍第15項之裝置,其中該處理器係用以將該資料結構排列成一矩陣,具有其餘各列指示等於該處理器之單一指令多重資料寬度之多個物件的頂點。
TW099142114A 2009-12-23 2010-12-03 平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術 TWI508023B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/645,892 US8564601B2 (en) 2009-12-23 2009-12-23 Parallel and vectored Gilbert-Johnson-Keerthi graphics processing

Publications (2)

Publication Number Publication Date
TW201135665A TW201135665A (en) 2011-10-16
TWI508023B true TWI508023B (zh) 2015-11-11

Family

ID=43531607

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099142114A TWI508023B (zh) 2009-12-23 2010-12-03 平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術

Country Status (6)

Country Link
US (1) US8564601B2 (zh)
KR (1) KR20110073361A (zh)
CN (1) CN102110283B (zh)
DE (1) DE102010053559A1 (zh)
GB (1) GB2476550B (zh)
TW (1) TWI508023B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137052A (zh) * 2011-12-23 2014-11-05 英特尔公司 用于选择向量计算的元素的装置和方法
EP2701090A1 (en) * 2012-08-22 2014-02-26 Aahlstö OÜ Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment
US10423693B2 (en) * 2014-09-15 2019-09-24 Autodesk, Inc. Parallel processing using a bottom up approach
JP6563358B2 (ja) * 2016-03-25 2019-08-21 日立オートモティブシステムズ株式会社 画像処理装置及び画像処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060149516A1 (en) * 2004-12-03 2006-07-06 Andrew Bond Physics simulation apparatus and method
US20070250683A1 (en) * 1997-10-09 2007-10-25 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US20090027402A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Method of controlling the mode of parallel operation of a multi-mode parallel graphics processing system (MMPGPS) embodied within a host comuting system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
GB2343969A (en) * 1998-11-20 2000-05-24 Advanced Risc Mach Ltd A data processing apparatus and method for performing an arithemtic operation on a plurality of signed data values
US7129951B2 (en) * 2004-05-06 2006-10-31 Valve Corporation Method and system for performing speculative collisions for a video game
US7475392B2 (en) 2004-06-07 2009-01-06 International Business Machines Corporation SIMD code generation for loops with mixed data lengths
JP4192976B2 (ja) * 2006-08-02 2008-12-10 ソニー株式会社 接触形状算出装置及び接触形状算出方法、並びにコンピュータ・プログラム
US7856627B2 (en) 2006-08-08 2010-12-21 International Business Machines Corporation Method of SIMD-ization through data reshaping, padding, and alignment
CN101572693A (zh) * 2008-04-29 2009-11-04 国际商业机器公司 用于并行模式匹配的设备和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250683A1 (en) * 1997-10-09 2007-10-25 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US20090027402A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Method of controlling the mode of parallel operation of a multi-mode parallel graphics processing system (MMPGPS) embodied within a host comuting system
US20060149516A1 (en) * 2004-12-03 2006-07-06 Andrew Bond Physics simulation apparatus and method

Also Published As

Publication number Publication date
CN102110283B (zh) 2014-12-10
US8564601B2 (en) 2013-10-22
GB2476550A (en) 2011-06-29
KR20110073361A (ko) 2011-06-29
CN102110283A (zh) 2011-06-29
DE102010053559A1 (de) 2012-03-15
GB201020736D0 (en) 2011-01-19
GB2476550B (en) 2013-10-30
TW201135665A (en) 2011-10-16
US20110153996A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
US11797301B2 (en) Generalized acceleration of matrix multiply accumulate operations
Tanomoto et al. A CGRA-based approach for accelerating convolutional neural networks
US11816481B2 (en) Generalized acceleration of matrix multiply accumulate operations
US10346212B2 (en) Approach for a configurable phase-based priority scheduler
US20110072249A1 (en) Unanimous branch instructions in a parallel thread processor
JP2009140491A (ja) 融合型積和演算機能ユニット
US9880851B2 (en) System, method, and computer program product for implementing large integer operations on a graphics processing unit
US9471307B2 (en) System and processor that include an implementation of decoupled pipelines
US8572355B2 (en) Support for non-local returns in parallel thread SIMD engine
TWI508023B (zh) 平行及向量式吉伯特-詹森-科西(gilbert-johnson-keerthi)圖形處理技術
TW201901483A (zh) 執行雙輸入值絕對值及加總運算的電路
US11915338B2 (en) Loading apparatus and method for convolution with stride or dilation of 2
Lübeck et al. A heterogeneous and reconfigurable embedded architecture for energy-efficient execution of convolutional neural networks
Wu et al. Parallel integral image generation algorithm on multi-core system
US12026801B2 (en) Filter independent L1 mapping of convolution data into general purpose register
US11062680B2 (en) Raster order view
US11550584B1 (en) Implementing specialized instructions for accelerating Smith-Waterman sequence alignments
Sulong et al. Parallel Processing Problem and Solution-A Case Study on MATLAB Parallel Computing Toolbox GPU Computing
CN115905786A (zh) 用于加速史密斯-沃特曼序列对齐的技术
CN115910208A (zh) 用于在加速史密斯-沃特曼序列对齐时存储子对齐数据的技术
Brown et al. GPU-accelerated 3-D model-based tracking

Legal Events

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