TW201706840A - 促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能 - Google Patents

促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能 Download PDF

Info

Publication number
TW201706840A
TW201706840A TW105114004A TW105114004A TW201706840A TW 201706840 A TW201706840 A TW 201706840A TW 105114004 A TW105114004 A TW 105114004A TW 105114004 A TW105114004 A TW 105114004A TW 201706840 A TW201706840 A TW 201706840A
Authority
TW
Taiwan
Prior art keywords
command stream
plan
command
dispatch
graphics
Prior art date
Application number
TW105114004A
Other languages
English (en)
Inventor
詹姆士 瓦里瑞
亞西許 凡卡堤
沙塔吉 沙蘭吉
麥克 亞波達卡
湯瑪士 勞斯
哈玄 哈許米
拉瑪 哈里哈拉
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201706840A publication Critical patent/TW201706840A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions

Abstract

描述促進圖形處理命令的動態運行時變換以用於在計算裝置上之改善的圖形效能的機制。如本文描述之實施例的一種方法包括偵測與應用程式關聯的命令串流,其中該命令串流包括分派。該方法可更包括評估有關於該分派各者的處理參數,其中評估更包括將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流。該方法可更包括基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流。該方法可更包括執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。

Description

促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能
本文描述的實施例通常相關於電腦。更明確地說,實施例相關於促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能的機制。
習知地,已知圖形驅動程式依賴應用程式以實作演算法或單獨在圖形處理單元(GPGPU)命令上實施限於單一通用計算的低階最佳化。然而,預期應用程式不能依據系統資源、功率等為每個圖形處理單元(GPU)最佳化演算法,產生低效率及昂貴的圖形處理及著色效能。
100‧‧‧處理系統
102、200、1030‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107、202A、202N‧‧‧處理器核心
108、300、1032、1210‧‧‧圖形處理器
109‧‧‧特定指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存設備
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器集線器
134‧‧‧網路控制器
140‧‧‧傳統I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
204A、204N‧‧‧內部快取記憶體單元
206‧‧‧共享快取單元
208‧‧‧圖形處理器
210‧‧‧系統代理器核心
211、302、843‧‧‧顯示控制器
212‧‧‧環形為基的互連單元
213‧‧‧I/O鏈路
214‧‧‧積體記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧高效能嵌入式記憶體模組
304‧‧‧區塊影像轉換(BLIT)引擎
306‧‧‧視訊編碼解碼器引擎
310、410‧‧‧圖形處理引擎(GPE)
312、412‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體次系統
316、416、830‧‧‧媒體管線
320、1245‧‧‧顯示器裝置
403、503、803‧‧‧命令串流器
414‧‧‧執行單元陣列
430‧‧‧取樣引擎
432‧‧‧去雜訊/解交錯模組
434‧‧‧動作估計模組
436‧‧‧影像縮放及過濾模組
444、614、856‧‧‧資料埠
502、802‧‧‧環形互連
504‧‧‧管線前端
530‧‧‧視訊品質引擎(VQE)
533‧‧‧多格式編碼/解碼(MFX)引擎
534、834‧‧‧視訊前端
536‧‧‧幾何管線
537、837‧‧‧媒體引擎
550A、550N、560A、560N‧‧‧次核心
552A、552N、562A、562N、608A、608N、852A、852B‧‧‧執行單元
554A、554N‧‧‧媒體/紋理取樣器
564A、564N、610‧‧‧取樣器
570A、570N‧‧‧共享資源
580A、580N‧‧‧圖形核心
600、850‧‧‧緒程執行邏輯
602‧‧‧像素著色器
604、831‧‧‧緒程分派器
606‧‧‧指令快取記憶體
612‧‧‧資料快取記憶體
700‧‧‧圖形處理器指令格式
710‧‧‧128-位元格式
712‧‧‧指令運算碼
713‧‧‧索引欄位
714‧‧‧指令控制欄位
716‧‧‧執行尺寸欄位
718‧‧‧目的
720‧‧‧src0
722‧‧‧src1
724‧‧‧SRC2
726‧‧‧存取/定址模式資訊
730‧‧‧64-位元緊湊指令格式
740‧‧‧運算碼解碼
742‧‧‧移動及邏輯運算碼群組
744‧‧‧流程控制指令群組
746‧‧‧雜項指令群組
748‧‧‧平行數學指令群組
750‧‧‧向量數學群組
805‧‧‧頂點提取器
807‧‧‧頂點著色器
811‧‧‧外殼著色器
813‧‧‧細分曲面器
817‧‧‧域著色器
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出單元
829‧‧‧限幅器
840‧‧‧顯示引擎
841‧‧‧2D引擎
851‧‧‧L1快取記憶體
854‧‧‧紋理及媒體取樣器
858‧‧‧紋理/取樣器快取記憶體
870‧‧‧著色輸出管線
873‧‧‧光柵器及深度測試組件
875‧‧‧共享L3快取記憶體
877‧‧‧像素運算組件
878‧‧‧著色器快取記憶體
879‧‧‧深度快取記憶體
900‧‧‧圖形處理器命令格式
902‧‧‧目標用戶端
904‧‧‧命令運算碼(opcode)
905‧‧‧次運算碼
906‧‧‧相關資料
908‧‧‧命令尺寸
910‧‧‧圖形處理器命令序列
912‧‧‧管線清除命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回覆緩衝器狀態命令
920‧‧‧管線決定
930‧‧‧3D管線狀態
932‧‧‧3D基元
934‧‧‧執行
940‧‧‧媒體管線狀態
942‧‧‧媒體物件命令
944‧‧‧執行命令
1010‧‧‧3D圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020、1306‧‧‧作業系統
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動程式
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統核心模式功能
1029‧‧‧核心模式圖形驅動程式
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心發展系統
1110‧‧‧軟體模擬
1115‧‧‧RTL設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非揮發性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧第三方製造設施
1200‧‧‧系統單晶片積體電路
1205‧‧‧應用處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1250‧‧‧高解析多媒體介面(HDMI)控制器
1255‧‧‧行動產業處理器介面(MIPI)顯示介面
1260‧‧‧快閃記憶體次系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式安全引擎
1300‧‧‧計算裝置
1304‧‧‧輸入/輸出(I/O)來源
1308‧‧‧記憶體
1310‧‧‧動態運行時命令變換機制(「變換機制」)
1312‧‧‧CPU
1314‧‧‧GPU
1316‧‧‧驅動器邏輯
1401‧‧‧接收/偵測邏輯
1403‧‧‧評估邏輯
1405‧‧‧中間建立/映射邏輯
1407‧‧‧執行/應用邏輯
1409‧‧‧通訊/相容性邏輯
1430‧‧‧資料庫
1453‧‧‧著色器編譯器
1500‧‧‧交易序列
1501‧‧‧原始核心
1503‧‧‧讀取/寫入命令序列
1511‧‧‧原始命令序列
1513A‧‧‧分派0
1513B‧‧‧分派1
1513C‧‧‧分派2
1513D‧‧‧分派3
1513E‧‧‧分派4
1515A、1515B、1515C、1515D‧‧‧輸入/輸出互換
1521‧‧‧融合核心
1523‧‧‧for-迴路
1525‧‧‧互換輸入/輸出
1531‧‧‧新命令序列
1533‧‧‧分派
1600、1650‧‧‧方法
實施例在該隨附圖式的圖中係藉由範例而非藉由限制的方式說明,其中相似的參考數字參考至相似元件。
圖1係根據實施例之處理系統的方塊圖。
圖2係具有一或多個處理器核心、積體記憶體控制器、及積體圖形處理器的處理器之實施例的方塊圖。
圖3係可係分離式圖形處理單元或可係與複數個處理核心積體之圖形處理器的圖形處理器的方塊圖。
圖4係根據部分實施例的圖形處理器之圖形處理引擎的方塊圖。
圖5係圖形處理器之另一實施例的方塊圖。
圖6描繪包括使用在圖形處理引擎的部分實施例中之處理元件陣列的緒程執行邏輯。
圖7係根據部分實施例描繪圖形處理器指令格式的方塊圖。
圖8係圖形處理器之另一實施例的方塊圖。
圖9A係根據實施例描繪圖形處理器命令格式的方塊圖,且圖9B係根據實施例描繪圖形處理器命令序列的方塊圖。
圖10根據部分實施例描繪用於資料處理系統的例示圖形軟體架構。
圖11係根據實施例描繪可用於製造積體電路以實施操作之IP核心發展系統的方塊圖。
圖12係根據實施例描繪可使用一或多個IP核心製造之例示系統單晶片積體電路的方塊圖。
圖13根據一實施例描繪使用動態運行時命令變換機制的計算裝置。
圖14A根據一實施例描繪動態運行時命令變換機制。
圖14B根據一實施例描繪架構配置。
圖15根據一實施例描繪包括用於有效地處理命令序列之編譯時間及運行時交易的交易序列。
圖16A根據一實施例描繪包括用於有效地處理命令序列之編譯時間處理的方法。
圖16B根據一實施例描繪包括用於有效地處理命令序列之運行時處理的方法。
【發明內容及實施方式】
在以下描述中,陳述許多特定細節。然而,本文描述的實施例可不需要此等特定細節實踐。在其他實例中,未詳細顯示已為人所熟知之電路、結構、以及技術,以不模糊對此描述的理解。
實施例提供新穎架構及方法以致能圖形驅動程式實施高及低端最佳化二者,以減少應用程式發展成本不而犧牲效能。例如且在一實施例中,圖形驅動程式可依據功能及效能使用未經由應用程式發展介面(API)暴露的硬體的特定基本特性以超出應用程式所可能實現的。另外,在一實施例中,圖形驅動程式可藉由此新穎技術協助以記錄GPGPU命令的串流及在其上提交工作之前使用與基本GPU有關的知識計算著色器核心及後續處理。
實施例提供用於在應用程式(例如,三維(3D)遊戲)執行期間由其提出之命令分派的動態及運行時變換的新穎技術,其中,在一實施例中,為了應用程式的更佳或 更有效率的著色,此種分派可在數目上減少、在數目上增加、組合成較少分派、分開至額外分派中、路由或重路由、及/或抑制或前推等,並將於此文件通篇進一步討論。
預期且應注意「分派」可互換地稱為「工作單元」或「繪圖」,且相似地,「應用程式」可互換地稱為「工作流程」。例如,工作量,諸如,3D遊戲,可包括並發佈任何數目及種類的「框」,其中各框可表示影像(例如,帆船、人臉)。另外,各框可包括及提供任何數目及種類的工作單元、其中各工作單元可表示藉由其對應框表示之影像(例如,帆船、人臉)的一部分(例如,帆船桅杆、人臉前額)。然而,為了一致性、以及簡潔、清晰、及易於理解,任何單數術語,諸如,「分派」、「應用程式」等,可通篇應用在此文件中。
預期GPGPU API可允許GPU的任意編程,諸如,在遊戲及高效能計算中。在一實施例中,諸如,在3D遊戲及高效能計算的情形中,此新穎技術可促進圖形驅動程式實施各種工作以減少在每一個GPU中最佳化應用程式上所花費的工作,並因此改善使用者(例如,開發者、終端使用者)經驗,其中各演算法的圖形效能可自動地經由圖形驅動程式改善。例如,應用程式可包括經由API,諸如,免費著色API,諸如,開放圖形程式庫(OpenGL®)、DirectX® 11等,提供的遊戲、工作站應用程式等。
在部分實施例中,像是「顯示螢幕」及「顯示表面」等的術語可互換地用於指稱顯示裝置的可見部分,同時顯示裝置的其餘部分可嵌入至計算裝置中,諸如,智慧型手機、可穿戴裝置等。預期且應注意實施例並未受限於任何特定的計算裝置、軟體應用程式、硬體組件、顯示裝置、顯示螢幕或表面、協定、標準等。例如,實施例可施用並使用在任何數目及種類之電腦,諸如,桌上型電腦、膝上型電腦、平板電腦、智慧型手機、頭戴式裝置、及/或其他可穿戴裝置等,上的任何數目及種類的即時應用程式。另外,例如,針對高效能使用此新穎技術的著色情景的範圍可從簡單情景,諸如,桌面組合,至複雜情景,諸如,3D遊戲、擴增實境應用程式等。
系統概觀
圖1根據實施例描繪處理系統100的方塊圖。在各種實施例中,處理系統100包括一或多個處理器102及一或多個圖形處理器108,並可係單處理器桌上型系統、多處理器工作站系統、或具有大量處理器102或處理器核心107的伺服器系統。在一實施例中,處理系統100係合併在使用在行動、手持、或嵌入式設備中之系統單晶片(SoC)積體電路內的處理平台。
系統100的實施例能包括,或併入基於伺服器的遊戲平台、遊戲控制台,包括遊戲及媒體控制台、行動遊戲控制台、手持遊戲控制台、或線上遊戲控制台內。在部分實 施例中,系統100係行動電話、智慧型手機、平板計算裝置、或行動網際網路裝置。資料處理系統100也能包括可穿戴裝置、與其耦接、或積體於其內,諸如,智慧型手錶可穿戴裝置、智慧型眼鏡裝置、擴增實境裝置、或虛擬實境裝置。在部分實施例中,資料處理系統100係具有一或多個處理器102及藉由一或多個圖形處理器108產生之圖形介面的電視機或機上盒裝置。
在部分實施例中,一或多個處理器102各者包括一或多個處理器核心107以處理當執行時實施用於系統及使用者軟體之操作的指令。在部分實施例中,一或多個處理器核心107各者組態成處理特定指令集109。在部分實施例中,指令集109可協助複雜指令集計算(CISC)、精簡指令集計算(RISC)、或經由極長指令字(VLIW)的計算。多個處理器核心107各者可處理不同指令集109,其可包括指令以協助其他指令集的模擬。處理器核心107也可包括其他處理裝置,諸如,數位訊號處理器(DSP)。
在部分實施例中,處理器102可包括快取記憶體104。取決於架構,處理器102能具有單內部快取記憶體或多級內部快取記憶體。在部分實施例中,快取記憶體在處理器102的各種組件之間共享。在部分實施例中,處理器102也使用外部快取記憶體(例如,3級(L3)快取記憶體、或末級快取記憶體(LLC))(未圖示),其可使用已知快取一致性技術在處理器核心107之間共享。可包括用於儲存不同種類的資料之不同種類的暫存器(例如, 整數暫存器、浮點暫存器、狀態暫存器、及指令指標器暫存器)的暫存器檔案106另外包括在處理器102中。部分暫存器可係通用暫存器,同時其他暫存器對處理器102的設計可係特定的。
在部分實施例中,處理器102耦接至處理器匯流排110,以在處理器102及系統100中的其他組件之間傳輸通訊信號,諸如,位址、資料、或控制信號。在一實施例中,系統100使用例示「集線器」系統架構,包括記憶體控制器集線器116及輸入輸出(I/O)控制器集線器130。記憶體控制器集線器116協助記憶體裝置及系統100的其他組件之間的通訊,同時I/O控制器集線器(ICH)130經由區域I/O匯流排提供至I/O設備的連接。在一實施例中,記憶體控制器集線器116的邏輯積體在處理器內。
記憶體裝置120可係動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、相變記憶體裝置、或具有適當效能以作為處理記憶體的某些其他記憶體裝置。在一實施例中,記憶體裝置120能操作為系統100的系統記憶體,以儲存當一或多個處理器102執行應用程式或處理時使用的資料122及指令121。記憶體控制器集線器116也與選擇性的外部圖形處理器112耦接,其可與處理器102中的一或多個圖形處理器108通訊以實施圖形及媒體操作。
在部分實施例中,ICH 130致能周邊經由高速I/O匯流排連接至記憶體裝置120及處理器102。I/O周邊包 括,但未限於,音訊控制器146、韌體介面128、無線收發器126(例如,Wi-Fi、藍牙)、資料儲存設備124(例如,硬碟驅動器、快閃記憶體等)、及用於耦接傳統(例如,個人系統2(PS/2))裝置至系統的傳統I/O控制器140。一或多個通用串列匯流排(USB)控制器142連接輸入設備,諸如,鍵盤及滑鼠144組合。網路控制器134也可耦接至ICH 130。在部分實施例中,高效能網路控制器(未圖示)耦接至處理器匯流排110。將理解當受不同組態的其他種類的資料處理系統也可使用時,所示系統100係例示性且非限制性的。例如,I/O控制器集線器130可積體在一或多個處理器102內,或記憶體控制器集線器116及I/O控制器集線器130可積體至散離外部圖形處理器中,諸如,外部圖形處理器112。
圖2係具有一或多個處理器核心202A-202N、積體記憶體控制器214、及積體圖形處理器208的處理器200之實施例的方塊圖。具有與本文任何其他圖式之元件相同的參考數字(或名稱)之圖2的此等元件能以與本文他處描述之方式相似的任何方式操作或運作,但未受限於此。處理器200能包括多達並包括藉由虛線方塊表示之額外核心202N的額外核心。各處理器核心202A-202N包括一或多個內部快取記憶體單元204A-204N。在部分實施例中,各處理器核心也具有對一或多個共享快取單元206的存取。
內部快取記憶體單元204A-204N及共享快取單元206代表處理器200內的快取記憶體階層。快取記憶體階層可 包括在各處理器核心內的至少一級指令及資料快取記憶體及一或多級共享中級快取記憶體,諸如,2級(L2)、3級(L3)、4級(L4)、或其他級快取記憶體,其中將外部記憶體之前的最高級快取記憶體分類為LLC。在部分實施例中,快取一致性邏輯保持各種快取記憶體單元206及204A-204N之間的一致性。
在部分實施例中,處理器200也可包括一組一或多個匯流排控制器單元216及系統代理器核心210。一或多個匯流排控制器單元216管理一組周邊匯流排,諸如,一或多個週邊組件互連匯流排(例如,PCI、快速PCI)。系統代理器核心210提供用於各種處理器組件的管理功能。在部分實施例中,系統代理器核心210包括一或多個積體記憶體控制器214以管理對各種外部記憶體裝置(未圖示)的存取。
在部分實施例中,處理器核心202A-202N的一或多者包括對同時多執行緒程的支援。在此種實施例中,系統代理器核心210包括用於在多執行緒程處理期間協調及操作核心202A-202N的組件。系統代理器核心210可額外包括電源控制單元(PCU),其包括邏輯及組件以調節處理器核心202A-202N及圖形處理器208的電源狀態。
在部分實施例中,處理器200額外包括圖形處理器208以執行圖形處理操作。在部分實施例中,圖形處理器208與該組共享快取記憶體單元206及包括一或多個積體記憶體控制器214的系統代理器核心210耦接。在部分實 施例中,顯示控制器211與圖形處理器208耦接以驅動圖形處理器輸出至一或多個耦接的顯示器。在部分實施例中,顯示控制器211可係經由至少一個互連與圖形處理器耦接的分離式模組,或可積體在圖形處理器208或系統代理器核心210內。
在部分實施例中,使用環形為基的互連單元212以耦接處理器200的內部組件。然而,可使用替代互連單元,諸如,點-對-點互連、交換互連、或包括本技術中已為人所熟知之技術的其他技術。在部分實施例中,圖形處理器208經由I/O鏈路213與環形互連212耦接。
例示I/O鏈路213代表I/O互連之多個變化的至少一者,包括協助各種處理器組件及高效能嵌入式記憶體模組218,諸如,eDRAM模組,之間的通訊的封裝上I/O互連。在部分實施例中,各處理器核心202A-202N及圖形處理器208將嵌入式記憶體模組218使用為共享最末級快取記憶體。
在部分實施例中,處理器核心202A-202N係執行相同指令集架構的同質核心。在另一實施例中,處理器核心202A-202N依據指令集架構(ISA)係異質的,其中處理器核心202A-N的一或多者執行第一指令集,同時其他核心的至少一者執行第一指令集的子集或不同指令集。在一實施例中,處理器核心202A-202N依據微架構係異質的,其中具有相對高功率消耗的一或多個核心與具有低功率消耗的一或多個功率核心耦接。另外,處理器200可實 作在一或多個晶片上,或實作為除了具有其他組件外的所說明組件的SoC積體電路。
圖3係可係分離式圖形處理單元或可係與複數個處理核心積體之圖形處理器的圖形處理器300的方塊圖。在部分實施例中,圖形處理器經由記憶體映射I/O介面通訊至圖形處理器上的暫存器及使用放入處理器記憶體中的命令通訊。在部分實施例中,圖形處理器300包括記憶體介面314以存取記憶體。記憶體介面314能係至區域記憶體、一或多個內部快取記憶體、一或多個共享外部快取記憶體、及/或系統記憶體的介面。
在部分實施例中,圖形處理器300也包括顯示控制器302以驅動顯示器輸出資料至顯示器裝置320。顯示控制器302包括用於顯示器及多層視訊或使用者介面元件之組合的一或多個重疊平面的硬體。在部分實施例中,圖形處理器300包括視訊編碼解碼器引擎306以編碼、解碼、或轉碼媒體至一或多個媒體編碼格式、自其編碼、解碼、或轉碼媒體、或在之間編碼、解碼、或轉碼媒體,包括,但未受限於,動畫專家群組(MPEG)格式,諸如,MPEG-2、先進視訊編碼(AVC)格式,諸如,H.264/MPEG-4AVC,以及電影與電視工程師協會(SMPTE)421M/VC-1、及聯合照相專家群(JPEG)格式,諸如,JPEG、及動畫JPEG(MJPEG)格式。
在部分實施例中,圖形處理器300包括區塊影像轉換(BLIT)引擎304以實施包括,例如,位元邊界區塊轉換 的二維(2D)光柵器操作。然而,在一實施例中,2D圖形操作使用圖形處理引擎(GPE)310的一或多個組件實施。在部分實施例中,圖形處理引擎310係用於實施包括三維(3D)圖形操作及媒體操作之圖形操作的計算引擎。
在部分實施例中,GPE 310包括用於實施3D操作的3D管線312,諸如,使用作用在3D基元形狀上(例如,矩形、三角形等)的處理功能著色三維影像及場景。3D管線312包括在元件內實施各種工作及/或產生執行緒程至3D/媒體次系統315的可程式化及固定功能元件。在3D管線312能用於實施媒體操作的同時,GPE 310的實施例也包括特別用於實施媒體操作,諸如,視訊後續處理及影像強化,的媒體管線316。
在部分實施例中,媒體管線316包括取代或代表視訊編碼解碼器引擎306的固定功能或可程式化邏輯單元以實施一或多個特殊化媒體操作,諸如,視訊解碼加速、視訊解交錯、及視訊編碼加速。在部分實施例中,媒體管線316另外包括緒程產生單元以產生用於在3D/媒體次系統315上執行的緒程。已產生的緒程在包括在3D/媒體次系統315中的一或多個圖形執行單元上實施用於媒體操作的計算。
在部分實施例中,3D/媒體次系統315包括用於執行由3D管線312及媒體管線316產生之緒程的邏輯。在一實施例中,管線傳送緒程執行請求至3D/媒體次系統315,其包括用於仲裁及分派各種請求至可用緒程執行資 源的緒程分派邏輯。執行資源包括圖形執行單元的陣列以處理3D及媒體緒程。在部分實施例中,3D/媒體次系統315包括用於緒程指令及資料的一或多個內部快取記憶體。在部分實施例中,次系統也包括共享記憶體,包括暫存器及可定址記憶體,以在緒程之間共享資料及儲存輸出資料。
3D/媒體處理
圖4係根據部分實施例的圖形處理器之圖形處理引擎410的方塊圖。在一實施例中,GPE 410係顯示於圖3中之GPE 310的版本。具有與本文任何其他圖式之元件相同的參考數字(或名稱)之圖4的元件能以與本文他處描述之方式相似的任何方式操作或運作,但未受限於此。
在部分實施例中,GPE 410與命令串流器403耦接,其提供命令串流至GPE的3D及媒體管線412、416。在部分實施例中,命令串流器403耦接至記憶體,其能係系統記憶體,或內部快取記憶體及共享快取記憶體的一或多者。在部分實施例中,命令串流器403從記憶體接收命令並傳送命令至3D管線412及/或媒體管線416。該命令係從儲存用於3D及媒體管理412、416之命令的環形緩衝器提取的指令。在一實施例中,環形緩衝器能另外包括儲存多個命令之批次的批次命令緩衝器。3D及媒體管線412、416藉由經由個別管線內的邏輯實施操作或藉由分派一或多個執行緒程至執行單元陣列414而處理命令。在部分實 施例中,執行單元陣列414係可縮放的,使得陣列基於GPE 410的目標電源及效能等級包括可變數量的執行單元。
在部分實施例中,取樣引擎430與記憶體(例如,快取記憶體或系統記憶體)及執行單元陣列414耦接。在部分實施例中,取樣引擎430為執行單元陣列414提供允許執行陣列414從記憶體讀取圖形及媒體資料的記憶體存取機制。在部分實施例中,取樣引擎430包括邏輯以實施用於媒體的特殊化影像取樣操作。
在部分實施例中,取樣引擎430中的特殊化媒體取樣邏輯包括去雜訊/解交錯模組432、動作估計模組434、及影像縮放及過濾模組436。在部分實施例中,去雜訊/解交錯模組432包括邏輯以在已解碼視訊資料上實施去雜訊或解交錯演算法的一或多者。解交錯邏輯將交錯視訊內容的交替場結合成單一視訊框。去雜訊邏輯減少或移除來自視訊及影像資料的資料雜訊。在部分實施例中,去雜訊邏輯及解交錯邏輯係動作調適的,並基於在視訊資料中偵測的動作量使用空間或時間過濾。在部分實施例中,去雜訊/解交錯模組432包括專用動作偵測邏輯(例如,在動作估計引擎434內)。
在部分實施例中,動作估計引擎434藉由實施視訊加速功能,諸如,視訊資料上的動作向量估計及預測,為視訊操作提供硬體加速。動作估計引擎決定描述連續視訊框之間的影像資料之變換的動作向量。在部分實施例中,圖 形處理器媒體編碼解碼器使用視訊動作估計引擎434以在其可係太過計算密集而不能使用通用處理器實施之巨集區塊層級的視訊上實施操作。在部分實施例中,動作估計引擎434通常可用於圖形處理器組件以輔助對視訊資料內之動作的方向或幅度靈敏或適應其的視訊解碼及處理功能。
在部分實施例中,影像縮放及過濾模組436實施影像處理操作以增強所產生之影像及視訊的視覺品質。在部分實施例中,縮放及過濾模組436在將資料提供至執行單元陣列414之前的取樣操作期間處理影像及視訊資料。
在部分實施例中,GPE 410包括資料埠444,其為圖形次系統提供存取記憶體的額外機制。在部分實施例中,資料埠444協助用於操作的記憶體存取,包括著色目標寫入、固定緩衝器讀取、暫用記憶體空間讀/寫、及媒體表面存取。在部分實施例中,資料埠444包括快取記憶體空間以快取對記憶體的存取。快取記憶體能係單一資料快取記憶體或能分割為用於多個次系統之經由資料埠存取記憶體的多個快取記憶體(例如,著色緩衝器快取記憶體、固定緩衝器快取記憶體等)。在部分實施例中,在執行單元陣列414中之執行單元上執行的緒程藉由經由耦接GPE 410之各次系統的資料分配互連交換訊息而與資料埠通訊。
執行單元
圖5係圖形處理器500之另一實施例的方塊圖。具有 與本文任何其他圖式之元件相同的參考數字(或名稱)之圖5的元件能以與本文他處描述之方式相似的任何方式操作或運作,但未受限於此。
在部分實施例中,圖形處理器500包括環形互連502、管線前端504、媒體引擎537、及圖形核心580A-580N。在部分實施例中,環形互連502將圖形處理器耦接至其他處理單元,包括其他圖形處理器或一或多個通用處理器核心。在部分實施例中,圖形處理器係積體在多核心處理系統內之許多處理器的一者。
在部分實施例中,圖形處理器500經由環型互連502接收命令的批次。輸入命令係由管線前端504中的命令串流器503解譯。在部分實施例中,圖形處理器500包括可縮放執行邏輯以經由圖形核心(等)580A-580N實施3D幾何處理及媒體處理。針對3D幾何處理命令,命令串流器503供應命令至幾何管線536。針對至少部分的媒體處理命令,命令串流器503供應命令至與媒體引擎537耦接的視訊前端534。在部分實施例中,媒體引擎537包括用於視訊及影像後續處理的視訊品質引擎(VQE)530及多格式編碼/解碼(MFX)533引擎以提供硬體加速媒體資料編碼及解碼。在部分實施例中,幾何管線536及媒體引擎537各者針對由至少一個圖形核心580A提供的緒程執行資源產生執行緒程。
在部分實施例中,圖形處理器500包括可縮放緒程執行資源特性模核心580A-580N(有時稱為核心片),各者 具有多個次核心550A-550N、560A-560N(有時稱為核心次片)。在部分實施例中,圖形處理器500能具有任何數目的圖形核心580A至580N。在部分實施例中,圖形處理器500包括具有至少第一次核心550A及第二次核心560A的圖形核心580A。在其他實施例中,圖形處理器係具有單一次核心(例如,550A)的低功率處理器。在部分實施例中,圖形處理器500包括多個圖形核心580A-580N,各者包括一組第一次核心550A-550N及一組第二次核心560A-560N。在該組第一次核心550A-550N中的各次核心包括至少第一組執行單元552A-552N及媒體/紋理取樣器554A-554N。在該組第二次核心560A-560N中的各次核心包括至少第二組執行單元562A-562N及取樣器564A-564N。在部分實施例中,各次核心550A-550N、560A-560N共享一組共享資源570A-570N。在部分實施例中,共享資源包括共享快取記憶體及像素操作邏輯。其他共享資源也可包括在圖形處理器的各種實施例中。
圖6描繪包括使用在GPE之部分實施例中的處理元件陣列的緒程執行邏輯600。具有與本文任何其他圖式之元件相同的參考數字(或名稱)之圖6的元件能以與本文他處描述之方式相似的任何方式操作或運作,但未受限於此。
在部分實施例中,緒程執行邏輯600包括像素著色器602、緒程分派器604、指令快取記憶體606、包括複數個執行單元608A-608N的可縮放執行單元陣列、取樣器 610、資料快取記憶體612、及資料埠614。在一實施例中,經由鏈接至各組件的互連結構將所包括的組件互連。在部分實施例中,緒程執行邏輯600包括經由指令快取記憶體606、資料埠614、取樣器610、及執行單元陣列608A-608N的一或多者至記憶體,諸如,系統記憶體或快取記憶體,的一或多個連接。在部分實施例中,各執行單元(例如,608A)係能執行多個同步緒程及為各緒程平行地處理多個資料元件的獨立向量處理器。在部分實施例中,執行單元陣列608A-608N包括任何數目的獨立執行單元。
在部分實施例中,執行單元陣列608A-608N主要用於執行「著色器」程式。在部分實施例中,陣列608A-608N中的執行單元執行包括對許多標準3D圖形著色器指令的原生支援的指令集,使得來自圖形程式庫(例如,Direct 3D及OpenGL)的著色器程式使用最小轉譯執行。執行單元支援頂點及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、片段著色器)、及通用處理(例如,計算及媒體著色器)。
執行單元陣列608A-608N中的各執行單元在資料元件的陣列上操作。資料元件的數量係「執行尺寸」或該指令的通道數。執行通道係用於指令內的資料元件存取、遮罩、及流程控制之執行的邏輯單元。通道數可與用於特定圖形處理器之實體算術邏輯單元(ALU)或浮點單元(FPU)的數量無關。在部分實施例中,執行單元608A- 608N支援整數及浮點資料類別。
執行單元指令集包括單指令多資料(SIMD)指令。各種資料元件能作為封裝資料類別儲存在暫存器中,且執行單元將基於元件的資料尺寸處理各種元件。例如,當在256-位元寬的向量上操作時,向量的256個位元儲存在暫存器中,且執行單元在作為四個分離的64-位元封裝資料元件(四字組(QW)尺寸資料元件)、八個分離的32-位元封裝資料位元(雙字組(DW)尺寸資料元件)、十六個分離的16-位元封裝資料元件(字組(W)尺寸資料元件)、或三十二個分離的8-位元資料元件(位元組(B)尺寸資料元件)的向量上操作。然而,不同的向量寬度及暫存器尺寸係可能的。
一或多個內部指令快取記憶體(例如,606)包括在緒程執行邏輯600中以快取用於執行單元的緒程指令。在部分實施例中,包括一或多個資料快取記憶體(例如,612)以在緒程執行期間快取緒程資料。在部分實施例中,包括取樣器610以提供用於3D操作的紋理取樣及用於媒體操作的媒體取樣。在部分實施例中,取樣器610包括特殊化紋理或媒體取樣功能以在提供已取樣資料至執行單元之前的取樣處理期間處理紋理或媒體資料。
在執行期間,圖形及媒體管線經由緒程產生及分派邏輯傳送緒程啟始請求至緒程執行邏輯600。在部分實施例中,緒程執行邏輯600包括仲裁來自圖形及媒體管線之緒程啟始請求及在一或多個執行單元608A-608N上將該已 請求緒程實例化的區域緒程分派器604。例如,幾何管線(例如,圖5的536)分派頂點處理、細分曲面、或幾何處理緒程至緒程執行邏輯600(圖6)。在部分實施例中,緒程分派器604也能處理來自執行著色器程式的運行時緒程產生請求。
一旦幾何物件的群組已受處理並光柵化為像素資料,調用像素著色器602以更計算輸出資訊並導致結果寫至輸出表面(例如,彩色緩衝器、深度緩衝器、模版緩衝器等)。在部分實施例中,像素著色器602計算待橫跨光柵化物件內插之各種頂點屬性的值。在部分實施例中,然後像素著色器602執行應用程式發展介面(API)-支援的像素著色器程式。為執行像素著色器程式,像素著色器602經由緒程分派器604分派緒程至執行單元(例如,608A)。在部分實施例中,像素著色器602使用取樣器610中的紋理取樣邏輯以存取儲存在記憶體中之紋理映射中的紋理資料。紋理資料及輸入幾何資料上的算術操作計算各幾何片段的像素顏色值,或從進一步處理拋棄一或多個像素。
在部分實施例中,資料埠614提供用於緒程執行邏輯600的記憶體存取機制以針對圖形處理器輸出管線上之處理輸出已處理資料至記憶體。在部分實施例中,資料埠614包括或耦接至一或多個快取記憶體(例如,資料快取記憶體612)以經由資料埠快取用於記憶體存取的資料。
圖7係根據部分實施例描繪圖形處理器指令格式700 的方塊圖。在一或多個實施例中,圖形處理器執行單元支援具有採用多種格式之指令的指令集。實線框描繪通常包括在執行單元指令中的成分,同時虛線包括其係選擇性的或其僅包括在指令之子集中的成分。在部分實施例中,所描述及說明的指令格式700係巨集指令,其中彼等係供應至執行單元的指令,而非一旦指令受處理從指令解碼產生的微運算。
在部分實施例中,圖形處理器執行單元原生地支援採用128-位元格式710的指令。64-位元緊湊指令格式730可基於所選擇的指令、指令選項、及運算元數對部分指令可用。原生128-位元格式710提供對所有指令選項的存取,同時部分選項及操作在64-位元格式730中受限制。在64-位元格式730中可用的原生指令隨實施例變化。在部分實施例中,指令使用索引欄位713中的一組索引值受部分壓縮。執行單元硬體基於索引值參考一組壓縮表,並使用壓縮表輸出以採用128-位元格式710重構原生指令。
針對各格式,指令運算碼712界定執行單元待實施的操作。執行單元橫跨各運算元的多個資料元件平行地執行各指令。例如,回應於加法指令,執行單元橫跨代表紋理元件或圖片元件的各顏色通道實施同步加法運算。預設執行單元橫跨運算元的所有資料通道實施各指令。在部分實施例中,指令控制欄位714致能特定執行選項上的控制,諸如,通道選擇(例如,預測)及資料通道層級(例如,交叉混合)。針對128-位元指令710,執行尺寸欄位716 限制將平行執行的資料通道數。在部分實施例中,執行尺寸欄位716不可使用在64-位元緊湊指令格式730中。
部分執行單元指令具有多達包括二個來源運算元src0 720、src1 722及一個目的718的三個運算元。在部分實施例中,執行單元支援雙目的指令,其中該目的的一者係隱含的。資料操控指令能具有第三個來源運算元(例如,SRC2 724),其中指令運算碼712決定來源運算元的數量。指令的最後來源運算元能係隨該指令傳送的立即(例如,硬編碼)值。
在部分實施例中,128-位元指令格式710包括指定,例如,是否使用直接暫存器定址模式或間接暫存器定址模式的存取/定址模式資訊726。當使用直接暫存器定址模式時,一或多個運算元的暫存器位址係藉由指令710中的位元直接提供。
在部分實施例中,128-位元指令格式710包括存取/定址模式欄位726,其指定該指令的定址模式及/或存取模式。在一實施例中,存取模式界定指令的資料存取對準。部分實施例支援包括16-位元組對準存取模式及1-位元組對準存取模式的存取模式,其中存取模式的位元組對準決定指令運算元的存取對準。例如,當在第一模式時,指令710可將位元組對準定址用於來源及目的運算元,且當在第二模式時,指令710可將16-位元組對準定址用於所有來源及目的運算元。
在一實施例中,存取/定址模式欄位726的定址模式 部分決定指令使用直接或間接定址。當使用直接暫存器定址模式時,指令710中的位元直接提供一或多個運算元的暫存器位址。當使用間接暫存器定址模式時,一或多個運算元的暫存器位址可基於指令中之位址暫存器值及位址立即欄位計算。
在部分實施例中,指令基於運算碼712位元欄位分組以簡化運算碼解碼740。針對8-位元運算碼,位元4、5、及6允許執行單元決定運算碼的種類。所顯示的精確運算碼分組僅係範例。在部分實施例中,移動及邏輯運算碼群組742包括資料移動及邏輯指令(例如,移動(mov)、比較(cmp))。在部分實施例中,移動及邏輯群組742分享五個最高有效位元(MSB),其中移動(mov)指令採用0000xxxxb的形式且邏輯指令採用0001xxxxb的形式。流程控制指令群組744(例如,呼叫、跳躍(jmp))包括採用0010xxxxb(例如,0x20)之形式的指令。雜項指令群組746包括指令的混合,包括採用0011xxxxb(例如0x30)之形式的同步指令(例如,等待、傳送)。平行數學指令群組748包括採用0100xxxxb(例如,0x40)之形式的逐成分算術指令(例如,加法、乘法(mul))。平行數學群組748橫跨資料通道平行地實施算術操作。向量數學群組750包括採用0101xxxxb(例如,0x50)之形式的算術指令(例如,dp4)。向量數學群組在向量運算元上實施算術,諸如,點乘積計算。
圖形管線
圖8係圖形處理器800之另一實施例的方塊圖。具有與本文任何其他圖式之元件相同的參考數字(或名稱)之圖8的元件能以與本文他處描述之方式相似的任何方式操作或運作,但未受限於此。
在部分實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、緒程執行邏輯850、及著色輸出管線870。在部分實施例中,圖形處理器800係在包括一或多個通用處理核心之多核心處理系統內的圖形處理器。圖形處理器係藉由至一或多個控制暫存器(未圖示)的暫存器寫入或經由環形互連802發佈至圖形處理器800的命令而受控制。在部分實施例中,環形互連802將圖形處理器800耦接至其他處理組件,諸如,其他圖形處理器或通用處理器。來自環形互連802的命令藉由命令串流器803解譯,其供應指令至圖形管線820或媒體管線830的個別組件。
在部分實施例中,命令串流器803指導從記憶體讀取頂點資料並執行由命令串流器803提供的頂點處理命令之頂點提取器805的操作。在部分實施例中,頂點提取器805提供頂點資料至頂點著色器807,其對各頂點實施座標空間變換及照明操作。在部分實施例中,頂點提取器805及頂點著色器807藉由經由緒程分派器831分派執行緒程至執行單元852A、852B而執行頂點處理指令。
在部分實施例中,執行單元852A、852B係具有用於 實施圖形及媒體操作的指令集之向量處理器的陣列。在部分實施例中,執行單元852A、852B具有特別用於各陣列或在陣列間共享的附接L1快取記憶體851。快取記憶體能組態成資料快取記憶體、指令快取記憶體、或分區以在不同分區中包含資料及指令的單一快取記憶體。
在部分實施例中,圖形管線820包括細分曲面組件以實施3D物件的硬體加速細分曲面。在部分實施例中,可程式化外殼著色器811組態細分曲面操作。可程式化域著色器817提供細分曲面輸出的後端估算。細分曲面器813在外殼著色器811的方向上操作並包含專用邏輯以基於作為輸入提供至圖形管線820的粗糙幾何模型產生一組詳細幾何物件。在部分實施例中,若不使用細分曲面,細分曲面組件811、813、817能略過。
在部分實施例中,完全幾何物件能經由分派至執行單元852A、852B的一或多個緒程而藉由幾何著色器819處理,或能直接進行至限幅器829。在部分實施例中,幾何著色器在全體幾何物件上操作,而非如圖形管線的先前階段,在頂點或頂點的貼片上操作。若將細分曲面除能,幾何著色器819接收來自頂點著色器807的輸入。在部分實施例中,若將細分曲面單元除能,幾何著色器819可藉由幾何著色器程式程式化以實施幾何細分曲面。
限幅器829在光柵化之前處理頂點資料。限幅器829可係固定功能限幅器或具有限幅及幾何著色器功能的可程式化限幅器。在部分實施例中,著色輸出管線870中的光 柵器及深度測試組件873分派像素著色器以將幾何物件轉換為彼等的每像素表示。在部分實施例中,像素著色器邏輯包括在緒程執行邏輯850中。在部分實施例中,應用程式能略過光柵器873並經由串流輸出單元823存取未光柵化頂點資料。
圖形處理器800具有互連匯流排、互連結構、或允許資料及訊息在處理器的主組件之間傳送的某些其他互連機制。在部分實施例中,執行單元852A、852B及關聯快取記憶體(等)851、紋理及媒體取樣器854、及紋理/取樣器快取記憶體858經由資料埠856互連以實施記憶體存取及與處理器的著色輸出管線組件通訊。在部分實施例中,取樣器854、快取記憶體851、858、及執行單元852A、852B各者具有分離的記憶體存取路徑。
在部分實施例中,著色輸出管線870包含將基於頂點的物件轉換為關聯的基於像素表示的光柵器及深度測試組件873。在部分實施例中,光柵器邏輯包括窗化器/遮罩器單元以實施固定功能三角及線光柵化。關聯著色器快取記憶體878及深度快取記憶體879也可用在部分實施例中。像素運算組件877在資料上實施基於像素的運算,雖然在部分實例中,與2D運算關聯的像素運算(例如,使用混合的位元區塊影像轉換)係由2D引擎841實施,或使用重疊顯示平面藉由顯示控制器843在顯示時取代。在部分實施例中,共享L3快取記憶體875對所有圖形組件可用,允許資料共享而不需使用主系統記憶體。
在部分實施例中,圖形處理器媒體管線830包括媒體引擎837及視訊前端834。在部分實施例中,視訊前端834從命令串流器803接收管線命令。在部分實施例中,媒體管線830包括分離的命令串流器。在部分實施例中,視訊前端834在傳送媒體命令至媒體引擎837之前處理該命令。在部分實施例中,媒體引擎837包括緒程產生功能以產生用於經由緒程分派器831分派至緒程執行邏輯850的緒程。
在部分實施例中,圖形處理器800包括顯示引擎840。在部分實施例中,顯示引擎840在處理器800外部並經由環形互連802,或某些其他互連匯流排或結構與圖形處理器耦接。在部分實施例中,顯示引擎840包括2D引擎841及顯示控制器843。在部分實施例中,顯示引擎840包含能與3D管線無關地操作的專用邏輯。在部分實施例中,顯示控制器843與顯示器裝置(未圖示)耦接,其可係系統積體顯示器裝置,如在膝上型電腦中,或經由顯示器裝置連接器附接的外部顯示器裝置。
在部分實施例中,圖形管線820及媒體管線830可組態以基於多個圖形及媒體程式化介面實施操作,且不特定於任何一個應用程式發展介面(API)。在部分實施例中,用於圖形處理器的驅動程式軟體將特定於特定圖形或媒體程式庫的API呼叫轉譯為能由圖形處理器處理的命令。在部分實施例中,提供對來自Khronos組織的開放圖形程式庫(OpenGL)及開放計算語言(OpenCL)、來自 微軟公司之Direct3D程式庫的支援,或可對OpenGL及D3D二者提供支援。也可對開放原始碼電腦視覺程式庫(OpenCV)提供支援。若能產生從未來API的管線至圖形處理器之管線的映射,具有相容3D管線的未來API也會受支援。
圖形管線程式化
圖9A係根據部分實施例描繪圖形處理器命令格式900的方塊圖。圖9B係根據實施例描繪圖形處理器命令序列910的方塊圖。圖9A中的實線框描繪通常包括在圖形命令中的成分,同時虛線包括其係選擇性的或其僅包括在圖形命令之子集中的成分。圖9A之例示圖形處理器命令格式900包括資料欄位以識別命令的目標用戶端902、命令運算碼(opcode)904、及用於命令的相關資料906。次運算碼905及命令尺寸908也包括在部分命令中。
在部分實施例中,用戶端902指定處理命令資料之圖形裝置的用戶端單元。在部分實施例中,圖形處理器命令剖析器調查各命令的用戶端欄位,以調節命令的進一步處理及將命令資料路由至適當用戶端單元。在部分實施例中,圖形處理器用戶端單元包括記憶體介面單元、著色單元、2D單元、3D單元、及媒體單元。各用戶端單元具有處理命令的對應處理管線。一旦命令為用戶端單元接收,用戶端單元讀取運算碼904,且若次運算碼905存在,也讀取其,以決定要實施的運算。用戶端單元使用資料欄位 906中的資訊實施命令。針對部分命令,預期明顯的命令尺寸908指定命令的尺寸。在部分實施例中,命令剖析器基於命令運算碼自動地決定至少部分命令的尺寸。在部分實施例中,命令經由雙字組的倍數對準。
圖9B中的流程圖顯示例示圖形處理器命令序列910。在部分實施例中,將圖形處理器的實施例特徵化之資料處理系統的軟體或韌體使用所示之命令序列的版本以設定、執行、及終止一組圖形運算。僅用於範例之目的顯示及描述為實施例的樣本命令序列並未受限於此等特定命令或此命令序列。再者,命令在命令序列中發佈為命令的批次,使得圖形處理器將以至少部分並行性處理命令序列。
在部分實施例中,圖形處理器命令序列910可使用管線清除命令912開始以導致任何活動圖形管線完成該管線的目前未決命令。在部分實施例中,3D管線922及媒體管線924不並行地操作。實施管線理除以導致活動圖形管線完成任何未決命令。回應於管線清除,用於圖形處理器的命令剖析器將暫停命令處理,直至活動繪圖引擎完成未決運算並將相關讀取快取記憶體無效化。選擇性地,能將著色快取記憶體中標示為「不潔」的任何資料清除至記憶體。在部分實施例中,管線清除命令912能用於管線同步化或在將圖形處理器置入低功率狀態之前使用。
在部分實施例中,當命令序列需要圖形處理器明顯地在管線間交換時,使用管線選擇命令913。在部分實施例 中,除非執行本文對二管線發佈命令,在發佈管線命令之前,管線選擇命令913在本文內僅需要一次。在部分實施例中,管線清除命令912必需緊接在經由管線選擇命令913的管線交換之前。
在部分實施例中,管線控制命令914組態用於運算的圖形管線並用於程式化3D管線922及媒體管線924。在部分實施例中,管線控制命令914組態活動管線的管線狀態。在一實施例中,管線控制命令914用於管線同步化及在處理命令批次之前從活動管線內的一或多個快取記憶體清除資料。
在部分實施例中,使用回覆緩衝器狀態命令916組態用於個別管線的一組回覆緩衝器以寫入資料。部分管線運算需要運算在處理期間將中間資料寫入至其的一或多個回覆緩衝器的配置、選擇、或組態。在部分實施例中,圖形處理器也使用一或多個回覆緩衝器以儲存輸出資料及實施跨緒程通訊。在部分實施例中,回覆緩衝器狀態916包括選擇用於一組管線運算之回覆緩衝器的尺寸及數量。
命令序列中的殘餘命令基於用於運算的活動管線而不同。基於管線決定920,命令序列對以3D管線狀態930開始的3D管線922,或以媒體管線狀態940開始的媒體管線924定制。
用於3D管線狀態930的命令包括用於頂點緩衝器狀態、頂點元素狀態、固定顏色狀態、深度緩衝器狀態、及待在處理3D基元命令之前組態的其他狀態變數的3D狀 態設定命令。此等命令的值至少部分基於所使用的特定3D API決定。在部分實施例中,若將不使用特定管線元件,3D管線狀態930命令也能選擇性地除能或略過彼等。
在部分實施例中,使用3D基元932命令提出待由3D管線處理的3D基元。將經由3D基元932命令傳至圖形處理器的命令及關聯參數轉發至圖形管線中的頂點提取功能。頂點提取功能使用3D基元932命令資料以產生頂點資料結構。頂點資料結構儲存在一或多個回覆緩衝器中。在部分實施例中,使用3D基元932命令以經由頂點著色器在3D基元上實施頂點操作。為處理頂點著色器,3D管線922分派著色器執行緒程至圖形處理器執行單元。
在部分實施例中,3D管線922經由執行934命令或事件觸發。在部分實施例中,暫存器寫入觸發命令執行。在部分實施例中,執行經由命令序列中的「go」或「kick」命令觸發。在一實施例中,命令執行係使用管線同步化命令觸發以經由圖形管線清除命令序列。3D管線將實施用於3D基元的幾何處理。一旦運算完成,所產生的幾何物件受光柵化且像素引擎將所產生的像素上色。也可包括用於此等運算的額外命令以控制像素著色及像素後端運算。
在部分實施例中,當實施媒體運算時,圖形處理器命令序列910遵循媒體管線924路徑。通常,媒體管線924的具體使用及程式化方式相依於待實施的媒體或計算運 算。具體媒體解碼運算可在媒體解碼期間卸載至媒體管線。在部分實施例中,媒體管線也能略過,且媒體解碼能完全地或部分地使用由一或多個通用處理核心提供的資源實施。在一實施例中,媒體管線也包括用於通用圖形處理器單元(GPGPU)運算的元件,其中圖形處理器用於實施使用不明顯相關於圖形基元的著色之計算著色器程式的SIMD向量操作。
在部分實施例中,媒體管線924以與3D管線922相似的方式組態。在媒體物件命令942之前,將一組媒體管線狀態命令940分派或置入命令佇列中。在部分實施例中,媒體管線狀態命令940包括資料以組態將用於處理媒體物件的媒體管線元件。此包括資料,諸如,編碼或解碼格式,以組態媒體管線內的視訊解碼及視訊編碼邏輯。在部分實施例中,媒體管線狀態命令940也支援一或多個指標器的使用以「間接」指向包含狀態設定批次的狀態元件。
在部分實施例中,媒體物件命令942供應指向藉由媒體管線處理之媒體物件的指標器。媒體物件包括包含待處理之視訊資料的記憶體緩衝器。在部分實施例中,所有媒體管線狀態在發佈媒體物件命令942之前必須係有效的。一旦管線狀態受組態並將媒體物件命令942放入佇列,媒體管線924經由執行命令944或等效執行事件(例如,暫存器寫入)觸發。然後來自媒體管線924的輸出可藉由3D管線922或媒體管線924提供的運算受後續處理。在 部分實施例中,GPGPU運算以與媒體運算相似的方式組態及執行。
圖形軟體架構
圖10根據部分實施例描繪用於資料處理系統1000的例示圖形軟體架構。在部分實施例中,軟體架構包括3D圖形應用程式1010、作業系統1020、及至少一個處理器1030。在部分實施例中,處理器1030包括圖形處理器1032及一或多個通用處理器核心(等)1034。圖形應用程式1010及作業系統1020各者在資料處理系統的系統記憶體1050中執行。
在部分實施例中,3D圖形應用程式1010包含包括著色器指令1012的一或多個著色器程式。著色器語言指令可採用高階著色器語言,諸如,高階著色器語言(HLSL)或開放圖形程式庫著色器語言(GLSL)。應用程式也包括採用適於由通用處理器核心1034執行之機器語言的可執行指令1014。應用程式也包括由頂點資料界定的圖形物件1016。
在部分實施例中,作業系統1020係來自微軟公司的微軟®視窗®作業系統、專屬UNIX-類作業系統、或使用Linux核心之變體的開放原始碼UNIX-類作業系統。當使用Direct3D API時,作業系統1020使用前端著色器編譯器1024以將採用HLSL的任何著色器指令1012編譯為低階著色器語言。編譯可係即時(JIT)編譯或應用程式能 實施著色器預編譯。在部分實施例中,高階著色器可在3D圖形應用程式1010的編譯期間編譯為低階著色器。
在部分實施例中,使用者模式圖形驅動程式1026包含後端著色器編譯器1027以將著色器指令1012轉換為硬體特定表示。當使用OpenGL API時,GLSL高階語言中的著色器指令1012傳至用於編譯的使用者模式圖形驅動程式1026。在部分實施例中,使用者模式圖形驅動程式1026使用作業系統核心模式功能1028以與核心模式圖形驅動程式1029通訊。在部分實施例中,核心模式圖形驅動程式1029與圖形處理器1032通訊以分派命令及指令。
IP核心實作
至少一個實施例的一或多個樣態可藉由儲存在機器可讀媒體上之代表及/或界定積體電路,諸如,處理器,內之邏輯的代表性碼實作。例如,機器可讀媒體可包括代表處理器內之各種邏輯的指令。當由機器讀取時,該指令可導致機器製造邏輯以實施本文描述的技術。稱為「IP核心」的此種代表係用於積體電路之可在實體、機器可讀媒體上儲存為描述該積體電路的結構之硬體模型的可重用邏輯單元。可將硬體模型供應至各種客戶或製造設施,其將該硬體模型載入在製造積體電路的製造機器上。可將積體電路製造成使得該電路實施與本文描述之任何實施例關聯地描述的操作。
圖11係根據實施例描繪可用於製造積體電路以實施 操作之IP核心發展系統1100的方塊圖。IP核心發展系統1100可用於產生能併入更大設計或用於建構整體積體電路(例如,SOC積體電路)的模組化可重用設計。設計設施1130能以高階程式化語言(例如,C/C++)產生IP核心設計的軟體模擬1110。軟體模擬1110能用於設計、測試、及驗證IP核心的行為。然後能從模擬模型1100產生或合成暫存器轉移層次(RTL)設計。RTL設計1115係將硬體暫存器之間的數位信號流模型化之積體電路的抽象行為,包括使用模型化數位信號實施的關聯邏輯。除了RTL設計1115外,也可產生、設計、或合成邏輯層級或電晶體層級的低階設計。因此,最初設計及模擬的特定細節可變化。
RTL設計1115或等效設計可更藉由設計設施合成為硬體模型1120,其可採用硬體描述語言(HDL),或實體設計資料的某些其他表示。HDL可受進一步模擬或測試以驗證IP核心設計。IP核心設計能針對遞送至第三方製造設施1165而使用非揮發性記憶體1140(例如,硬碟、快閃記憶體、或任何非揮發性儲存媒體)儲存。或者,IP核心設計可透過有線連接1150或無線連接1160傳輸(例如,經由網際網路)。然後製造設施1165可製造至少部分基於IP核心設計的積體電路。能將所製造的積體電路組態成實施根據本文描述之至少一個實施例的操作。
圖12係根據實施例描繪可使用一或多個IP核心製造之例示系統單晶片積體電路1200的方塊圖。例示積體電 路包括一或多個應用處理器1205(例如,CPU)、至少一個圖形處理器1210、並可另外包括影像處理器1215及/或視訊處理器1220,彼等任一者可係來自相同或多個不同設計設施的模組化IP核心。積體電路包括周邊或匯流排邏輯,其包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235、及I2S/I2C控制器1240。另外,積體電路可包括耦接至高解析多媒體介面(HDMI)控制器1250及行動產業處理器介面(MIPI)顯示介面1255之一或多者的顯示器裝置1245。儲存可藉由包括快閃記憶體及快閃記憶體控制器的快閃記憶體次系統1260提供。記憶體介面可經由用於存取SDRAM或SRAM記憶體裝置的記憶體控制器1265提供。部分積體電路另外包括嵌入式安全引擎1270。
另外,其他邏輯及電路可包括在積體電路1200的處理器中,包括額外的圖形處理器/核心、周邊介面控制器、或通用處理器核心。
圖13根據一實施例描繪使用動態運行時命令變換機制的計算裝置1300。計算裝置1300(例如,行動式電腦、膝上型電腦、桌上型電腦等)可與圖1的資料處理系統100相同,且因此,為了簡潔、清晰、及易於理解,參考圖1-12於上文陳述的許多細節不再進一步討論或於下文重複。例如,計算裝置1300可包括作用為用於代管動態運行時命令變換機制(「變換機制」)1310之主機機器的行動式電腦(例如,智慧型手機、平板電腦、膝上型 電腦、遊戲主控台、可攜式工作站、智慧型眼鏡、及其他智慧型可穿戴裝置等)。
根據一實施例,變換機制1310可包括用於協助用於高效能圖形內容,諸如,影像、視訊、3D應用、遊戲等,之圖形處理命令的運行時變換之任何數目及種類的組件。在通篇文件中,術語「使用者」可互換地稱為「觀看者」、「觀察者」、「人」、「個人」、及/或「終端使用者」等。待理解在通篇文件中,像是「圖形域」的術語可與「圖形處理單元」或簡單地與「GPU」互換地引用,且相似地,「CPU域」或「主機域」可與「電腦處理單元」或簡單地與「CPU」互換地引用。
計算裝置1300可包括任何數目及種類的通訊裝置,諸如,大型計算系統,諸如,伺服器電腦、桌上型電腦等,並可更包括機上盒(例如,基於網際網路的有線電視機上盒等)、基於全球定位系統(GPS)的裝置等。計算裝置1300可包括作用為通訊裝置的行動計算裝置,諸如,包括智慧型手機的蜂巢式電話、個人數位助理(PDA)、平板電腦、膝上型電腦、電子書閱讀器、智慧型電視機、電視平台、可穿戴裝置(例如,眼鏡、手錶、手鐲、智慧卡、首飾、服裝產品等)、媒體播放器等。例如,在一實施例中,計算裝置1300可包括使用積體電路(「IC」),諸如,將計算裝置1300的各種硬體及/或軟體組件積體在單一晶片上的系統單晶片(「SoC」或「SOC」),的行動計算裝置。
如所說明的,在一實施例中,除了使用變換機制1310外,計算裝置1300可更包括任何數目及種類的硬體組件及/或軟體組件,諸如(但未限於)GPU 1314(具有驅動器邏輯1316)、CPU 1312、記憶體1308、網路裝置、或驅動器等,以及輸入/輸出(I/O)來源1304,諸如,觸控螢幕、觸控面板、觸控板、虛擬或常規鍵盤、虛擬或常規滑鼠、埠、連接器等。計算裝置1300可包括作用為電腦裝置1300的硬體及/或實體資源及使用者之間的介面的作業系統(OS)1306。預期CPU 1312可包括一或多個處理器,諸如,圖1的處理器(等)102,同時GPU 1314可包括一或多個圖形處理器,諸如,圖1的圖形處理器(等)108。在一實施例及如將參考後續圖式所進一步描述的,如此文件通篇所描述的,變換機制1310可與其之與GPU 1314合作以協助任何數目及種類之協助虛擬3D影像的產生及著色之工作的代管驅動器邏輯1316通訊。
待注意到像是「節點」、「計算節點」、「伺服器」、「伺服器裝置」、「雲端電腦」、「雲端伺服器」、「雲端伺服器電腦」、「機器」、「主機」、「裝置」、「計算裝置」、「電腦」、及「計算系統」等的術語可在此文件通篇中互換地使用。待更注意到像是「應用程式」、「軟體應用程式」、「程式」、「軟體程式」、「套裝軟體(package)」、及「套裝軟體(software package)」等的術語可在此文件通篇中互換地使用。 又,像是「工作」、「輸入」、「請求」、及「訊息」等的術語可在此文件通篇中互換地使用。
預期且如參考圖1-12進一步描述的,上述圖形管線的部分處理係以軟體實作,同時其餘部分係以硬體實作。圖形管線可實作在圖形共處理器設計中,其中將CPU 1312設計成與包括在CPU 1312中或與其共同放置的GPU 1314共事。在一實施例中,GPU 1314可使用任何數目及種類的習知軟體及硬體邏輯以實施與圖形著色有關的習知功能,以及使用新穎軟體及硬體邏輯以執行任何數目及種類的指令,諸如,圖1的指令121,以實施如此文件通篇描述之變換機制1310的各種新穎功能。
如上文提及的,記憶體1308可包括包含具有物件資訊之應用程式資料庫的隨機存取記憶體(RAM)。記憶體控制器集線器,諸如,圖1的記憶體控制器集線器116,可存取RAM中的資料並將其轉發至用於圖形管線處理的GPU 1314。RAM可包括雙倍資料速率RAM(DDR RAM)、延伸資料輸出RAM(EDO RAM)等。CPU 1312與硬體圖形管線互動,如參考圖3所描繪的,以共享圖形管線功能。將處理的資料儲存在硬體圖形管線中的緩衝器中,並將狀態資訊儲存在記憶體1308中。然後將所產生的影像轉移至I/O來源1304,諸如,用於影像顯示的顯示器組件,諸如,圖3的顯示器裝置320。預期顯示器裝置可係各種種類的,諸如,陰極射線管(CRT)、薄膜電晶體(TFT)、液晶顯示器(LCD)、有機發光二極體 (OLED)陣列等,以將資訊顯示給使用者。
記憶體1308可包含預配置的緩衝器區域(例如,框緩衝器);然而,熟悉本技術的人士應理解實施例未受如此限制,且可使用可為低層圖形管線存取的任何記憶體。計算裝置1300可更包括引用於圖1中的輸入/輸出(I/O)控制器集線器(ICH)130、一或多個I/O來源1304等。
CPU 1312可包括一或多個處理器以執行指令,以實施計算系統實作的任何軟體常式。該指令常包含在資料上實施的特定操作種類。可將資料及指令二者儲存在系統記憶體1308及任何關聯快取記憶體中。快取記憶體典型地設計成具有比系統記憶體1308更短的延遲時間;例如,快取記憶體可積體在與處理器(等)相同的矽晶片(等)上及/或使用更快速的靜態RAM(SRAM)細胞建構,同時系統記憶體1308可使用較慢的動態RAM(DRAM)細胞建構。傾向於將更常使用的指令及資料儲存在快取記憶體而非系統記憶體1308中,改善計算裝置1300的整體性能效率。預期在部分實施例中,GPU 1314可作為CPU 1312的一部分(諸如,實體CPU封裝的一部分)存在,在該情形中,記憶體1308可為CPU 1312及GPU 1314所共享或保持分離。
可使系統記憶體1308可用於計算裝置1300內的其他組件。例如,在軟體程式的實作中,從各種介面(例如,鍵盤及滑鼠、列印機埠、區域網路(LAN)埠、數據機埠 等)接收至計算裝置1300或從計算裝置1300的內部儲存元件(例如,硬碟驅動器)取得的任何資料常在一或多個處理器(等)在彼等上運算之前暫時佇列在系統記憶體1308中。相似地,軟體程式決定應經由計算系統介面之一者從計算裝置1300傳送至外側實體,或儲存入內部儲存元件中的資料在傳送或儲存其之前,常暫時佇列在系統記憶體1308中。
另外,例如,ICH,諸如,圖1的ICH 130,可用於確保此種資料正確地在系統記憶體1308及其適當對應的計算裝置介面(且若計算系統設計有內部儲存裝置,及內部儲存裝置)之間傳送,並可具有在自身及所觀察到的I/O來源/裝置1304之間的雙向點對點鏈路。相似地,MCH,諸如,圖1的MCH 116,可用於管理用於CPU 1312及GPU 1314、介面、及內部儲存元件之間的系統記憶體1308存取之可彼此相關地在時間上緊鄰地出現的各種競爭請求。
I/O來源1304可包括針對轉移資料至計算裝置1300(例如,網路配接器)及/或轉移來自其之資料;或針對計算裝置1300內的大型非揮發性儲存器(例如,硬碟驅動器)實作的一或多個I/O裝置。包括文數字及其他鍵的使用者輸入裝置可用於通訊資訊及命令選擇至GPU 1314。另一種類的使用者輸入裝置係游標控制,諸如,滑鼠、軌跡球、觸控螢幕、觸控板、游標方向鍵,以將方向資訊及命令選擇通訊至GPU 1314並控制顯示器裝置上的 游標移動。電腦裝置1300的照相機及麥克風陣列可用於觀察手勢、記錄音訊及視訊、及接收與傳輸視覺及音訊命令。
計算裝置1300可更包括網路介面(等)以提供對網路的存取,諸如,LAN、廣域網路(WAN)、都會區域網路(MAN)、個人區域網路(PAN)、藍牙、雲端網路、行動網路(例如,第3代合作夥伴計劃(3G)等)、內部網路、網際網路等。網路介面(等)可包括,例如,具有可代表一或多個天線(等)之天線的無線網路介面。網路介面(等)也可包括,例如,有線網路介面,以經由網路纜線與遠端裝置通訊,其可係,例如,乙太纜線、同軸纜線、光纖纜線、串聯纜線、或並聯纜線。
網路介面(等)可,例如,藉由遵守IEEE 802.11b及IEEE 802.11g標準,提供對LAN的存取,及/或無線網路介面可,例如,藉由遵守藍牙標準,提供對個人區域網路的存取。也可支援其他無線網路介面及/或協定,包括標準的先前及後續版本。除了或取代經由無線LAN標準的通訊外,網路介面(等)可使用,例如,分時多重存取(TDMA)協定、全球行動通信系統(GSM)協定、分碼多重存取(CDMA)協定、及/或任何其他種類的無線通訊協定提供無線通訊。
網路介面(等)可包括一或多種通訊介面,諸如,數據機、網路介面卡、或其他已為人所熟知的介面裝置,諸如,用於耦接至乙太網路、符記環的介面裝置、或用於提 供通訊鏈路以支援LAN或WAN之目的的其他種類的實體有線或無線附接。以此方式,例如,電腦系統也可經由包括內部網路或網際網路的習知網路基礎架構耦接至許多周邊裝置、用戶端、控制表面、控制台、或伺服器。
待理解將比上述範例具有更少或更多配備的系統用於特定實作可係較佳的。因此,計算裝置1300的組態可取決於許多因子在實作間變化,諸如,價格限制、效能需要、技術改善、或其他環境。電子裝置或電腦系統1300的範例可(沒有限制的)包括行動裝置、個人數位助理、行動計算裝置、智慧型手機、蜂巢式電話、手機、單向呼叫器、雙向呼叫器、發訊裝置、電腦、個人電腦(PC)、桌上型電腦、膝上型電腦、筆記型電腦、手持電腦、平板電腦、伺服器、伺服器陣列或伺服器場、網頁伺服器、網路伺服器、網際網路伺服器、工作站、小型電腦、大型電腦、超級電腦、網路器具、網頁器具、分散式計算系統、多處理器系統、基於處理器的系統、消費性電子、可程式化消費型電子、電視機、數位電視機、機上盒、無線存取點、基地台、用戶站台、行動用戶中心、無線電網路控制器、路由器、集線器、閘道器、橋接器、交換器、機器、或其組合。
實施例可實作為下列任一者或其組合:使用主機板互連的一或多個微晶片或積體電路、硬接邏輯、由記憶體裝置儲存並由微處理器執行的軟體、韌體、特定應用積體電路(ASIC)、及/或場效可程式化閘極陣列(FPGA)。術 語「邏輯」可包括,例如,軟體或硬體及/或軟體及硬體的組合。
可將實施例提供為,例如,電腦程式產品,其可包括具有儲存於其上之機器可執行指令的一或多個機器可讀媒體,當機器可執行指令由一或多個機器,諸如,電腦、電腦的網路、或其他電子裝置,執行時,可導致該一或多個機器實行根據本文描述之實施例的操作。機器可讀媒體可包括,但未限於,軟碟、光碟、CD-ROM(光碟-唯讀記憶體)、及磁光碟、ROM、RAM、EPROM(可抹除可程式化唯讀記憶體)、EEPROM(電可抹除可程式化唯讀記憶體)、磁或光卡、快閃記憶體、或適於儲存機器可執行指令之其他種類的媒體/機器可讀媒體。
再者,實施例可作為電腦程式產品下載,其中該程式可經由通訊鏈路(例如,數據機、及/或網路連接)藉由以載波或其他傳播媒體具現及/或調變的一或多個資料訊號從遠端電腦(例如,伺服器)轉移至請求電腦(例如,客戶端)。
圖14A根據一實施例描繪動態運行時命令變換機制1310。在一實施例中,變換機制1310可包括任何數目及種類的組件以實施與用於在計算裝置1300有效地著色顯示內容之圖形處理命令的智慧、動態、及即時變換有關的各種工作。例如且在一實施例中,變換機制1310可包括任何數目及種類的組件,諸如(沒有限制),接收/偵測邏輯1401、評估邏輯1403、中間建立/映射邏輯1405、執 行/應用邏輯1407、及通訊/相容性邏輯1409。計算裝置1300更透過一或多個網路(例如,網際網路、基於雲端的網路、鄰近網路等)與資料庫1430(例如,雲端儲存、非雲端儲存等)通訊。
首先,預期並待注意到,在一實施例中,變換機制1310可由GPU 1314的驅動器邏輯1316代管,同時,在另一實施例中,變換機制1310可由GPU 1314代管,同時,在另一實施例中,變換機制1310可由圖形驅動器1316及GPU 1314代管,諸如,變換機制1310的任何軟體組件可由驅動器邏輯1316代管,且變換機制1310的任何硬體組件可嵌入在GPU 1314。在另一實施例中,變換機制1310可不由驅動器邏輯1316或GPU 1314代管,且其可由計算裝置1300的另一組件代管,諸如,圖13的作業系統1306,但與驅動器邏輯1316、GPU 1314等通訊地運作。因此,預期實施例未受限於,諸如,相關於圖14B所說明的,實作或布置的任何特定形式或方式。
如上文提及的,應用程式(例如,遊戲應用程式)可包括任何數目及種類的框,其具有任何數目及種類的分派,其中各分派可代表由框表示之影像(例如,教室、天空、臉孔等)的一部分(例如,教室中的桌子、天空中的雲、臉上的鼻子等)。在一實施例中,任何尺寸及內容的分派,像是分派的對應框,可由應用程式決定。預期實施例並未受限於任何特定數目或種類的應用程式、框、分派等,且相似地,實施例並未受限於任何特定數目及種類的 影像或影像部分的尺寸。預期應用程式能具有任何數目的框,且各框可具有任何數目的分派,且各分派可具有任何種類的影像內容。例如,在部分實施例中,分派可指示待於命令序列中使用之每群組的緒程數及/或執行的群組數等。
首先,如將於此文件通篇進一步描述且參考圖15說明的,實施例並未限於特定使用情形或最佳化情景,且任何數目及種類的最佳化情景可使用變換機制1310實行。例如,變換機制1310可致能或協助圖形驅動器邏輯1316,以針對用於對應GPU 1314上之效能改善的GPGPU應用程式(例如,遊遽應用程式)實施高及低階最佳化二者。
例如,當藉由變換機制1310協助時,此種GPU/GPGPU工作量的效能增強機會可經由任何數目及種類的最佳化情景實現,此種最佳化情景可(沒有限制的)包括:1)將用於中間傳送的全體暫用記憶體重導向至共享區域記憶體以減少記憶體帶寬;2)藉由合併小GPGPU核心至單一核心中減少緒程延遲;3)將大緒程群組分斷為較小群組以避免快閃記憶體振盪;4)針對較佳效率無序地執行命令;5)針對改善效能使用未由API暴露之可在GPU 1314上使用的特性;及/或6)針對更多快閃記憶體區域性改變GPGPU緒程的行進次序等。
例如,當藉由變換機制1310協助時,上文提及及其他此種最佳化情景允許減少為每一個GPU最佳化應用程 式上所花費的工作,其依次藉由具有與圖形驅動程式邏輯,諸如,圖13的驅動器邏輯1316,共事的變換機制1310,改善使用3D遊戲及其他高效能計算等的使用者,諸如,軟體開發者、系統管理員、終端使用者等,的觀看經驗。例如,變換機制1310可實作在圖形驅動程式中及/或用於協助其(例如,Intel®圖形處理器的DirectX® 11驅動程式,諸如,圖13的驅動器邏輯1316,可藉由變換機制1310致能),以使計算著色器的64個分派崩潰成僅8個分派,同時將用於中間傳送的暫用全體無序存取圖(UAV)表面引導至共享區域記憶體,其可導致記憶體帶寬切割並改善應用程式的整體效能。
在一實施例中,接收/偵測邏輯1401可用於偵測或接收應用程式的核心、由核心放置的命令序列、及/或命令序列的一或多個分派等。例如,應用程式可提出GPGPU命令的串流至圖形驅動器邏輯1316以在對應GPU上,諸如,GPU 1314,啟動計算色調核心,其中接收/偵測邏輯1401偵測或接收該命令串流及其各種分派以及之後可由變換機制1310的其他組件使用以變換變換命令串流以實現GPU 1314的高效能的其他細節。
例如且在一實施例中,如相關於圖15進一步地說明的,在偵測命令串流時,接收/偵測邏輯1401進一步偵測作為命令串流的一部分設定成待受處理的許多分派。如先前描述的,分派可透露待用於各分派之處理且因此用於命令串流之緒程的群組數以及每群組的緒程數。
在一實施例中,在接收/偵測邏輯1401偵測或接收命令輸出時,然後可將與命令串流有關的任何相關資訊轉發至用於進一步處理的評估邏輯1403。如上文提及的,可施用任何數目及種類的最佳化情景,諸如,減少或增加分派數、重排程分派、重排序分派、重引導分派、為更區域地快取改變GPGPU緒程的行進次序、合併多個核心為較少或單一核心等。預期且待注意雖然此文件通篇討論及說明一或多個最佳化情景,諸如,在圖15中,實施例並未因此受限於任何特定最佳化情景。
因此,在一實施例中,評估邏輯1403可從接收/偵測邏輯1401接收命令串流/序列及任何有關資訊,並依據任何數目及種類的計算資源,諸如,GPU處理、全體記憶體、區域快取記憶體、功率、速度/時間等,評估命令串流的各種樣態以決定可行且可應用於此命令串流的一或多個最佳化情景,以確保命令串流的有效處理及著色。
例如,若分派具有大記憶體涵蓋區,評估邏輯1403可決定藉由將其分割為映射至區域快取記憶體而非全體記憶體的二或多個較小分派以使其變小。例如,分派的緒程群組可具有等於1024個緒程的32個緒程x32個緒程,將其視為係相當大的緒程群組且因此,在一實施例中,針對有效處理,可將此種分派或,換言之,其緒程群組拆分成一半,諸如,拆分為等於256個緒程的16個緒程x16個緒程。例如,如將參考圖15進一步地描述的,即使將單一大分派拆分為多個分派,僅有該多個分派之第一分派的 第一讀取能存取在全體記憶體的資料,及該多個分派之最後分派的最後寫入可存取全體記憶體,但所有其他在之間的讀取及寫入可藉由存取區域快取記憶體完成,使得區域快取記憶體有效率的使用且不造成全體記憶體的負擔。
在部分實施例中,如相關於圖15所說明的,如藉由評估邏輯1403所決定的,多個分派或核心可分別合併成較少分派或核心,以減少交易數,並依次增加命令串流之處理的效率。例如,在部分情形中,如藉由評估邏輯1403所評估的,因為交易數目增加可使區域快取記憶體當機,可減少分派數。相似地,例如,如藉由評估邏輯1403所評估的,因為分派可參考相同的快取記憶體表面或部分,可將許多分派合併在一起,諸如,若決定分派0(D0)及分派3(D3)二者參考快取記憶體表面0(S0)等,可將彼等合併在一起。
相似地,在部分實施例中,如藉由評估邏輯1403所決定的,可不改變一或多個分派並保持彼等的原始尺寸及位置/次序,諸如,當將分派視為與適當數目的緒程、緒程的群組等關聯,且在命令串流內的序列中係採用正確次序時。在部分實施例中,可藉由評估邏輯1403將可使用減少部分分派、增加部分分派、及不改變部分分派等的組合處理命令串流內之分派的最優情景決定為最佳情景。
在一實施例中,評估邏輯1403可更評估命令串流內之分派的序列或次序。例如,繼續使用上述範例,若D0及D3二者均參考快取記憶體中的S0,同時分派1(D1) 參考表面1(S1),且分派2(D2)參考表面2(S2)等,評估邏輯1403可決定重排序分派序列,使得D0及D3可共同受處理以參考S0,節省存取區域快取記憶體之S0的額外交易,且依次增加相關於快取記憶體及共同串流處理的效率。
在一實施例中,如上文提及的,記憶體帶寬可更藉由將用於中間傳送的暫用記憶體重導向至共享區域記憶體而進一步減少,諸如(沒有限制),如由評估邏輯1403所決定的,各種分派的讀取及寫入可導向至共享區域快取記憶體而非全體記憶體,以有效地減少記憶體交易數,節省記憶體帶寬。在部分實施例中,為增加效率及改善效能,評估邏輯1403可決定促進可經由GPU 1314使用但未由有關API暴露之各種特性的使用。在部分實施例中,評估邏輯1403可針對更多快閃記憶體區域性決定改變各種GPGPU緒程的行進次序。
另外,在部分實施例中,評估邏輯1403可將分派的各種相依性列入考慮。例如,若D3相依於D2,評估邏輯1403確保D2在D3之前受處理,使得命令串流受適當處理而不受負面影響或完全失敗。換言之,雖然評估邏輯1403可將任何數目的最佳化情景列入考慮,可遵守特定必要協定、參數、規則、標準等以確保命令串流的適當且不受中斷的處理。
在一實施例中,對區域快取記憶體而非全體記憶體的此存取可導致可根據由評估邏輯1403準備並得自其的評 估結果由建立/映射邏輯1405協助的各種分派的映射及重映射。
在一實施例中,在依據計算資源(例如,GPU處理能力、可用記憶體空間、區域快取記憶體限制、處理器速度、功率可用性、及資源等)的可用性及限制評估命令串流及其內容(例如,分派、輸入/輸出互換、緒程、緒程群組等)以及其他有關資訊時,評估邏輯1403準備評估的結果並將評估結果轉發至用於進一步處理的建立/映射邏輯1405。
在接收評估結果時,建立/映射邏輯1405基於評估結果中的一或多個最佳化提議準備中間最佳化計畫,其可(沒有限制的)包括減少/增加分派的圖表、用於合併/拆分分派的圖、分派至區域快取記憶體的映射、相依性圖表等。此中間計畫可包括最佳化計畫的中間格式,其能輕易地受後續處理,然後提交至執行/應用邏輯1407,以根據中間計畫協助用於命令串流之應用及最佳化執行的GPU 1314。
另外,在一實施例中,最佳化計畫、中間計畫、及與命令串流有關的任何其他資訊等可儲存在用於未來參考及處理的資料庫1430中。如所說明的,計算裝置1300可與一或多個儲存庫或資料庫通訊,諸如,具有基於雲端之資料庫、非基於雲端之資料庫等的資料庫1430,以儲存及維持任何量及種類的資料(例如,即時感測輸入資料、歷史內容、元資料、資源、策略、準則、規定、及規則、更 新等)。相似地,如先前提及的,計算裝置1300可透過通訊媒體,諸如(沒有限制),包括雲端網路、網際網路、內部網路、物聯網(「IoT」)、鄰近網路、及藍牙等的一或多個網路,與任何數目及種類的其他計算裝置通訊。預期實施例並未受限於任何特定數目或種類的通訊媒體或網路。
通訊/相容性邏輯1409可用於協助一或多個計算裝置,諸如,計算裝置1300,及任何數目及種類的其他計算裝置(諸如,行動計算裝置、桌上型電腦、伺服器計算裝置等)、處理裝置(諸如,CPU、GPU等)、擷取/感測/偵測裝置(諸如,包括照相機、深度感測照相機、照相機感測器、RGB感測器、麥克風等的擷取/感測組件)、顯示器裝置(諸如,包括顯示螢幕、顯示區域、顯示投影機等的輸出組件)、使用者/背景感知組件及/或識別/驗證感測器/裝置(諸如,生物感測器/偵測器、掃描器等)、記憶體或儲存裝置、資料庫、及/或資料來源(諸如,資料儲存裝置、硬碟機、固態硬碟、硬碟、記憶體卡或裝置、記憶體電路等)、通訊頻道或網路(例如,雲端網路、網際網路、內部網路、蜂巢式網路、鄰近網路、諸如,藍牙、低功耗藍牙(BLE)、智慧型藍牙、鄰近Wi-Fi、射頻識別(RFID)、近場通訊(NFC)、人體區域網路(BAN)等)、無線或有線通訊及有關協定(例如,Wi-Fi®、WiMAX、Ethernet等)、連接性及位置管理技術、軟體應用程式/網站(例如,社交及/或商業網路網站 等、商業應用程式、遊戲、及其他娛樂應用程式等)、程式語言等之間的動態通訊及相容性,同時確保改變技術、參數、協定、標準等的相容性。
在此文件通篇中,像是「邏輯」、「組件」、「模組」、「架構」、及「引擎」等的術語可互換地引用,並包括,例如,軟體、硬體、及/或軟體及硬體的任何組合,諸如,韌體。另外,特定品牌、字辭、術語、片語、名稱、及/或縮寫的任何使用,諸如,「GPU」、「GPU域」、「GPGPU」、「CPU」、「CPU域」、「核心」、「工作量」、「應用程式」、「工作單元」、「繪圖」、「分派」、「區域快取記憶體」、「全體記憶體」、「命令串流」、「命令序列」等,在此文件以外的產品中或文獻中不應解讀成將實施例限制在載有該標籤的硬體或裝置。
預期可將任何數目及種類的組件加至變換機制1310及/或自其移除,以協助包括加入、移除、及/或增強特定特性的各種實施例。為了簡潔、清晰、及易於理解變換機制1310,許多標準及/或已知組件,諸如,計算裝置的組件,未於本文中顯示或討論。預期如本文描述的實施例並未受限於任何特定技術、拓撲、系統、架構、及/或標準,並有充分動態以採用及適應任何未來改變。
圖14B根據一實施例描繪圖14A之動態運行時命令變換機制1310的架構布置。首先,為了簡潔,不再於下文討論相關於圖13-14A於先前討論之變換機制1310的任 何組件或處理。在所說明的實施例中,將變換機制1310顯示成代管為圖形驅動程式套裝軟體的一部分,包括(沒有限制)圖形/GPUPU驅動器1316、著色器編譯器1453、及變換機制1310。如進一步說明的,變換機制1310保持與GPU 1314的通訊,且如相關於圖14A於上文提及的,在部分實施例中,變換機制1310的任何軟體組件可由圖形驅動器1316代管,同時變換機制1310的任何硬體組件可嵌入在GPU 1314。預期實施例並未受限於實作的特定形式或方式,並可執行布置的任何變化,諸如,本文所說明的布置,以實現變換機制1310的各種功能。
圖15根據一實施例描繪包括用於有效地處理命令序列之編譯時間及運行時交易的交易序列1500。交易序列1500可由處理邏輯實施,其可包含硬體(例如,電路、專用邏輯、可程式化邏輯等)、軟體(諸如,在處理裝置上運行的指令)、或其組合。在一實施例中,交易序列1500可由圖13-14的變換機制1310實施。為了展示的簡潔和清楚,交易序列1500的處理以線性序列說明;然而,預期任何數目的交易序列能平行地、非同步地、或以不同次序實施。為了簡潔,參考上述圖1-14討論的許多細節可不在下文討論或重覆。
如所說明的,在一實施例中,在計算裝置,諸如,圖13的計算裝置1300,運行的應用程式可發布用於藉由計算裝置的GPU,諸如,圖13的GPU 1314,使用其他計算資源,諸如,快取記憶體、記憶體等,處理原始命令序列 1511的原始核心(也稱為「計算核心」)1501。在說明實施例中,將原始命令序列1511顯示成包括任何數目及種類的分派,諸如,對應於彼等的輸入/輸出互換1515A、1515B、1515C、1515D等的分派0 1513A、分派1 1513B、分派2 1513C、分派3 1513D、分派4(D4)1513E等。如進一步說明的,輸入/輸出互換1515A-1515D可實施由原始核心1501中具有讀取命令(例如,從輸入緩衝器讀取)及寫入命令(例如,寫至輸出緩衝器)的讀取/寫入命令序1503所表示的輸入及輸出的互換。
在一實施例中,圖14的接收/偵測邏輯1401可偵測包括分派1513A-1513E的原始命令序列1511並提供此資訊至評估邏輯1403。在圖14的評估邏輯1403,原始命令序列1511及任何有關資訊受評估,且在一實施例中,可將用於將該五個背對背分派1513A-1513E合併為單一分派,諸如,分派1533,的最佳化計畫決定為係此原始命令序列1511的最佳計畫。此最佳化計畫然後可由評估邏輯1403提議至圖14之用於進一步處理的建立/映射邏輯1405。
在接收最佳化計畫時,此建立/映射邏輯1405可接收最佳化計畫並審查其,基於該最佳化計畫準備中間計畫。在一實施例中,藉由圖14之建立/映射邏輯1405的此中間計畫可建議將原始核心1501變換為現在包括其包括原始調序之總數,諸如,5,的程式化for-迴路,諸如,for-迴路1523,的融合核心(也稱為「已變換核心」) 1521,以將五個原始分派1513A-1513E合併至在取代原始命令序列1511之新命令序列1531中提供的單一已變換分派1533。
在一實施例中,為進一步將原始命令序列1511變換為新的命令序列1531,建立/映射邏輯1405更提議將已變換互換命令,諸如,互換輸入/輸出1525,包括至融合核心1521中,而非將其留在新命令序列1531中,像是原始命令序列1511中的一系列互換輸入/輸出1515A-1515D。此中間計畫然後可轉發至圖14的執行/應用邏輯1407上,以針對藉由GPU及其他計算資源有效率的處理應用程式而施用及執行。
例如,如相關於圖14於上文提及的,具有在新命令序列1531中的單一已變換分派1533以及for-迴路1523及互換輸入/輸出1525在融合核心1521中允許記憶體資源的最小使用,諸如,從輸入緩衝器的第一讀取(諸如,與原始D0 1513A關聯的第一讀取)可藉由存取全體記憶體而實施,且相似地,對輸出緩衝器的最後寫入(諸如,與原始D4 1513E關聯的最後寫入)可藉由存取全體記憶體而實施,其中所有其他讀取及寫入係藉由存取共享區域快取記憶體而區域地實施,顯著地減少記憶體資源的使用。此等其他讀取及寫入可包括,諸如,與原始D0 1513A關聯的寫入命令、與原始D1 1513B、D2 1513C、及D3 1513D關聯的讀取及寫入命令、及與原始D4 1513E關聯的讀取命令。
圖16A根據一實施例描繪包括用於有效地處理命令序列之編譯時間處理的方法1600。方法1600可由處理邏輯實施,其可包含硬體(例如,電路、專用邏輯、可程式化邏輯等)、軟體(諸如,在處理裝置上運行的指令)、或其組合。在一實施例中,方法1600可由圖13-14的變換機制1310實施。為了展示的簡潔和清楚,方法1600的處理以線性序列說明;然而,預期任何數目的交易序列能平行地、非同步地、或以不同次序實施。為了簡潔,參考上述圖1-15討論的許多細節可不在下文討論或重覆。
方法1600提供處理的編譯時間流程,其在具有在計算裝置編譯計算著色器的方塊1601開始,並在具有剖析著色器的方塊1603繼續。在一實施例中,在方塊1605,產生當藉由圖13-14的變換機制1310協助時,著色器是否可針對應用程式的稍後運行時的有效率處理變換的決定。例如,可變換著色器可稍後在運行時使用,如相關於圖16B的方法1650所說明的,其中針對在計算裝置之GPU的有效率處理,諸如,圖13之計算裝置1300的GPU 1314,在運行時變換經由應用程式的一或多個核心發布之一或多個命令串流的一或多個分派。若為是,在方塊1607,將著色器變換為用於稍後運行時處理的已變換著色器,且在方塊1609,方法1600的編譯處理結束。另外,若著色器未變換或不能變換,編譯處理在方塊1609結束。
圖16B根據一實施例描繪包括用於有效地處理命令序 列之運行時處理的方法1650。方法1650可由處理邏輯實施,其可包含硬體(例如,電路、專用邏輯、可程式化邏輯等)、軟體(諸如,在處理裝置上運行的指令)、或其組合。在一實施例中,方法1650可由圖13-14的變換機制1310實施。為了展示的簡潔和清楚,方法1650的處理以線性序列說明;然而,預期任何數目的交易序列能平行地、非同步地、或以不同次序實施。為了簡潔,參考上述圖1-16A討論的許多細節可不在下文討論或重覆。
方法1650提供處理的運行時流程,其在具有應用程式提交GPGPU命令至圖形驅動器的方塊1651開始,諸如,用於處理之圖13的驅動器方塊1316。如先前討論的,命令可代表藉由應用程式之對應核心所界定的命令串流,其中該命令串流可包括待藉由用於最終著色使用者在與計算裝置關聯的顯示器裝置上觀看之應用程式的內容之GPU處理的任何數目及種類的分派。
在方塊1653,在一實施例中,將命令保存在資料庫中,諸如,資料庫1430,隨後,該命令由評估邏輯1403評估以產生及轉發最適於命令串流的最佳化計畫至圖14的建立/映射邏輯1405。在方塊1655,在一實施例中,如藉由連續但係選擇性的最佳化通路1661所指示的,最佳化計畫由建立/映射邏輯1405接收及使用以產生基於最佳化計畫的中間計畫,其中該中間計畫代表用於命令串流的已變換處理計畫。
在方塊1657,在一實施例中,圖16A之編譯時間方 法1600的已變換著色器使用該中間計畫,其中基於該已變換著色器施用該中間計畫以形成已變換命令串流,然後由圖14之執行/應用邏輯1407執行。在方塊1659,在方塊1657之應用及執行時,可提交已變換命令串流以及任何提供相關資料,諸如,於圖15中說明的已變換核心,以待由計算裝置之GPU的一或多個組件處理。
對「一實施例」、「實施例」、「範例實施例」、「各種實施例」等的引用指示如此描述的實施例(等)可包括特定特性、結構、或特徵,但不係每個實施例必需包括該特定特性、結構、或特徵。另外,部分實施例可具有部分、所有、或沒有針對其他實施例描述的特性。
在上述說明書中,實施例已參考本發明的具體例示實施例描述。然而,可對其產生各種修改及改變而不脫離如隨附之申請專利範圍所陳述之實施例的更廣泛的精神及範圍將係明顯的。本說明書及該圖式因此應以說明而非限制的角度看待。
在以下描述及申請專利範圍中,可使用術語「耦接」以及其衍生辭。使用「耦接」以指示二或多個元件彼此合作或互動,但彼等可或可不具有在彼等之間的中間實體或電組件。
如申請專利範圍中所使用的,除非另有指定,使用有序形容辭「第一」、「第二」、「第三」等描述共同元件,僅指示所指稱之相似元件的不同實例,且未意圖暗示如此描述的元件必須在時間上、在空間上、在順序上、或 在任何其他方式上採用給定的序列。
以下條款及/或範例關於其他實施例或範例。範例中的具體內容可能在一或多個實施例中的任何位置使用。不同實施例或範例的不同特性可多變地與所包括部分特性組合並排除其他特性以適合各式各樣的應用。範例可包括專利標的,諸如,方法、用於實施方法之行動的機構、包括指令的至少一種機器可讀媒體,當指令由機器實施時導致該機器實施該方法或用於協助根據本文描述之實施例及範例的混合通訊之設備或系統的行動。
部分實施例關於範例1,其包括一種促進圖形處理命令的動態運行時變換以用於在計算裝置上之改善的圖形效能的裝置,包含:接收/偵測邏輯,以偵測與應用程式關聯的命令串流,其中該命令串流包括分派;評估邏輯,以評估有關於該分派各者的處理參數,其中該評估邏輯更將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;建立/映射邏輯,以基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行/應用邏輯,以執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
範例2包括範例1的專利標的,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
範例3包括範例1的專利標的,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式 接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
範例4包括範例1或3的專利標的,其中該命令串流對應於該應用程式的核心,該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
範例5包括範例1的專利標的,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
範例6包括範例1或5的專利標的,其中變換該命令串流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
範例7包括範例6的專利標的,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加分派的數目,或藉由將該分派的較大者分斷為較小分派 而減少該分派的數目。
範例8包括範例1的專利標的,更包含資料庫以儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
部分實施例關於範例9,其包括一種促進圖形處理命令的動態運行時變換以用於在計算裝置上之改善的圖形效能的方法,包含:偵測與應用程式關聯的命令串流,其中該命令串流包括分派;評估有關於該分派各者的處理參數,其中評估更包括將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
範例10包括範例9的專利標的,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
範例11包括範例9的專利標的,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
範例12包括範例9或11的專利標的,其中該命令串 流對應於該應用程式的核心,該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
範例13包括範例9的專利標的,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
範例14包括範例9或13的專利標的,其中變換該命令串流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
範例15包括範例14的專利標的,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加分派的數目,或藉由將該分派的較大者分斷為較小分派而減少該分派的數目。
範例16包括範例9的專利標的,更包含儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者在資料庫,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
範例17包括至少一個機器可讀媒體,其包含複數個指令,當在計算裝置上執行時,實作或實施在任何上述申請專利範圍中聲明的方法或實現在任何上述申請專利範圍中聲明的設備。
範例18包括至少一個非暫態或實體機器可讀媒體,其包含複數個指令,當在計算裝置上執行時,實作或實施在任何上述申請專利範圍中聲明的方法或實現在任何上述申請專利範圍中聲明的設備。
範例19包括一種系統,其包含實作或實施在任何上述申請專利範圍中聲明的方法或實現在任何上述申請專利範圍中聲明之設備的機制。
範例20包括一種設備,包含機構以實施在任何上述申請專利範圍中聲明的方法。
範例21包括一種計算裝置,配置成實作或實施在任何上述申請專利範圍中聲明的方法或實現在任何上述申請專利範圍中聲明之設備的機制。
範例22包括一種通訊裝置,配置成實作或實施在任何上述申請專利範圍中聲明的方法或實現在任何上述申請專利範圍中聲明之設備的機制。
部分實施例關於範例23,其包括一種包含具有指令的儲存裝置,及處理器的系統,以執行該指令以促進實施一或多個下列操作的機制,包含:偵測與應用程式關聯的命令串流,其中該命令串流包括分派;評估有關於該分派各者的處理參數,其中評估更包括將第一計畫與該分派的 一或多者關聯以將該命令串流變換為變換的命令串流;基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
範例24包括範例23的專利標的,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
範例25包括範例23的專利標的,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
範例26包括範例23的專利標的,其中該命令串流對應於該應用程式的核心,該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
範例27包括範例23的專利標的,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
範例28包括範例23的專利標的,其中變換該命令串 流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
範例29包括範例28的專利標的,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加分派的數目,或藉由將該分派的較大者分斷為較小分派而減少該分派的數目。
範例30包括範例23的專利標的,其中該一或多個操作更包含儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者在資料庫,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
部分實施例關於範例31,其包括一種設備,包含:用於偵測與應用程式關聯之命令串流的機構,其中該命令串流包括分派;用於評估有關於該分派各者之處理參數的機構,其中評估更包括將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;用於基於該第一計畫將第二計畫關聯於該分派之該一或多者的機構,其中該第二計畫代表該變換的命令串流;及用於執行該第二計畫的機構,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
範例32包括範例31的專利標的,其中該第一計畫包 含最佳化計畫,且其中該第二計畫包含中間計畫。
範例33包括範例31的專利標的,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
範例34包括範例31的專利標的,其中該命令串流對應於該應用程式的核心,該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
範例35包括範例31的專利標的,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
範例36包括範例31的專利標的,其中用於變換該命令串流為該變換之命令串流的該機構包含用於改變該分派之處理次序的機構、用於調整該分派之尺寸的機構、用於建立有關於該分派之相依性圖的機構、及用於將該分派的一或多者從主記憶體映射至區域快取記憶體之機構的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶 體。
範例37包括範例36的專利標的,其中用於調整該分派之尺寸的機構包含用於藉由合併該分派的較小者至較大分派中而增加分派之數目的機構,或用於藉由將該分派的較大者分斷為較小分派而減少該分派之數目的機構。
範例38包括範例31的專利標的,更包含用於儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者在資料庫的機構,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
範例39包括至少一個非暫態或實體機器可讀媒體,其包含複數個指令,當在計算裝置上執行時,實作或實施在任何上述申請專利範圍或範例9-16中聲明的方法。
範例40包括至少一個機器可讀媒體,其包含複數個指令,當在計算裝置上執行時,實作或實施在任何上述申請專利範圍或範例9-16中聲明的方法。
範例41包括一種系統,其包含實作或實施在任何上述申請專利範圍或範例9-16中聲明之方法的機制。
範例42包括一種設備,其包含用於實施在任何上述申請專利範圍或範例9-16中聲明之方法的機構。
範例43包括一種計算裝置,配置成實作或實施在任何上述申請專利範圍或範例9-16中聲明之方法。
範例44包括一種通訊裝置,配置成實作或實施在任何上述申請專利範圍或範例9-16中聲明之方法。
該圖式及以上描述提供實施例的範例。熟悉本技術的 人士將理解可將所描述元件之一或多者良好地組合成單一功能元件。或者,可將特定元件分開為多個功能元件。來自一實施例的元件可加至另一實施例。例如,本文描述之處理的次序可改變且未受限於本文描述的方式。再者,流程圖的行動不必以所示次序實作;也不係所有行動均必需實施。又,未相依於其他行動的該行動可與該其他行動平行地實施。實施例的範圍並無意為此等具體範例所限制。無論是否明顯地在本說明書中提供,諸如,結構上的不同、尺寸及材料的使用,許多變化係可能的。實施例的範圍至少與以下申請專利範圍所提供的範圍一樣廣。
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧特定指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存設備
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器集線器
134‧‧‧網路控制器
140‧‧‧傳統I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器

Claims (24)

  1. 一種設備,包含:接收/偵測邏輯,以偵測與應用程式關聯的命令串流,其中該命令串流包括分派;評估邏輯,以評估有關於該分派各者的處理參數,其中該評估邏輯更將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;建立/映射邏輯,以基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行/應用邏輯,以執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
  2. 如申請專利範圍第1項的設備,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
  3. 如申請專利範圍第1項的設備,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
  4. 如申請專利範圍第1項的設備,其中該命令串流對應於該應用程式的核心,其中該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
  5. 如申請專利範圍第1項的設備,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
  6. 如申請專利範圍第1項的設備,其中變換該命令串流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
  7. 如申請專利範圍第6項的設備,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加該分派的數目,或藉由將該分派的較大者分斷為較小分派而減少該分派的數目。
  8. 如申請專利範圍第1項的設備,更包含資料庫以儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
  9. 一種方法,包含:偵測與應用程式關聯的命令串流,其中該命令串流包 括分派;評估有關於該分派各者的處理參數,其中評估更包括將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
  10. 如申請專利範圍第9項的方法,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
  11. 如申請專利範圍第9項的方法,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
  12. 如申請專利範圍第9項的方法,其中該命令串流對應於該應用程式的核心,其中該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
  13. 如申請專利範圍第9項的方法,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯 的執行緒程群組數、記憶體使用、快取記憶體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
  14. 如申請專利範圍第9項的方法,其中變換該命令串流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
  15. 如申請專利範圍第14項的方法,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加該分派的數目,或藉由將該分派的較大者分斷為較小分派而減少該分派的數目。
  16. 如申請專利範圍第9項的方法,更包含在資料庫儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
  17. 至少一種機器可讀媒體,包含在計算裝置上執行以促進該計算裝置實施一或多個操作的複數個指令,包含:偵測與應用程式關聯的命令串流,其中該命令串流包括分派;評估有關於該分派各者的處理參數,其中評估更包括 將第一計畫與該分派的一或多者關聯以將該命令串流變換為變換的命令串流;基於該第一計畫將第二計畫關聯於該分派的該一或多者,其中該第二計畫代表該變換的命令串流;及執行該第二計畫,其中該第二計畫的執行包括處理取代該命令串流的該變換的命令串流。
  18. 如申請專利範圍第17項的機器可讀媒體,其中該第一計畫包含最佳化計畫,且其中該第二計畫包含中間計畫。
  19. 如申請專利範圍第17項的機器可讀媒體,其中由該應用程式發佈的該命令串流在圖形處理單元(GPU)的圖形驅動程式接收,且其中該變換的命令串流經由該圖形驅動程式在該GPU執行,其中該應用程式代表具有複數個框的工作量,且其中分派代表該工作量的工作單元使得該工作單元代表對應框代表之影像的一部分。
  20. 如申請專利範圍第17項的機器可讀媒體,其中該命令串流對應於該應用程式的核心,其中該第一計畫更將該核心變換為變換的核心,其具有對應於該變換的命令串流的指令。
  21. 如申請專利範圍第17項的機器可讀媒體,其中該處理參數包含有關於該命令串流之執行的一或多個特徵,其中該一或多個特徵包括該分派的尺寸、該分派的處理次序、與各分派關聯之執行緒程群組中的執行緒程數、與各分派關聯的執行緒程群組數、記憶體使用、快取記憶 體使用、瓶頸位置或原因、硬體配置的量及種類及頻率、壓縮格式種類、著色器限制、及著色器執行分派寬度的至少一者。
  22. 如申請專利範圍第17項的機器可讀媒體,其中變換該命令串流為該變換的命令串流的步驟包含改變該分派的處理次序、調整該分派的尺寸、建立有關於該分派的相依性圖、及將該分派的一或多者從主記憶體映射至區域快取記憶體的至少一者,其中映射包括將與該分派的該一或多者關聯的讀取命令或寫入命令從該主記憶體重映射至該區域快取記憶體。
  23. 如申請專利範圍第22項的機器可讀媒體,其中調整該分派的尺寸的步驟包含藉由合併該分派的較小者至較大分派中而增加該分派的數目,或藉由將該分派的較大者分斷為較小分派而減少該分派的數目。
  24. 如申請專利範圍第17項的機器可讀媒體,其中該一或多個操作更包含在資料庫儲存該命令串流、該變換的命令串流、該第一計畫、及該第二計畫的一或多者,其中該資料庫包括可透過一或多個網路存取之基於雲端的儲存器。
TW105114004A 2015-06-12 2016-05-05 促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能 TW201706840A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/738,679 US10796397B2 (en) 2015-06-12 2015-06-12 Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices

Publications (1)

Publication Number Publication Date
TW201706840A true TW201706840A (zh) 2017-02-16

Family

ID=57504664

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105114004A TW201706840A (zh) 2015-06-12 2016-05-05 促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能

Country Status (3)

Country Link
US (1) US10796397B2 (zh)
TW (1) TW201706840A (zh)
WO (1) WO2016200532A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI648556B (zh) * 2018-03-06 2019-01-21 仁寶電腦工業股份有限公司 同步定位與地圖建構及手勢辨識方法
CN111045623A (zh) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种多gpu拼接环境下图形命令的处理方法
US10796397B2 (en) 2015-06-12 2020-10-06 Intel Corporation Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices
TWI736045B (zh) * 2018-12-18 2021-08-11 芬蘭商亞瑪芬體育數字服務公司 嵌入式計算裝置管理
US11137820B2 (en) 2015-12-01 2021-10-05 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11145272B2 (en) 2016-10-17 2021-10-12 Amer Sports Digital Services Oy Embedded computing device
US11144107B2 (en) 2015-12-01 2021-10-12 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11210299B2 (en) 2015-12-01 2021-12-28 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11215457B2 (en) 2015-12-01 2022-01-04 Amer Sports Digital Services Oy Thematic map based route optimization
US11284807B2 (en) 2015-12-21 2022-03-29 Amer Sports Digital Services Oy Engaging exercising devices with a mobile device
US11541280B2 (en) 2015-12-21 2023-01-03 Suunto Oy Apparatus and exercising device
US11587484B2 (en) 2015-12-21 2023-02-21 Suunto Oy Method for controlling a display
US11607144B2 (en) 2015-12-21 2023-03-21 Suunto Oy Sensor based context management
US11703938B2 (en) 2016-10-17 2023-07-18 Suunto Oy Embedded computing device
US11838990B2 (en) 2015-12-21 2023-12-05 Suunto Oy Communicating sensor data in wireless communication systems

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654753B1 (en) * 2015-09-01 2017-05-16 Amazon Technologies, Inc. Video stream processing
US11360808B2 (en) * 2017-04-09 2022-06-14 Intel Corporation Efficient thread group scheduling
US10417731B2 (en) * 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10409614B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US11055807B2 (en) * 2017-06-12 2021-07-06 Apple Inc. Method and system for a transactional based display pipeline to interface with graphics processing units
US10475152B1 (en) 2018-02-14 2019-11-12 Apple Inc. Dependency handling for set-aside of compute control stream commands
CN111090464B (zh) * 2018-10-23 2023-09-22 华为技术有限公司 一种数据流处理方法及相关设备
US11157283B2 (en) * 2019-01-09 2021-10-26 Intel Corporation Instruction prefetch based on thread dispatch commands
US11281496B2 (en) 2019-03-15 2022-03-22 Intel Corporation Thread group scheduling for graphics processing
US11204801B2 (en) * 2019-11-14 2021-12-21 Intel Corporation Method and apparatus for scheduling thread order to improve cache efficiency
US11822956B2 (en) * 2020-12-28 2023-11-21 Advanced Micro Devices (Shanghai) Co., Ltd. Adaptive thread group dispatch

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1846834A2 (en) * 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction
US7609280B2 (en) 2005-09-07 2009-10-27 Microsoft Corporation High level graphics stream
US8549500B2 (en) 2007-02-14 2013-10-01 The Mathworks, Inc. Saving and loading graphical processing unit (GPU) arrays providing high computational capabilities in a computing environment
US20090322768A1 (en) 2008-06-25 2009-12-31 Lalonde Paul A Compile-time type-safe composable state objects
US8643656B2 (en) * 2010-09-30 2014-02-04 Nec Laboratories America, Inc. Energy-aware task consolidation on graphics processing unit (GPU)
US9111327B2 (en) 2011-01-18 2015-08-18 Apple Inc. Transforming graphic objects
US9195501B2 (en) * 2011-07-12 2015-11-24 Qualcomm Incorporated Instruction culling in graphics processing unit
US9384522B2 (en) * 2012-12-28 2016-07-05 Qualcomm Incorporated Reordering of command streams for graphical processing units (GPUs)
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US20160027141A1 (en) * 2014-07-22 2016-01-28 Oculus Vr, Llc In-band latency detection system
US9799088B2 (en) * 2014-08-21 2017-10-24 Qualcomm Incorporated Render target command reordering in graphics processing
US10796397B2 (en) 2015-06-12 2020-10-06 Intel Corporation Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices
US9817431B2 (en) * 2016-02-03 2017-11-14 Qualcomm Incorporated Frame based clock rate adjustment for processing unit

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10796397B2 (en) 2015-06-12 2020-10-06 Intel Corporation Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices
US11215457B2 (en) 2015-12-01 2022-01-04 Amer Sports Digital Services Oy Thematic map based route optimization
US11144107B2 (en) 2015-12-01 2021-10-12 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11210299B2 (en) 2015-12-01 2021-12-28 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11137820B2 (en) 2015-12-01 2021-10-05 Amer Sports Digital Services Oy Apparatus and method for presenting thematic maps
US11587484B2 (en) 2015-12-21 2023-02-21 Suunto Oy Method for controlling a display
US11284807B2 (en) 2015-12-21 2022-03-29 Amer Sports Digital Services Oy Engaging exercising devices with a mobile device
US11541280B2 (en) 2015-12-21 2023-01-03 Suunto Oy Apparatus and exercising device
US11607144B2 (en) 2015-12-21 2023-03-21 Suunto Oy Sensor based context management
US11838990B2 (en) 2015-12-21 2023-12-05 Suunto Oy Communicating sensor data in wireless communication systems
US11145272B2 (en) 2016-10-17 2021-10-12 Amer Sports Digital Services Oy Embedded computing device
US11703938B2 (en) 2016-10-17 2023-07-18 Suunto Oy Embedded computing device
TWI648556B (zh) * 2018-03-06 2019-01-21 仁寶電腦工業股份有限公司 同步定位與地圖建構及手勢辨識方法
TWI736045B (zh) * 2018-12-18 2021-08-11 芬蘭商亞瑪芬體育數字服務公司 嵌入式計算裝置管理
CN111045623A (zh) * 2019-11-21 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种多gpu拼接环境下图形命令的处理方法
CN111045623B (zh) * 2019-11-21 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种多gpu拼接环境下图形命令的处理方法

Also Published As

Publication number Publication date
WO2016200532A1 (en) 2016-12-15
US10796397B2 (en) 2020-10-06
US20160364828A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
TW201706840A (zh) 促進圖形處理命令的動態運行時變換以用於在計算裝置之改善的圖形效能
US9916634B2 (en) Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices
US11010302B2 (en) General purpose input/output data capture and neural cache system for autonomous machines
US10338953B2 (en) Facilitating execution-aware hybrid preemption for execution of tasks in computing environments
US11550632B2 (en) Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment
US10282804B2 (en) Facilitating configuration of computing engines based on runtime workload measurements at computing devices
US10776156B2 (en) Thread priority mechanism
US10565670B2 (en) Graphics processor register renaming mechanism
US20170140570A1 (en) Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
US11088907B2 (en) System characterization and configuration distribution for facilitating improved performance at computing devices
US10026142B2 (en) Supporting multi-level nesting of command buffers in graphics command streams at computing devices
US10002405B2 (en) Smart optimization of unused graphics buffer memory in computing environments
TW201810026A (zh) 用於在計算環境中資料之邏輯處理的暫存器檔案之延伸
WO2017200672A1 (en) Triangle rendering mechanism
US9734597B2 (en) Interpolated minimum-maximum compression/decompression for efficient processing of graphics data at computing devices
WO2017112030A1 (en) Clustered color compression for efficient processing of graphics data at computing devices
US20230403391A1 (en) Weighted prediction mechanism