TW201729122A - 促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術 - Google Patents

促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術 Download PDF

Info

Publication number
TW201729122A
TW201729122A TW105138237A TW105138237A TW201729122A TW 201729122 A TW201729122 A TW 201729122A TW 105138237 A TW105138237 A TW 105138237A TW 105138237 A TW105138237 A TW 105138237A TW 201729122 A TW201729122 A TW 201729122A
Authority
TW
Taiwan
Prior art keywords
data
framework
programming
program
distribution
Prior art date
Application number
TW105138237A
Other languages
English (en)
Other versions
TWI731897B (zh
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 TW201729122A publication Critical patent/TW201729122A/zh
Application granted granted Critical
Publication of TWI731897B publication Critical patent/TWI731897B/zh

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

所述為一種機制,用於促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術。實施例之一種方法如本文中所述,包括有使用一程式規劃框架及一程式規劃模型就資料之處理偵檢一請求;在該程式規劃框架與該程式規劃模型間促進介接,其中介接包括有將該程式規劃模型併入該程式規劃框架,其中介接更包括有將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及在該配送框架上進行呼叫以基於該請求對複數個工作之處理進行排程。

Description

促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術
本文中所述的實施例大致係有關於電腦。更特別的是,所述實施例乃用於促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術。
雖然異質運算環境嘗試橫跨電腦叢集配合大型資料集作業,習知的系統仍然視為無效率且複數,而且未提供有效率的可程式規劃性。
依據本發明之一實施例,係特地提出一種設備,其包含有:偵檢/接收邏輯,用以使用一程式規劃框架及一程式規劃模型對資料之處理偵檢一請求;介接邏輯,用以在該程式規劃框架與該程式規劃模型間促進介接,其中介接包括將該程式規劃模型併入該程式規劃框架,其中介接更包括將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及執行/呼叫邏輯,用以呼叫該配送框架以基於該請求來排程複數個工作之處理。
在以下說明中,提出許多特定細節。然而,實施例如本文中所述,不用這些特定細節也可實踐。在其他例子中,為了不要混淆對於本說明的理解,尚未詳細展示眾所周知的電路、結構與技巧。
實施例提供用於促進於異質、平行運算環境中橫跨計算機叢集的有效率通訊及資料處理之一種新穎技巧。實施例將多個程式規劃框架與高階程式規劃模型整合以促進圖形處理單元(GPU) (亦作為「圖形處理器」來參考)之增強且有效率的可程式規劃性。
新興的雲端運算技術橫跨電腦叢集用來進行分散式大型資料集處理;然而,複雜度和可程式規劃性是將平台、框架及程式規劃模型等之組合用於更加促進高階GPU程式規劃時所遭遇之數種主要障礙中的其中兩項,例如採用諸如開放計算語言(OpenCLTM )之程式規劃框架,配合諸如ApacheTM HadoopTM 配送框架之一配送框架,提供如MapReduceTM 、SparkTM 等高階程式規劃模型時會遇到這些障礙。舉例而言,配合MapReduceTM 使用OpenCLTM 時,軟體程式設計師或開發人員不僅需要具有適當的OpenCLTM 知識,還需要透徹熟悉HadoopTM 及MapReduceTM 。再者,雖然使用諸如MapReduceTM 之一高階程式規劃模型會有助於增強GPU程式規劃,開發人員仍必須涉及管理主機裝置與用戶端裝置間的資料傳輸且反之亦然、核心之執行、核心碼之最佳化、及/或類似者。
實施例提供用於促進程式規劃框架、配送框架、高階程式規劃模型等之整合,使得諸如OpenCLTM 之程式規劃框架核心可於一異質運算環境中橫跨一計算機叢集運行,不用具有或不需要後端雲端運算基礎結構(例如,諸如HadoopTM 之配送框架、或諸如MapReduceTM 之高階程式規劃模型、及/或類似者)的任何知曉度。
列入考量的是,實施例並非僅受限於OpenCLTM (亦作為「程式規劃框架」來參考)、HadoopTM (亦作為「配送框架」來參考)、及MapReduceTM (亦作為「高階程式規劃模型」或單純地作為「程式規劃模型」來參考)、及/或類似者其中任何一者,而且任意數量與類型的程式規劃框架、配送框架、高階程式規劃模型、及/或類似者分別可配合提供一新穎規模可調框架之實施例來運用及使用。
列入考量的是,如「請求」、「詢問」、「工作」、「作業」、「作業項目」、及「作業量」等詞在本文件各處是可交換參考的。類似的是,一「應用程式」或「代理程式」可意指為或包括有一電腦程式、一軟體應用程式、一遊戲、一工作站應用程式等,其乃透過一API來提供,例如一免費供應API,諸如開放圖形程式館(OpenGLR)、DirectXR 11、DirectXR 12等,其中「分派」可交換稱為「作業單元」或「汲取」,並且類似的是,「應用程式」可交換稱為「作業流程」或單純稱為「代理程式」。舉例而言,一作業量諸如一三維(3D)遊戲的作業量,可包括有並且發出任意數量與類型的「圖框」,其中各圖框可代表一影像(例如帆船、人臉)。再者,各圖框可包括有並且提供任意數量與類型的作業單元,其中各作業單元可代表該影像(例如帆船、人臉)由其對應圖框所表示之一部分(例如帆船的桅桿、人臉的前額)。然而,為求一致,各項目在本文件各處可藉由單一用語(例如「分派」、「代理程式」等)來參考。
在一些實施例中,如「顯示螢幕」及「顯示表面」等詞可交換用來意指為一顯示裝置之可見部分,而該顯示裝置的其餘部分可嵌入於一運算裝置,諸如一智慧型手機、一穿戴式裝置等。列入考量且要注意的是,實施例並不受限於任何特定運算裝置、軟體應用程式、硬體組件、顯示裝置、顯示螢幕或表面、協定、標準等。舉例而言,實施例可應用於諸如桌上型電腦、膝上型電腦、平板電腦、智慧型手機、頭戴式顯示器與其他穿戴式裝置、及/或類似者等任意數量與類型的電腦上任意數量與類型的即時應用程式並與其配合使用。再者,舉例而言,使用本新穎技巧就有效率的效能呈現情節的範圍可自諸如桌面合成之單純情節擴展至諸如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之系統記憶體,用以儲存資料122及指令121,以供一或多個處理器102執行一應用程式或程序時使用。記憶體控制器集線器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乃一處理器200之一實施例的一方塊圖,其具有一或多個處理器核心202A至202N、一整合式記憶體控制器214、以及一整合式圖形處理器208。圖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互連件多種變例其中至少一者,包括有一封裝體上I/O互連件,其促進各種處理器組件與諸如一eDRAM模組之一高效能嵌入式記憶體模組218間的通訊。在一些實施例中,處理器核心202至202N之各者及圖形處理器208將嵌入式記憶體模組218當作一共享最後一階快取使用。
在一些實施例中,處理器核心202A至202N為執行相同指令集架構之同質核心。在另一實施例中,處理器核心202A至202N依據指令集架構(ISA)具有異質性,其中處理器核心202A至202N有一或多者執行一第一指令集,而其他核心其中至少一者執行該第一指令集之一子集或一不同指令集。在一項實施例中,處理器核心202A至202N依據微架構具有異質性,其中具有一較高功率消耗之一或多個核心與具有一較低功率消耗之一或多個功率核心耦合。另外,處理器200可在一或多個晶片上實施,或可實施成具有所示組件外加其他組件之一SoC積體電路。
圖3乃一圖形處理器300的一方塊圖,其可以是一分立圖形處理單元,或可以是整合有複數個處理核心之一圖形處理器。在一些實施例中,該圖形處理器經由連至其上暫存器之一記憶體對映I/O介面、並以存於處理器記憶體內的命令進行通訊。在一些實施例中,圖形處理器300包括有用以存取記憶體之一記憶體介面314。記憶體介面314可以是連至區域記憶體、一或多個內部快取、一或多個共享外部快取、及/或連至系統記憶體之一介面。
在一些實施例中,圖形處理器300亦包括有用以將顯示輸出資料驅動至一顯示裝置320之一顯示控制器302。顯示控制器302包括有該顯示器之一或多個覆蓋平面用的硬體、以及多層視訊或使用者介面元件的組成物。在一些實施例中,圖形處理器300包括有一視訊編解碼引擎306,用來對、自或於一或多個媒體編碼格式間之媒體進行編碼、解碼或轉碼,包括有,但不限於諸如MPEG-2之動畫專家群(MPEG)格式、諸如H.264/MPEG-4 AVC之先進視訊編碼(AVC)格式、以及動畫與電視工程師協會(SMPTE) 421M/VC-1、及諸如JPEG之聯合照相專家群(JPEG)格式、及動畫JPEG (MJPEG)格式。
在一些實施例中,圖形處理器300包括有一區塊影像轉移(BLIT)引擎304 ,用來進行二維(2D)柵格化程序操作,舉例而言,包括有位元邊界區塊轉移。然而,在一項實施例中,使用圖形處理引擎(GPE) 310之一或多個組件進行2D圖形操作。在一些實施例中,圖形處理引擎310乃用於進行圖形操作之一運算引擎,包括有三維(3D)圖形操作及媒體操作。
在一些實施例中,GPE 310包括有使用對3D基元形狀(例如矩形、三角形等)作用之處理功能,用於進行3D操作之一3D管線312,諸如呈現三維影像與場景。此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幾何處理之規模可調執行邏輯。命令串流器503就3D幾何處理命令,供應命令至幾何管線536。命令串流器503就至少一些媒體處理命令,供應此等命令至一視訊前端534,其與一媒體引擎537耦合。在一些實施例中,媒體引擎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繪示緒執行邏輯600,其包括有一GPE之一些實施例中所運用之一處理元件陣列。圖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)大小的資料元)。然而,不同的向量寬度及暫存器尺寸是有可能的。
緒執行邏輯600中包括有一或多個內部指令快取(例如606)以快取用於執行單元之緒指令。在一些實施例中,包括有用以在緒執行期間快取緒資料之一或多個資料快取(例如612)。在一些實施例中,包括有用以提供用於3D操作之紋理取樣及用於媒體操作之媒體取樣的取樣器610。在一些實施例中,取樣器610包括有專業的紋理或媒體取樣功能,用來在提供取樣資料至一執行單元之前,先於取樣程序期間處理紋理或媒體資料。
於執行期間,圖形與媒體管線經由緒衍生與分派邏輯,發送緒啟動請求至緒執行邏輯600。在一些實施例中,緒執行邏輯600包括有一邏輯緒分派器604,其仲裁來自圖形與媒體管線之緒啟動請求,並且在一或多個執行單元608A至608N上實體化所請求的緒。舉例而言,幾何管線(例如圖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 722、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引導一頂點擷取器805之操作,其自記憶體讀取頂點資料,並且執行命令串流器803所提供之頂點處理命令。在一些實施例中,頂點擷取器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之前,先處理媒體命令。在一些實施例中,媒體引擎337包括有緒衍生功能,用來衍生出緒以供經由緒分派器831分派至緒執行邏輯850。
在一些實施例中,圖形處理器800包括有一顯示引擎840。在一些實施例中,顯示引擎840位在處理器800之外部,並且經由環形互連件802、或一些其他互連匯流排或組織架構與圖形處理器耦合。在一些實施例中,顯示引擎840包括有一2D引擎841及一顯示控制器843。在一些實施例中,顯示引擎840含有能夠獨立於3D管線操作之特殊用途邏輯。在一些實施例中,顯示控制器843與一顯示裝置(圖未示)耦合,其可以是一系統整合式顯示裝置,如一膝上型電腦中之裝置,或可以是經由一顯示裝置附接之一外部顯示裝置。
在一些實施例中,圖形管線820與媒體管線830可組配以基於多個圖形與媒體程式規劃介面進行操作,並且不特定於任何一種應用程式規劃介面(API)。在一些實施例中,用於圖形處理器之驅動程式軟體將特定於一特定圖形程式館或媒體櫃之API呼叫轉譯成可藉由圖形處理器來處理之命令。在一些實施例中,就出自科納斯組織的開放圖形程式館(OpenGL)與開放計算語言(OpenCL)、出自微軟公司的Direct3D程式庫提供支援,或可對OpenGL與D3D兩者提供支援。亦可就開放原始碼電腦視覺庫(OpenCV)提供支援。若可自一未來API之管線映射至圖形處理器之管線,則也會支援具有一相容3D管線之未來API。圖形管線程式規劃
圖9A乃根據一些實施例繪示一圖形處理器命令格式900的一方塊圖。圖9B乃根據一實施例繪示一圖形處理器命令序列910的一方塊圖。圖9A中的實線方塊繪示一般在一圖形命令中所包括之組件,而虛線則包括有屬於任選或只在此等圖形命令之一子集中才包括之組件。圖9A之例示性圖形處理器命令格式900包括有用以識別命令之一目標用戶端902、一命令操作碼(操作碼) 904、以及用於命令之相關資料906的資料欄。一些命令中亦包括有一子操作碼905及一命令尺寸908。
在一些實施例中,用戶端902指定處理命令資料之圖形裝置的用戶端單元。在一些實施例中,一圖形處理器命令剖析器審查各命令之用戶欄以調制命令之進一步處理,並且將命令資料路由安排至適當的用戶端單元。在一些實施例中,圖形處理器用戶端單元包括有一記憶體介面單元、一呈現單元、一2D單元、一3D單元、以及一媒體單元。各用戶端單元具有處理命令之一對應處理管線。一旦用戶端單元收到命令,用戶端單元便讀取操作碼904,而且若存在,也讀取子操作碼905以判定待進行之操作。用戶端單元使用資料欄906中之資訊進行命令。就一些命令來講,期望一明確命令尺寸908以指定命令之尺寸。在一些實施例中,命令剖析器基於命令操作碼,自動判定此等命令其中至少一些之尺寸。在一些實施例中,諸命令乃經由一雙字組之倍數來對準。
圖9B中之流程圖展示一例示性圖形處理器命令序列910。在一些實施例中,具備一圖形處理器之一實施例之特徵的一資料處理系統之軟體或韌體使用所示命令序列之一版本設定、執行、以及終止一組圖形操作。一樣本命令序列乃為了舉例而僅以實施例來繪示並說明,並不受限於這些特定命令或受限於此命令序列。此外,此等命令可作為一命令序列中之命令批次而發出,使得圖形處理器將會至少部分同時處理該命令序列。
在一些實施例中,圖形處理器命令序列910可始於一管線排清命令912,以令任何主動圖形管線就該管線完成目前擱置的命令。在一些實施例中,3D管線922及媒體管線924不同時操作。進行管線排清以令主動圖形管線完成任何擱置的命令。用於圖形處理器之命令剖析器回應於一管線排清,將會暫停命令處理,直到主動汲取引擎完成擱置的操作且相關讀取快取變無效為止。任選地,可將呈現快取中標示「已變更」之任何資料排清到記憶體。在一些實施例中,管線排清命令912可用於管線同步化,或可在將圖形處理器設成一低功率狀態之前先使用。
在一些實施例中,一管線選擇命令913乃是在一命令序列需要圖形處理器在諸管線間明確切換時使用。在一些實施例中,發出管線命令之前,一執行內容裡僅需要一次管線選擇命令913,除非此內容要就兩管線發出命令。在一些實施例中,就在經由管線選擇命令913進行一管線切換之前,先需要一管線排清命令912。
在一些實施例中,一管線控制命令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命令或事件來觸發。在一些實施例中,一暫存器寫入觸發命令執行。在一些實施例中,執行乃經由命令序列中之「前往」或「突跳」命令來觸發。在一項實施例中,使用一管線同步化命令觸發命令執行以透過圖形管線將命令序列排清。3D管線將會就3D基元進行幾何處理。操作一旦完成,產生的幾何物件便進行柵格化,並且像素引擎將產生的像素上色。亦可就那些操作包括有用以控制像素著色及像素後端操作之附加命令。
在一些實施例中,圖形處理器命令序列910在進行媒體操作時,遵循媒體管線924。一般而言,對媒體管線924程式規劃之特定使用及方式取決於待進行之媒體或運算操作。可在媒體解碼期間,將特定媒體解碼操作卸載至媒體管線。在一些實施例中,亦可旁通媒體管線,並且可使用一或多個通用處理核心所提供的資源整體或部分進行媒體解碼。在一項實施例中,媒體管線亦包括有用於通用圖形處理器單元(GPGPU)操作之元素,其中圖形處理器乃使用與圖形基元呈現不明確有關之運算著色器程式,用於進行SIMD向量操作。
在一些實施例中,以一與3D管線922類似之方式組配媒體管線924。一組媒體管線狀態命令940是在媒體物件命令942之前,先予以分派或存於一命令佇列中。在一些實施例中,媒體管線狀態命令940包括有用以組配將會用於處理媒體物件之媒體管線元素的資料。此包括有用以組配媒體管線裡視訊解碼及視訊編碼邏輯的資料,諸如編碼或解碼格式。在一些實施例中,媒體管線狀態命令940亦支援使用一或多個指標「間接處理」含有一狀態設定值批次之狀態元素。
在一些實施例中,媒體物件命令942供應指標至媒體物件以供媒體管線處理之用。此等媒體物件包括含有待處理視訊資料之記憶體緩衝器。在一些實施例中,所有媒體管線狀態在發出一媒體物件命令942之前都必須先有效。一旦將管線狀態組配並將媒體物件命令942排入佇列,便經由一執行命令944或一等效執行事件(例如暫存器寫入)觸發媒體管線924。接著可藉由3D管線922或媒體管線924所提供之操作來後處理來自媒體管線924之輸出。在一些實施例中,以一與媒體操作類似之方式操作並執行GPGPU。圖形軟體架構
圖10根據一些實施例,繪示用於一資料處理系統1000之例示性圖形軟體架構。在一些實施例中,軟體架構包括有一3D圖形應用程式1010、一作業系統1020、以及至少一個處理器1030。在一些實施例中,處理器1030包括有一圖形處理器1032及一或多個通用處理器1034。圖形應用程式1010及作業系統1020各於資料處理系統之系統記憶體1050中執行。
在一些實施例中,3D圖形應用程式1010含有包括著色器指令1012之一或多個著色器程式。著色器語言指令可採用一高階著色器語言呈現,諸如高階著色器語言(HLSL)或OpenGL著色器語言(GLSL)。該應用程式亦包括有採用適用於由通用處理器核心1034執行之一機器語言呈現的可執行指令1014。該應用程式亦包括有由頂點資料所界定的圖形物件1016。
在一些實施例中,作業系統1020乃出自微軟公司之一MicrosoftR WindowsR作業系統、一專屬似UNIX作業系統、或使用Linux核心之一變例的一開放原始碼似UNIX作業系統。作業系統1020可支援諸如Direct3D API或OpenGL API之一圖形API 1022。Direct3D API若使用中,作業系統1020使用一前端著色器編譯器1024將HLSL中的任何著色器指令1012編譯成一低階著色器語言。此編譯可以是一及時(JIT)編譯,或該應用程式可進行著色器預編譯。在一些實施例中,高階著色器乃於編譯3D圖形應用程式1010期間編譯成低階著色器。
在一些實施例中,使用者模式圖形驅動程式1026含有用以將著色器指令1012轉換成一特定硬體表示型態之一後端著色器編譯器1027。OpenGL API若在使用中,將GLSL高階語言中之著色器指令1012傳遞至一使用者模式圖形驅動程式1026以供編譯之用。在一些實施例中,使用者模式驅動程式1026使用作業系統核心模式功能1028與一核心模式圖形驅動程式1029通訊。在一些實施例中,核心模式圖形驅動程式1029與圖形處理器1032通訊以分派命令及指令。IP 核心實作態樣
至少一項實施例之一或多項態樣可藉由代表及/或界定諸如一處理器之一積體電路內之邏輯的一機器可讀媒體上儲存之代表性符碼來實施。舉例而言,該機器可讀媒體可包括有代表該處理器內之各種邏輯的指令。該等指令在由一機器讀取時,可令該機器製作用以進行本文中所述技巧的邏輯。此類表示型態稱為「IP核心」,是可再用於一積體電路之邏輯單元,其可儲存於一有形、機器可讀媒體上,當作描述該積體電路結構的一硬體模型。可將該硬體模型供應給各種客戶或製造設施,其在製造該積體電路之製作機器上載入該硬體模型。該積體電路可製作成使得該電路進行與本文中所述任何實施例相關聯所述的操作。
圖11根據一實施例,乃繪示一IP核心開發系統1100的一方塊圖,其可用於製造一積體電路以進行操作。IP核心開發系統1100可用於產生可併入一更大設計或用於建構一整體積體電路(例如一SOC積體電路)之模組化、可再用設計。一設計設施1130可產生採用一高階程式設計語言(例如C/C++)呈現之一IP核心設計之一軟體模擬1110。軟體模擬1110可使用一模擬模型1112,用於設計、測試及驗證IP核心之行為。模擬模型1112可包括有功能、行為及/或時序模擬。接著可由模擬模型1112建立或合成一暫存器轉移層次(RTL)設計。RTL設計1115乃該積體電路之行為之一抽象表示,其建模諸硬體暫存器間數位信號之流動,包括有使用已建模數位信號進行之相關聯邏輯。除了一RTL設計1115,還可建立、設計、或合成以邏輯階或電晶體階呈現之低階設計。因此,可改變初始設計與模擬的特定細節。
RTL設計1115或等效物可進一步藉由設計設施來合成為一硬體模型1120,其可採用一硬體描述語言(HDL)呈現,或可以是實體設計資料之一些其他表示型態。可進一步模擬或測試該HDL以驗證該IP核心設計。可使用非依電性記憶體1140 (例如硬碟、快閃記憶體、或任何非依電性儲存媒體)儲存該IP核心設計以供遞送至一第三方製作設施1165。替代地,可透過一有線連接1150或無線連接1160 (例如經由網際網路)傳送該IP核心設計。製作設施1165可接著製作至少部分基於該IP核心設計之一積體電路。製作出之積體電路可被組配來進行根據本文中所述至少一項實施例之操作。
圖12根據一實施例,乃繪示一例示性系統單晶片積體電路1200的一方塊圖,其可使用一或多個IP核心來製作。該例示性積體電路包括有一或多個應用處理器1205 (例如CPU)、至少一個圖形處理器1210,並且可另外包括有一影像處理器1215及/或一視訊處理器1220,其任何一者可以是出自相同或多個不同設計設施之一模組化IP核心。該積體電路包括有週邊或匯流排邏輯,包括有一USB控制器1225、UART控制器1230、一SPI/SDIO控制器1235、以及一I2 S/I2 C控制器1240。另外,該積體電路可包括有耦合至一高畫質多媒體介面(HDMI)控制器1250及一行動產業處理器介面(MIPI)顯示介面1255其中一或多者之一顯示裝置1245。儲存器可由包括有快閃記憶體及一快閃記憶體控制器之一快閃記憶體子系統1260來提供。可經由一記憶體控制器1265提供用於對SDRAM或SRAM記憶體裝置進行存取之記憶體介面。一些積體電路另外包括有一嵌入式安全性引擎1270。
另外,積體電路1200之處理器中可包括有其他邏輯與電路,包括有附加圖形處理器/核心、週邊介面控制器、或通用處理器核心。
圖13根據一項實施例,繪示運用一規模可調框架1310之一運算裝置1300。運算裝置1300 (例如行動電腦、膝上型電腦、桌上型電腦、伺服器電腦等)可與圖1之資料處理系統100相同,從而為求清楚且為了易於理解,下文不再論述或重複以上參照圖1至12所陳述的許多細節。如圖示,在一項實施例中,運算裝置1300乃展示為託管規模可調框架1310。
在所示實施例中,規模可調框架1310乃展示為藉由作業系統1316託管;然而,列入考量的是,實施例並不如此受限。舉例而言,在另一實施例中,規模可調框架1310之一或多個組件1401至1405、1411至1417可以是GPU 1314之部分韌體。在又另一實施例中,規模可調框架1310之一或多個組件1401至1405、1411至1417可以是GPU 1314所託管之一或多個硬體組件。在又另一實施例中,規模可調框架1310可由運算裝置1300之多個組件部分且同時託管,諸如圖形驅動程式1316,GPU 1314、GPU韌體、作業系統1316、及/或類似者。
「使用者」一詞在本文件各處可交換地稱為「檢視者」、「觀察者」、「人員」、「個人」、「終端使用者」、及/或類似者;再者,「程式設計師」、「開發人員」及「使用者」在本文件各處可予以可交換地參考。要注意像是「圖形域」等詞在本文件各處可與「圖形處理器」、「圖形處理單元」或單純地「GPU」可交換地參考,並且類似的是,「CPU域」或「主機域」可與「應用處理器」、「電腦處理單元」或單「CPU」可交換地參考。
運算裝置1300可包括有任意數量與類型的通訊裝置,諸如大型運算系統,例如伺服器電腦、桌上型電腦等,並且可更包括有機上盒(網際網路為基之有線電視機上盒等)、全球定位系統(GPS)為基之裝置等。運算裝置1300可包括有當作通訊裝置使用之行動運算裝置,諸如包括有智慧型手機在內的蜂巢式手機、個人數位助理器(PDA)、平板電腦、膝上型電腦、電子閱讀器、智慧電視、電視平台、穿戴式裝置(例如眼鏡、手錶、手鐲、智慧卡、珠寶、衣物等)、媒體播放器等。舉例而言,在一項實施例中,運算裝置1300可包括有運用諸如系統單晶片(SoC或SOC)之一積體電路(IC)的一行動運算裝置,在單一晶片上整合運算裝置1300之各種硬體及/或軟體組件。
如圖示,在一項實施例中,運算裝置1300可包括有任意數量與類型的硬體及/或軟體組件,諸如(以非限制方式)圖形處理單元1314、圖形驅動程式(亦稱為「GPU驅動程式」、「圖形驅動程式邏輯」、「驅動程式邏輯」、使用者模式驅動程式(UMD)、UMD、使用者模式驅動程式框架(UMDF)、UMDF、或單純地「驅動程式」) 1316、中央處理單元1312、記憶體1308、網路裝置、驅動器、或類似者,並且可包括有輸入/輸出(I/O)來源1304,諸如觸控螢幕、觸控面板、觸控板、虛擬或正規鍵盤、虛擬或正規滑鼠、連接埠、連接器等。運算裝置1300可包括有作業系統(OS) 1306,當作介於電腦裝置1300之硬體及/或實體資源與一使用者間之一介面使用。列入考量的是,CPU 1312可包括有一或多個處理器,諸如圖1之(多個)處理器102,而GPU 1314則可包括有一或多個圖形處理器,諸如圖1之(多個)圖形處理器108。
要注意像是「節點」、「運算節點」、「伺服器」、「伺服器裝置」、「雲端電腦」、「雲端伺服器」、「雲端伺服器電腦」、「機器」、「主機」、「裝置」、「運算裝置」、「電腦」、「運算系統」、及類似用語可在本文件各處交換使用。進一步要注意像是「應用程式」、「軟體應用程式」、「程式」、「軟體程式」、「套件」、「套裝軟體」、及類似用語可在本文件各處交換使用。此外,「工作」、「輸入」、「請求」、「訊息」、及類似用語可在本文件各處交換使用。
經過思忖且如參照圖1至12進一步所述,圖形管線有些程序如上述,乃實施成軟體,而其餘部分則實施成硬體。一圖形管線可在一圖形共處理器設計中實施,其中CPU 1312的設計旨在與GPU 1314配合運作,其可包括於CPU 1312中或可與其共置。在一項實施例中,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內之其他組件。舉例而言,自連至運算裝置1300之各種介面(例如鍵盤與滑鼠、列印機連接埠、區域網路(LAN)連接埠、數據機連接埠等)所接收、或自運算裝置1300之儲存元件(例如硬碟機)所取回之任何資料(例如輸入圖形資料)在由一軟體程式之實作態樣中之一或多個處理器操作之前,通常暫時排入佇列到系統記憶體1308內。類似的是,一軟體程式判定之資料應該透過此等運算系統介面其中一者自運算裝置1300發送至一外側實體,或儲存到一內部儲存元件裡,在傳送或儲存之前,通常先於系統記憶體1308中暫時排入佇列。
再者,舉例而言,一ICH,諸如圖1之ICH 130,可用於確保此資料於系統記憶體1308與其適當對應之運算系統介面(與內部儲存裝置,若該運算系統有如此設計的話)間適當地傳遞,並且可在本身與所觀測I/O來源/裝置1304間具有雙向點對點鏈路。類似的是,一MCH,諸如圖1之MCH 116,可用於管理各種爭先請求,用於在CPU 1312與GPU 1314、介面與內部儲存元件間進行系統記憶體1308存取,其可互相及時貼近地出現。
I/O來源1304可包括有一或多個I/O裝置,其乃實施成用於將資料轉移至及/或自運算裝置1300 (例如一網路連結配接器);或用於運算裝置1300裡之一大型非依電性儲存器(例如硬碟機)。包括有文數字與其他按鍵在內的使用者輸入裝置可用於傳送資訊與命令選擇至GPU 1314。另一類型的使用者輸入裝置為游標控制,諸如一滑鼠、一軌跡球、一觸控螢幕、一觸控板、或游標方向鍵,乃用來傳送方向資訊與命令選擇至GPU 1314,以及用來控制顯示裝置上的游標移動。電腦裝置1300之相機及麥克風陣列可運用於觀測手勢、記錄音訊與視訊,以及運用於接收及傳送視覺與音訊命令。
運算裝置1300可更包括有(多個)網路介面,乃用來對一網路提供存取權,諸如一LAN、一廣域網路(WAN)、一都會區域網路(MAN)、一個人區域網路(PAN)、藍牙、一雲端網路、一行動網路(例如第三代(3G)、第4代(4G)等)、一內部網路、網際網路等。(多個)網路介面舉例而言,可包括有具有天線之一無線網路介面,該天線可代表一或多個天線。(多個)網路介面舉例而言,可包括有經由網路纜線用以與遠端裝置通訊之一有線網路介面,該網路纜線舉例而言,可以是一乙太網路纜線、一同軸電纜、一光纖電纜、一串列纜線、或一平行纜線。
(多個)網路介面舉例而言,可藉由符合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。為求簡短,下文不重複或論述已參照圖1至13所論述之許多細節。在一項實施例中,規模可調框架1310可包括有任意數量與類型的組件,諸如(以非限制方式):偵檢/接收邏輯1401;整合與處理引擎1403;以及通訊/相容性邏輯1405。如圖示,在一項實施例中,整合與處理引擎1403可包括有一或多個組件,諸如(以非限制方式):介接邏輯1411、分區/向量邏輯1413、處理邏輯1415、以及執行/呼叫邏輯1417。
所示運算裝置1300乃進一步與一或多個儲存庫、資料集、及/或資料庫通訊,諸如(多個)資料庫1430 (例如雲端儲存器、非雲端儲存器等),其中該通訊可以是直接及/或透過通訊媒體1425,諸如一或多個網路(例如一雲端網路、一近接網路、一行動網路、一內部網路、網際網路等)。
類似的是,在一項實施例中,運算裝置1300 (例如伺服器電腦)通訊性地可以是一網路之部分,包括有一或多個運算裝置,諸如運算裝置1440 (例如伺服器電腦)及運算裝置1460A、1460B、1460C (例如用戶端電腦)。舉例而言,如圖示運算裝置1440可用於託管一配送框架1441,諸如HadoopTM 等,其供應或提供一或多個諸如MapReduceTM 等高階程式規劃模型(「程式規劃模型」或單純地「模型」) 1443之存取權。再者,在一項實施例中,所示運算裝置1440更用來託管通訊邏輯1451,還有配送側處理引擎(「配送引擎」) 1445,其包括有一或多個組件,諸如(以非限制方式)分派邏輯1447及排程/映射邏輯1449。
類似的是,舉例而言,運算裝置1460A至1460N各可伺服託管一諸如OpenCLTM 等程式規劃框架之用戶端電腦,還有程式規劃側處理引擎(「程式規劃引擎」) 1463A、1463B、1463N,其具有一或多個組件(以非限制方式):分區/指派邏輯1465A、1465B、1465N及資料處理邏輯1467A、1467B、1467N。再者,運算裝置1460A至1460N各可進一步提供使用者介面1469A、1469B、1469N,同時還託管通訊邏輯1471A、1471B、1471N及一或多個I/O組件1473A、1473B、1473B (例如感測器、偵檢器、感受器、相機、麥克風、揚聲器、顯示螢幕/裝置等)。
首先,實施例不只是受限於任意特定數量與類型的程式規劃框架、配送框架、高階程式規劃模型等;然而,為求簡短、清楚、以及易於理解,本文件各處分別參考OpenCLTM 、HadoopTM 及MapReduceTM
舉例而言,OpenCLTM 意指為用於寫入軟體程式之一程式規劃框架,該等軟體程式能夠橫跨包括有GPU、中央處理單元(CPU)、可現場規劃閘陣列(FPGA)、數位信號處理器(DSP)、以及其他處理器等在內的異質平台來執行。類似的是,ApacheTM HadoopTM 意指為一配送框架,包括有一JavaR為基之開放原始碼軟體框架,用於分散式儲存及處理計算機叢集上及橫跨該等計算機叢集之非常大資料集。再者,HadoopTM MapReduceTM 意指為在諸如運算裝置1460A至1460N之一計算機叢集中,使用平行、分散式演算法用於產生並處理資料集之一高階程式規劃模型/框架,其中一MapReduceTM 程式一般包括有:1)用於進行資料篩選與排序(例如按字母順序、年齡、地理位置等進行個人排序)之一Map() 程序或方法;以及2)用於進行一彙總操作(例如個人數量之計數等)之一Reduce() 程序或方法。類似的是,舉例而言,ApacheTM SparkTM 意指為一開放原始碼運算/軟體框架,其提供多級記憶體中基元,以及容許開發人員將資料載入到一叢集之記憶體內,並且不斷地詢問該記憶體。
在一項實施例中,規模可調框架1310提供橫跨諸如運算裝置1460A至1460N之一計算機叢集用以運行程式規劃框架核心(例如OpenCLTM 核心)之一機制,但運算裝置1460A至1460N及/或開發人員不需要具有運算裝置1460A至1460N之存取權也能感知諸如運算裝置1440等任何後端運算基礎結構(例如後端雲端運算基礎結構)。舉例而言,規模可調框架1310促進整合或併入運算裝置1440處提供之程式規劃模型1443 (例如MapReduceTM <索引鍵-值>模型)與運算裝置1460A至1460N處提供之程式規劃模型1461A至1461N (例如OpenCLTM ),用來取得及充當一奇異性與統一性程式規劃基礎結構,代表配送與程式規劃框架1441、1461A至1461N (例如HadoopTM +OpenCLTM )之一雙階平行性(例如節點階與執行單元(EU)層平行性),導致形成程式規劃模型1443及程式規劃框架1461A至1461N (例如MapReduceTM +OpenCLTM )等。
程式規劃模型1443與程式規劃框架1461A至1461N的這種新穎整合不僅降低習知的複雜度,還提升可程式規劃性,原因在於開發人員不需要兼具程式規劃模型1443與程式規劃框架1461A至1461N的知識。這種整合進一步提供動態規模可調性,諸如連續處理與相容性,甚至是增加節點數量、增大資料集等,此乃舉例來說,藉由令配送框架1441使用配送側處理引擎1445使資料與排程工作滿益來進行。
在一項實施例中,規模可調框架1310之偵檢/接收邏輯1401乃用於接收或偵檢對於配合程式規劃模型1443使用程式規劃框架1461A至1461N之任何請求,諸如自運算裝置1461A接收一請求,例如,其中對運算裝置1461A具有存取權之一開發人員正在嘗試使用程式規劃框架1461A與程式規劃模型1443之組合。整合與處理引擎(「引擎」) 1403一偵檢到使用者請求,便可遭受觸發以進一步處理此使用者請求。
在一項實施例中,引擎1403之介接邏輯1411可用於提供並維持介於運算裝置1440、1460A至1460N與其諸如程式規劃模型1443、運算裝置1440處的配送框架1441、以及運算裝置1460A至1460N處的程式規劃框架1461A至1461N等相關組件間之一介面。舉例而言,以運算裝置1461A處開發人員所置之使用者請求為例,此新穎介面如藉由介接邏輯1411所促進,容許該開發人員使用位在用戶端運算裝置1460A處之程式規劃框架1461A來進行各種程式規劃任務,同時還使用並獲得伺服器運算裝置1440處程式規劃模型1443的效益,不需要具有程式規劃模型1443、配送框架1441、運算裝置1440等之任何知識或技術訣竅。
如參照圖15A進一步所述,接續從對於運算裝置1460A有存取權之開發人員接收一使用者請求的實例,可觸發引擎1403之分區/向量邏輯1413以產生數對資料分區,例如產生一諸如運算裝置1460A至1460N等叢集中各種運算裝置處所進行程式規劃及其他任務相關巨量資料之資料分區的<索引鍵,值>之配對。用於資料分區之配對一旦產生,接著便可觸發處理邏輯1415以處理核心中各工作識別(ID)有關之符碼,其中如將會對照圖15C進一步所述與所示,可指派一工作ID作為一向量-加法核心。再者,此符碼一經處理,處理邏輯1415接著便可用於就配送框架1441之程式規劃模型1443產生工作,諸如以HadoopTM 之MapReduceTMMap()Reduce() 方法為基礎之Map與Reduce工作。此等工作一旦已產生,接著便可使用執行/呼叫邏輯1417呼叫配送框架1441 (例如HadoopTM )以執行此等工作,諸如Map/Reduce工作。
在一項實施例中,規模可調框架1310與運算裝置1440處之配送引擎1445配合運作,用來進行與配送框架1441及程式規劃模型1443有關之一或多個任務。舉例而言,可使用配送引擎1445之分派邏輯1447來分派與配送框架1441相關聯之一節點池上的資料分區,其中此等資料分區是由分區/向量邏輯1413所建立。此等資料分區一經分派,接著便可觸發排程/映射邏輯1449來排程相關聯節點池上的工作,諸如藉由執行/呼叫邏輯1417所建立之Map/Reduce工作。列入考量的是,配送框架1441可就資料處理及工作執行,與任意數量及尺寸的節點池相關聯。
類似的是,在一項實施例中,規模可調框架1310與程式規劃引擎1463A至1463N進一步通訊,用來促進將接收自配送引擎1443之任何資料處理為運算裝置1463A至1463N及其對應執行單元(EU)池處的區域資料。舉例而言,分區/指派邏輯1465A至1465N各可用於自配送引擎1445接收其對應的資料分區,其中資料分區乃接著予以指派至一EU池作為區域資料並且待予以如此處理。在一項實施例中,接著觸發資料處理邏輯1467A至1467N以呼叫程式規劃框架1461A至1461B (例如OpenCLTM 運行時間)處理此區域資料,隨後,資料處理邏輯1467A至1467N促進程式規劃框架1461A至1461N將此資料分割成微區塊,並且令任何作業項目在該EU池上運行。
如前述,在一項實施例中,規模可調框架1310促進配送與程式規劃引擎1445、1463A至1463N間的無縫介接,用來將程式規劃框架1461A至1461N與程式規劃模型1443及其對應配送框架1441統一併入並整合。再者,在一項實施例中,規模可調框架1310在配送與程式規劃框架1441、1461A至1461N中提供雙階平行性,其中這兩層包括有節點池之節點階及EU池之EU階。舉例而言,該平行性之節點階部分在配送框架1441出現,如配送引擎1445所促進,其將巨量資料分割成一堆分區,並且配合其諸如<索引鍵,值>之對應工作識別符將其發送至叢集中之節點。隨後,舉例而言,在各節點上排程諸如Map與Reduce工作等任務或工作,以例如配合各Map與Reduce工作獨立地處理其指派分區,程式規劃框架1461A至1461N可衍生出在對應EU節點上平行運行之大量核心。
如圖示,舉例而言,運算裝置1300可與一或多個儲存庫、資料源、以及諸如(多個)資料庫1430等資料庫通訊。在一些實施例中,(多個)資料庫1430可用於儲存並維持與運算裝置1300、1440、1460有關之任意量與類型的資料、詮釋資料等、對運算裝置1300、1440、1460具有存取權之使用者、以及運算裝置1300、1440、1460上處理之資料及其之間的通訊、以及/或類似者。
通訊/相容性邏輯1405可用於促進運算裝置1300與下列任意數量與類型者間的動態通訊及相容性:其他運算裝置(諸如行動運算裝置、桌上型電腦、伺服器運算裝置等)、處理裝置(諸如CPU、GPU等)、擷取/感測/偵檢裝置(諸如包括有相機、深度感測相機、相機感測器、RGB感測器、麥克風等在內的擷取/感測組件)、顯示裝置(諸如包括有顯示螢幕、顯示區、顯示投影機等在內的輸出組件)、使用者/情境感知組件及/或識別/驗證感測器/裝置(諸如生物辨識感測器/偵檢器、掃描器等)、記憶體或儲存裝置、資料庫、及/或資料源(諸如資料儲存裝置、硬碟機、固態驅動機、硬碟、記憶卡或裝置、記憶體電路等)、通訊通道或網路(例如雲端網路、網際網路、內部網路、蜂巢式網路、近接網路,諸如藍牙、藍牙低能量(BLE)、藍牙智慧型、Wi-Fi近接、射頻識別(RFID)、近場通訊(NFC)、人體區域網路(BAN)等)、無線或有線通訊及相關協定(例如Wi-FiR、WiMAX、乙太網路等)、連線能力與位置管理技巧、軟體應用程式/網站(例如社交網站及/或企業網路連結網站等、商務應用程式、遊戲與其他娛樂應用程式等)、程式設計語言等,同時還確保與變化中之技術、參數量協定、標準等的相容性。
本文件各處像是「邏輯」、「組件」、「模組」、「框架」、「引擎」及類似用語可交換參考,並且以舉例方式可包括有軟體、硬體、及/或軟體與硬體之任何組合,諸如韌體。在一項實例中,「邏輯」可意指為或包括有能夠與一諸如運算裝置1300之運算裝置的一作業系統(例如作業系統1306)、一圖形驅動程式(例如圖形驅動程式1316)等其中一或多者配合運作之一軟體組件。在另一實例中,「邏輯」可意指為或包括有能夠連同諸如運算裝置1300之一運算裝置的諸如一應用處理器(例如CPU 1312)、一圖形處理器(例如GPU 1314)等一或多個系統硬體元件、或作為其部分予以實體安裝之一硬體組件。在又另一實施例中,「邏輯」可意指為或包括有一韌體組件,其能夠作為系統韌體之部分,例如諸如運算裝置1300之一運算裝置的諸如一應用處理器(例如CPU 1312)、一圖形處理器(例如GPU 1314)等之韌體。
再者,一諸如「GPU」、「GPU域」、「GPGPU」、「CPU」、「CPU域」、「圖形驅動程式」、「作業量」、「應用程式」、「圖框」、「作業單元」、「作業群」、「汲取」、「分派」、「API」、「硬體」、「軟體」、「代理程式」、「圖形驅動程式」、「核心模式圖形驅動程式」、「使用者模式驅動程式」、「UMD」、「使用者模式驅動程式框架」、「UMDF」、「3D圖形API」、「GPU可程式規劃性」、「節點池」、「EU池」、「規模可調框架」、「程式規劃框架」、「配送框架」、「程式規劃模型」、「OpenCLTM 」、「HadoopTM 」、「MapReduceTM 」、「工作ID」、「向量-加法」等特定品牌、字組、用語、字詞、名稱、及/或縮寫字之任何使用不應解讀為將實施例限制於產品中或本文件外部文獻中帶有該標籤之軟體或裝置。
列入考量的是,可對自規模可調框架1310新增及/或移除任意數量與類型的組件以促進包括有新增、移除、及/或增強某些特徵之各種實施例。為求簡短、清楚、以及易於理解規模可調框架1310,標準及/或已知組件有許多並未在本文中展示或論述,諸如一運算裝置之組件。列入考量的是,如本文中所述,實施例並未受限於任何特定技術、拓樸結構、系統、架構、及/或標準,而且其動態性足以適應並且採用任何未來變化。
圖14B繪示運用根據一項實施例之一規模可調框架1310之一架構化置放1480。首先,為求簡短,參照前文諸如圖1至14A中任何一者所論述之各種程序、組件等有關細節中有許多在下文可能不予以論述或重複。此外,列入考量且要注意的是,實施例並不受限於任何特定設定、置放、結構等,諸如架構化置放1480。
如參照圖14A所述,所示架構化置放1480包括有運算裝置1300,其乃當作一伺服器電腦託管規模可調框架1310,並且與當作一配送伺服器電腦託管配送框架1441 (例如「HadoopTM 」等)及高階程式規劃模型1443 (例如「MapReduceTM 」等)之運算裝置1440通訊性耦合。在一項實施例中,運算裝置1300、1440進一步與當作用戶端電腦託管程式規劃框架1461A至1461N (例如「OpenCLTM 」等)之一或多個運算裝置1460A至1460N、以及諸如CPU 1312、GPU 1314、I/O來源1304、記憶體1308、作業系統1306、圖形驅動程式1316、及/或類似者等一或多個組件及/或裝置1481A至1481N通訊。
如參照圖14A所示,運算裝置1300、1440、1460A至1460N可透過通訊媒體1425彼此通訊,諸如包括有一雲端網路、網際網路等在內之一或多個網路。再者,在一項實施例中,規模可調框架1310將程式規劃用戶端電腦1460A至1460N處之程式規劃框架1461A至1461N (例如「OpenCLTM 」等)與配送電腦伺服器1440處之配送框架1441 (例如「HadoopTM 」等)及/或高階程式規劃模型1443 (例如「MapReduceTM 」等)整合及合併。再者,在一項實施例中,根據開發人員之輸入,在配送框架1441上具有規模可調框架1310有助於產生規模可調框架任務,諸如MapReduceTM 工作。
圖15A根據一項實施例,繪示用於規模可調資料處理之一交易序列1500。交易序列1500如藉由圖13之規模可調框架1310及/或配送引擎1445及/或程式規劃引擎1463A至1463N所促進,可藉由可包含有硬體(例如電路系統、專屬邏輯、程式規劃邏輯等)、軟體(諸如一處理裝置上運行之指令)、或以上之組合的處理邏輯來進行。交易序列1500之程序為求簡短及清楚呈現,乃繪示成線性序列;然而,列入考量的是,任意數量的程序都可予以平行、非同步進行。為求簡短,前文參照圖1至14B所論述之細節有許多在下文可能不予以論述或重複。
交易序列1500始於在規模可調框架1310所收到諸如巨量資料1501的資料。在一項實施例中,如參照圖15A所述,規模可調框架1310可用於產生配對,諸如<索引鍵,值>配對,用於對巨量資料1501進行資料分區以分成更小的資料分區1505,諸如更小的分區或更小件。再者,舉例而言,規模可調框架1310乃用於處理核心中與工作ID有關之符碼,並且產生用於在配送框架1441進一步處理之工作(例如Map/Reduce工作)。舉例而言,具有一相關聯工作ID之各工作可與處理資料分區1505之一對應資料分區有關。隨後,規模可調框架1310呼叫配送框架1441以執行工作,此等工作乃如藉由其工作ID所識別,並且對應於資料分區1505。
交易序列1500接續一配送伺服器電腦處的配送引擎1445,諸如圖14A所示運算裝置1440。在一項實施例中,配送引擎1445配合託管高階程式規劃模型1443之配送框架1441運作以分派節點池1503上之資料分區1505,並且排程其在節點池1503中對應的工作,諸如Map/Reduce工作。舉例而言,資料分區1505中諸如資料分區1507之任何奇異性資料分區可使用其對應工作之一工作ID來識別,並且傳送到諸如運算裝置1460A之一對應程式規劃用戶端電腦上而予以處理為區域資料1511。
在一項實施例中,在程式規劃引擎1463A指派並接收此資料分區1507作為區域資料1511,其接著呼叫程式規劃框架1461A以處理區域資料1511,並且促進程式規劃框架1461A將此區域資料1511分割成任意數量與尺寸的微區塊,對應於EU池1513上運行之作業項目1515。
如圖示,規模可調框架1310使程式規劃框架1461A與配送框架1441及高階程式規劃模型1443整合,並且提供一多階平行環境,以使得節點階平行性出現於配送框架1441這階,而EU階平行性則在程式規劃框架1441之區域階出現。
圖15B根據一項實施例,繪示作業群之一二維(2D)置放1520及一三維(3D)置放1530。首先,列入考量且要注意的是,實施例並不受限於任何特定的設定、置放、結構等,諸如置放1520、1530。
在一項實施例中,如前文參照圖15A所述,配送框架1441與程式規劃框架1461A至1461N之這種整合使程式規劃模型1443併入程式規劃框架1461A至1461N,引進一或多維作業群,指出諸如MapReduceTM 之程式規劃模型1443所進行的節點階平行性。舉例而言,如圖示,在習知的技巧中,作業群僅可在2D置放1520中呈現並處理,但圖13之規模可調框架1310提供用以呈現並處理作業群之附加、第三維度,如3D置放1530中所示。
舉例而言,如參照圖15A所示,諸如OpenCLTM 之一程式規劃框架可在一運算裝置衍生出作業群,其中各作業群可含有一組作業項目。舉例而言,一作業群之尺寸與維度可取決於作業量尺寸及各作業項目處理之一微區塊的尺寸。習知舉例而言,一作業項目可使用其ID (例如作業群ID、區域ID、全域ID等)以計算所指派資料分區之位置,諸如作為如圖15A中之區域資料1511而指派之資料分區1507。然而,在一項實施例中,藉助第N+1維之3D置放1530,一作業項目可定位其與整體資料空間中之資料分區相對應之區域資料,如藉由圖13之規模可調框架1310所促進。 再者,舉例而言,所示為N=2時的第N+1維作業群,其中引進一個核心延伸get_job_id() 以獲得屬於該作業項目之工作ID。
圖15C根據一項實施例,繪示一習知的向量核1530及一規模可調向量核1540。首先,列入考量且要注意的是,實施例並不受限於任何特定設定、置放、結構等,諸如習知的向量核1530、規模可調向量核1540等。
如圖示,例如與OpenCLTM 相關聯之習知向量核1530與如圖13之規模可調框架1310所促進之規模可調向量核1540作比較,指出諸如一OpenCLTM 作業項目之各作業項目計算幾乎128個整數,並且使用全域ID來定位相關微區塊。此時,舉例而言,尺寸為100 GB的兩個向量可在400-節點叢集之一系統上運行,其中各工作處置約256 MB的資料。在一項實施例中,規模可調向量核1530乃有效率且有差別,因為舉例而言,其包括有一附加核心1541,諸如代表 unsigned int jobid = get_job_id(0) 之VectorAddition_SCL() 核心,其使用工作ID及位置ID以定位相關資料,諸如出自一資料分區之區域資料。舉例而言,可將圖13之規模可調框架所曝露之介面當作OpenCLTM 介面之一子集使用,容許開發人員控制作業群之尺寸及維度,並且進行資源管理及資料分區等。
圖16A根據一項實施例,繪示一種用於促進規模可調運行時間之方法1600。方法1600如藉由圖13之規模可調框架1310及/或配送引擎1445及/或程式規劃引擎1463A至1463N所促進,可藉由可包含有硬體(例如電路系統、專屬邏輯、程式規劃邏輯等)、軟體(諸如一處理裝置上運行之指令)、或以上之組合的處理邏輯來進行。方法1600之程序為求簡短及清楚呈現,乃繪示成線性序列;然而,列入考量的是,任意數量的程序都可予以平行、非同步進行。為求簡短,前文參照圖1至15所論述之細節有許多在下文可能不予以論述或重複。
方法1600始於程序塊1601,其建構諸如<索引鍵,值>配對之配對,用於藉由圖13之規模可調框架1310進行巨量資料之資料分區,其中這些配對可當作一諸如HadoopTM 等配送框架之輸入使用。再者,在一項實施例中,如圖13之規模可調框架1310所促進之規模可調運行時間根據如相關軟體應用程式所提供之設定值將資料分割成更小區塊或分區,然後對各該資料分區指派工作ID。於程序塊1603,如圖13之規模可調框架1310所促進,延伸get_job_id乃剝離自該核心並藉由使用一零來取代,因為舉例而言,各運算裝置上運行之一OpenCLTM 核心將與工作相關聯之資料分區作為區域資料來處理。
於程序塊1605,接續MapReduceTM 為高階程式規劃模型之實例,根據該程式規劃模型(例如MapReduceTM )產生一符碼(例如Map()Reduce() 符碼)以在各節點上運行程式規劃框架(例如OpenCLTM ) (諸如可使用OpenCLTM JavaR鍵聯),用來進行任何必要的運算與處理。於程序塊1607,透過諸如HadoopTM 框架之配送框架,在一計算機叢集(諸如圖14A之計算機1460A至1460N)上排程各種對應的工作(例如Map()Reduce() 工作)。
圖16B根據一項實施例,繪示一種用於促進規模可調資料處理之方法1650。方法1650如藉由圖13之規模可調框架1310及/或配送引擎1445及/或程式規劃引擎1463A至1463N所促進,可藉由可包含有硬體(例如電路系統、專屬邏輯、程式規劃邏輯等)、軟體(諸如一處理裝置上運行之指令)、或以上之組合的處理邏輯來進行。方法1650之程序為求簡短及清楚呈現,乃繪示成線性序列;然而,列入考量的是,任意數量的程序都可予以平行、非同步進行。為求簡短,前文參照圖1至16A所論述之細節有許多在下文可能不予以論述或重複。
方法1650始於程序塊1651,其產生諸如<索引鍵,值>配對之配對,用於根據相關軟體應用程式所提供之規格,進行巨量資料之資料分區。於程序塊1653,根據高階程式規劃模型(例如MapReduceTM )在核心產生並處理與工作ID有關之一符碼(例如Map()Reduce() 符碼)以運行一程式規劃框架(例如OpenCLTM )。於程序塊1655,產生用於及待配送至一配送框架(例如HadoopTM )之工作(例如Map()Reduce() 工作),其中於程序塊1657呼叫該配送框架以執行此等工作。在一項實施例中,可藉由圖13之規模可調框架1310進行並促進程序1651、1653、1655、1657。
於程序塊1659,從圖13之規模可調框架1310收到之各種資料分區乃接著予以分派至節點池,隨後於程序塊1661,就一節點池排程此等工作(例如Map()Reduce() 工作)。在一項實施例中,如藉由圖13之規模可調框架1310及/或圖14A之配送框架1441及/或高階程式規劃模型1443所促進,可藉由圖14A之配送引擎1445來進行並促進程序1659及1661。舉例而言,規模可調框架1310之執行/呼叫邏輯1417可呼叫並促進圖14A之配送引擎1445及/或配送框架1441及/或程式規劃模型1443以進行程序1659及1661之一或多者。
於程序塊1663,在一運算裝置接收該等資料分區之一資料分區,其中該資料分區乃予以指派至一節點作為區域資料。於程序塊1665,呼叫一相關程式規劃框架(例如OpenCLTM 運行時間)以處理該區域資料。於程序塊1667,該程式規劃框架將資料分割成數個微區塊,以在一EU池上將其為作業項目運行並處理。在一項實施例中,如藉由圖13之規模可調框架1310及/或圖14A之程式規劃框架1461A至1461N所促進,可藉由圖14A之程式規劃引擎1463A至1463AN進行並促進程序1663、1665及1667。舉例而言,規模可調框架1310之執行/呼叫邏輯1417可呼叫並促進圖14A之程式規劃引擎1463A至1463N及/或程式規劃框架1461A至1461N以進行程序1663、1665及1667其中一或多者。
對「一項實施例」、「一實施例」、「例示性實施例」、「各項實施例」等之參照指出如此說明之此(等)實施例可包括有特定特徵、結構、或特性,但並非每一項實施例都必然包括有此等特定特徵、結構、或特性。再者,一些實施例可具有就其他實施例所述特徵之一些、全部或都不具有。
在前述說明書中,已參照其特定例示性實施例說明實施例。然而,將會證實的是,可對其施作各種修改及變更,但不會脫離隨附申請專利範圍中所提出實施例之更廣精神及範疇。本說明書及圖式從而應視為一說明性而不是一限制性概念。
在以下說明及申請專利範圍中,可使用「耦合」一詞連同其派生詞。「耦合」乃用於指出二或更多個元件彼此相配合或互動,但在此等元件間可以或可不具有中介之實體或電氣組件。
「第一」、「第二」、「第三」等用以說明一公用元件的原始形容詞於申請專利範圍中使用時,除非另有所指,僅指出相似元件之不同例子係意指為,並且非意欲意味著如此說明之此等元件必須依照一依據時間、空間、等級、或任何其他方式之給定次序。
以下條項及/或實例涉及進一步實施例或實例。此等實例的特定內容可用在一或多項實施例的任何地方。不同實施例或實例的各種特徵可含入一些特徵及排除其他特徵而以不同方式組合,以適合各種不同應用。實例可包括有諸如一方法、用於進行該方法之動作的手段、包括有指令的至少一個機器可讀媒體等標的內容,該等指令在由一機器進行時令該機器進行本方法之、或一設備之動作,用於根據本文中所述之實施例及實例促進混合通訊。
一些實施例涉及實例1,其包括有一種用以促進於一異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之設備,其包含有用以使用一程式規劃框架及一程式規劃模型就資料之處理偵檢一請求之偵檢/接收邏輯;用以在該程式規劃框架與該程式規劃模型間促進介接之介接邏輯,其中介接包括有將該程式規劃模型併入該程式規劃框架,其中介接更包括有將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及用以呼叫該配送框架以基於該請求對複數個工作之處理進行排程之執行/呼叫邏輯。
實例2包括有實例1之標的內容,其更包含有用以將該資料分割成複數個資料分區之分區/向量邏輯,其中該偵檢/接收邏輯是進一步用來接收該資料,其中介接是透過包括有一雲端網路之一網路來提供。
實例3包括有實例1或2之標的內容,其更包含有用以處理該資料使該複數個資料分區對應於複數個工作、並對該複數個工作指派複數個工作識別(ID)而使得各工作乃由一工作ID所識別之處理邏輯。
實例4包括有實例1之標的內容,其中該執行/呼叫邏輯是進一步用來促進該配送框架對一節點池分派該複數個資料分區,其中該執行/呼叫邏輯是進一步用來促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
實例5包括有實例1或4之標的內容,其中該執行/呼叫邏輯是進一步用來促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
實例6包括有實例1或4之標的內容,其中該執行/呼叫邏輯是進一步用來促進該程式規劃框架將該區域資料分割成複數個微區塊,代表待經由一執行單元(EU)池處理之複數個作業項目。
實例7包括有實例1之標的內容,其中該配送框架及該程式規劃模型常駐於當作一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作其中一工作包括有一Map工作及一Reduce工作。
實例8包括有實例1之標的內容,其中該程式規劃框架常駐於當作一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
一些實施例涉及實例9,其包括有一種用於促進於一異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之方法,其包含有使用一程式規劃框架及一程式規劃模型就資料之處理偵檢一請求;在該程式規劃框架與該程式規劃模型間促進介接,其中介接包括有將該程式規劃模型併入該程式規劃框架,其中介接更包括有將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及呼叫該配送框架以基於該請求對複數個工作之處理進行排程。
實例10包括有實例9之標的內容,其更包含有:將該資料分割成複數個資料分區;以及接收該資料,其中介接是透過包括有一雲端網路之一網路來提供。
實例11包括有實例9或10之標的內容,其更包含有處理該資料使該複數個資料分區對應於複數個工作;以及對該複數個工作指派複數個工作識別(ID)而使得各工作乃由一工作ID所識別。
實例12包括有實例9之標的內容,其更包含有:促進該配送框架對一節點池分派該複數個資料分區;以及促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
實例13包括有實例9或12之標的內容,其更包含有促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
實例14包括有實例9或12之標的內容,其更包含有促進該程式規劃框架將該區域資料分割成複數個微區塊,代表待經由一執行單元(EU)池處理之複數個作業項目。
實例15包括有實例9之標的內容,其中該配送框架及該程式規劃模型常駐於當作一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作其中一工作包括有一Map工作及一Reduce工作。
實例16包括有實例9之標的內容,其中該程式規劃框架常駐於當作一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
一些實施例涉及包括有一系統之實例17,該系統包含有具有指令之一儲存裝置、以及執行該等指令促進一機制進行一或多個操作之一處理器,該一或多個操作包含有:使用一程式規劃框架及一程式規劃模型就資料之處理偵檢一請求;在該程式規劃框架與該程式規劃模型間促進介接,其中介接包括有將該程式規劃模型併入該程式規劃框架,其中介接更包括有將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及在該配送框架上進行呼叫以基於該請求對複數個工作之處理進行排程。
實例18包括有實例17之標的內容,其中該一或多個操作包含有:將該資料分割成複數個資料分區;以及接收該資料,其中介接是透過包括有一雲端網路之一網路來提供。
實例19包括有實例17或18之標的內容,其中該一或多個操作包含有:處理該資料使該複數個資料分區對應於複數個工作;以及對該複數個工作指派複數個工作識別(ID)而使得各工作乃由一工作ID所識別。
實例20包括有實例17之標的內容,其中該一或多個操作包含有促進:該配送框架對一節點池分派該複數個資料分區;以及促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
實例21包括有實例17或20之標的內容,其中該一或多個操作包含有促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
實例22包括有實例17或20之標的內容,其中該一或多個操作包含有促進該程式規劃框架將該區域資料分割成複數個微區塊,代表待經由一執行單元(EU)池處理之複數個作業項目。
實例23包括有實例17之標的內容,其中該配送框架及該程式規劃模型常駐於當作一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作其中一工作包括有一Map工作及一Reduce工作。
實例24包括有實例17之標的內容,其中該程式規劃框架常駐於當作一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
一些實施例涉及包括有一設備之實例25,該設備包含有:用於使用一程式規劃框架及一程式規劃模型就資料之處理偵檢一請求之手段;用於在該程式規劃框架與該程式規劃模型間促進介接之手段,其中介接包括有將該程式規劃模型併入該程式規劃框架,其中介接更包括有將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及用於在該配送框架上進行呼叫以基於該請求對複數個工作之處理進行排程之手段。
實例26包括有實例25之標的內容,其更包含有:用於將該資料分割成複數個資料分區之手段;以及用於接收該資料之手段,其中介接是透過包括有一雲端網路之一網路來提供。
實例27包括有實例25或26之標的內容,其更包含有用於處理該資料使該複數個資料分區對應於複數個工作之手段;以及用於對該複數個工作指派複數個工作識別(ID)而使得各工作乃由一工作ID所識別之手段。
實例28包括有實例25之標的內容,其更包含有:用於促進該配送框架對一節點池分派該複數個資料分區之手段;以及用於促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作之手段。
實例29包括有實例25或28之標的內容,其更包含有用於促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料之手段。
實例30包括有實例25或28之標的內容,其更包含有用於促進該程式規劃框架將該區域資料分割成複數個微區塊之手段,該複數個微區塊代表待經由一執行單元(EU)池處理之複數個作業項目。
實例31包括有實例25之標的內容,其中該配送框架及該程式規劃模型常駐於當作一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作其中一工作包括有一Map工作及一Reduce工作。
實例32包括有實例25之標的內容,其中該程式規劃框架常駐於當作一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
實例33包括包含有複數個指令之至少一個非暫時性或有形機器可讀媒體,該複數個指令於一運算裝置上受執行時,用來實施或進行一種如請求項或實例9至16中任一項之方法。
實例34包括包含有複數個指令之至少一個機器可讀媒體,該複數個指令於一運算裝置上受執行時,用來實施或進行一種如請求項或實例9至16中任一項之方法。
實例35包括有一種包含有一機制之系統,用來實施或進行一種如請求項或實例9至16中任一項之方法。
實例36包括有一種包含有手段之設備,用於進行一種如請求項或實例9至16中任一項之方法。
實例37包括有一運算裝置,其乃布置來實施或進行一種如請求項或實例9至16中任一項之方法。
實例38包括有一通訊裝置,其乃布置來實施或進行一種如請求項或實例9至16中任一項之方法。
實例39包括包含有複數個指令之至少一個機器可讀媒體,該複數個指令於一運算裝置上受執行時,用來實施一種如前述請求項中任一項之方法,或落實一種如前述請求項中任一項之設備。
實例40包括包含有複數個指令之至少一個非暫時性或有形機器可讀媒體,該複數個指令於一運算裝置上受執行時,用來實施一種如前述請求項中任一項之方法,或落實一種如前述請求項中任一項之設備。
實例41包括有一種包含有一機制之系統,用來實施或進行一種如前述請求項中任一項之方法,或落實一種如前述請求項中任一項之設備。
實例42包括一種包含有手段之設備,用來進行一種如前述請求項中任一項之方法。
實例43包括有一種包括有一種運算裝置,其乃布置來實施或進行一種如前述請求項中任一項之方法,或落實一種如前述請求項中任一項之設備。
實例44包括有一種包括有一種通訊裝置,其乃布置來實施或進行一種如前述請求項中任一項之方法,或落實一種如前述請求項中任一項之設備。
此等圖式及前述說明提供實施例之實例。所屬技術領域中具有通常知識者將了解的是,所述元件之一或多者可恰當地組合成單一功能元件。替代地,某些元件可分成多個功能元件。可將一項實施例的元件加入另一實施例。舉例而言,本文中所述程序的順序可變更,並且不受限於本文中所述的方式。此外,任何流程圖之動作不一定依照所示順序實施;此等動作也不一定全部都要進行。同樣地,那些與其他動作不相依的動作可與此等其他動作平行進行。實施例之範疇不因這些特定實例而受限。材料在諸如結構、維度及使用方面之差異等數字變化(無論是否有在本說明書中明確提出)是有可能的。實施例的範疇至少如以下申請專利範圍所述一般廣泛。
100‧‧‧處理系統
102、200、1030‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107、202A~202N‧‧‧處理器核心
208、108、300、500、800、1032‧‧‧圖形處理器
109‧‧‧特定指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧ICH
134‧‧‧網路控制器
140‧‧‧舊有I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧滑鼠
146‧‧‧音訊控制器
204A~204N‧‧‧內部快取單元
206‧‧‧共享快取單元
210‧‧‧系統代理核心
211、302、843‧‧‧顯示控制器
212‧‧‧環體為基之互連單元
213‧‧‧I/O鏈路
214‧‧‧整合式記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧高效能嵌入式記憶體模組
304‧‧‧區塊影像轉移(BLIT)引擎
306‧‧‧視訊編解碼引擎
310‧‧‧圖形處理引擎
312、412、922‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316、416、830、924‧‧‧媒體管線
320、1245‧‧‧顯示裝置
403‧‧‧命令串流器
410‧‧‧GPE
414‧‧‧執行單元陣列
430‧‧‧取樣引擎
432‧‧‧去雜訊/去交錯模組
434‧‧‧動作估計模組
436‧‧‧影像比例縮放與篩選模組
444、614、856‧‧‧資料埠
502、802‧‧‧環形互連件
503‧‧‧命令串流器
504‧‧‧管線前端
530‧‧‧視訊品質引擎
533‧‧‧多格式編碼/解碼
534‧‧‧視訊前端
536‧‧‧幾何管線
537、837‧‧‧媒體引擎
550A~550N、560A~560N‧‧‧子核心
552A~552N、562A~562N、608A~608N、852A~852B‧‧‧執行單元
554A~554N‧‧‧媒體/紋理取樣器
564A~564N、600‧‧‧緒執行邏輯
602‧‧‧像素著色器
604‧‧‧緒分派器
606‧‧‧指令快取
612‧‧‧資料快取
700‧‧‧圖形處理器指令格式
710‧‧‧128位元格式
712‧‧‧指令操作碼
713‧‧‧索引欄
714‧‧‧指令控制欄
716‧‧‧執行尺寸欄
718‧‧‧目的地
722‧‧‧src0
722‧‧‧src1
724‧‧‧SRC2
726‧‧‧存取/定址模式資訊
730‧‧‧64位元壓縮指令格式
740‧‧‧操作碼解碼
742‧‧‧移動與邏輯操作碼群
744‧‧‧流程控制指令群
746‧‧‧雜項指令群
748‧‧‧平行數學指令群
750‧‧‧向量數學群
803‧‧‧命令串流器
805‧‧‧頂點擷取器
807‧‧‧頂點著色器
811‧‧‧可規劃外殼著色器
813‧‧‧鑲嵌器
817‧‧‧可規劃域著色器
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出單元
829‧‧‧剪輯器
831‧‧‧緒分派器
834‧‧‧視訊前端
840‧‧‧顯示引擎
841‧‧‧2D引擎
850‧‧‧緒執行邏輯
851‧‧‧L1快取
854‧‧‧紋理與媒體取樣器
858‧‧‧紋理/取樣器快取
870‧‧‧呈現輸出管線
873‧‧‧柵格化程序與深度測試組件
875‧‧‧共享L3快取
877‧‧‧像素操作組件
878‧‧‧相關聯之呈現快取
879‧‧‧深度快取
900‧‧‧圖形處理器命令格式
902‧‧‧目標用戶端
904‧‧‧命令操作碼
905‧‧‧子操作碼
906‧‧‧相關資料
908‧‧‧命令尺寸
910‧‧‧圖形處理器命令序列
912‧‧‧管線排清命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回傳緩衝狀態命令
920‧‧‧管線判定
930‧‧‧3D管線狀態
932‧‧‧3D基元
934‧‧‧執行
940‧‧‧媒體管線狀態命令
942‧‧‧媒體物件命令
944‧‧‧執行命令
1000‧‧‧資料處理系統
1010‧‧‧3D圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1022‧‧‧圖形API
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動程式
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統核心模式功能
1029‧‧‧核心模式圖形驅動程式
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心開發系統
1110‧‧‧軟體模擬
1112‧‧‧模擬模型
1115‧‧‧RTL設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非依電性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧第三方製作設施
1200‧‧‧晶片積體電路
1205‧‧‧應用處理器
1210‧‧‧圖形處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1250‧‧‧高畫質多媒體介面(HDMI)控制器
1255‧‧‧行動產業處理器介面(MIPI)顯示介面
1260‧‧‧記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式安全性引擎
1440、1300、1460A~1460N‧‧‧運算裝置
1304‧‧‧輸入輸出(I/O)來源
1306‧‧‧作業系統
1308‧‧‧記憶體
1310‧‧‧規模可調框架
1312‧‧‧CPU
1314‧‧‧GPU
1316‧‧‧圖形驅動程式
1401~1417‧‧‧組件
1425‧‧‧通訊媒體
1430‧‧‧資料庫
1441‧‧‧配送框架
1443‧‧‧高階程式規劃模型
1445‧‧‧配送側處理引擎
1447‧‧‧分派邏輯
1449‧‧‧排程/映射邏輯
1451、1471A~1471N‧‧‧通訊邏輯
1461A~1461N‧‧‧程式規劃模型
1463A~1463N‧‧‧程式規劃側處理引擎
1465A~1465N‧‧‧分區/指派邏輯
1467A~1467N‧‧‧資料處理邏輯
1469A~1469N‧‧‧使用者介面
1473A~1473N‧‧‧I/O組件
1480‧‧‧架構化置放
1481A~1481N‧‧‧組件及/或裝置
1501‧‧‧巨量資料
1503‧‧‧節點池
1505~1507‧‧‧資料分區
1511‧‧‧區域資料
1513‧‧‧EU池
1515‧‧‧作業項目
1520‧‧‧二維(2D)置放
1530‧‧‧三維(3D)置放
1540‧‧‧規模可調向量核
1541‧‧‧核心
1600、1650‧‧‧方法
1601~1607、1651~1667‧‧‧程序塊
實施例乃在附圖的圖式中以舉例方式說明,而且不是要作為限制,其中相似的參考符號意指為類似的元件。
圖1根據一實施例,乃一處理系統的一方塊圖。
圖2乃一處理器之一實施例的一方塊圖,其具有一或多個處理器核心、一整合式記憶體控制器、以及一整合式圖形處理器。
圖3乃一圖形處理器的一方塊圖,其可以是一分立圖形處理單元,或可以是整合有複數個處理核心之一圖形處理器。
圖4根據一些實施例,乃一圖形處理器之一圖形處理引擎的一方塊圖。
圖5乃一圖形處理器之另一實施例的一方塊圖。
圖6繪示緒執行邏輯,其包括有一圖形處理引擎之一些實施例中所運用之一處理元件陣列。
圖7根據一些實施例,乃繪示一圖形處理器指令格式的一方塊圖。
圖8乃一圖形處理器之另一實施例的一方塊圖。
圖9A乃根據一實施例繪示一圖形處理器命令格式的一方塊圖,而圖9B乃根據一實施例繪示一圖形處理器命令序列的一方塊圖。
圖10根據一些實施例,繪示用於一資料處理系統之例示性圖形軟體架構。
圖11根據一實施例,乃繪示一IP核心開發系統的一方塊圖,其可用於製造一積體電路以進行操作。
圖12根據一實施例,乃繪示一例示性系統單晶片積體電路的一方塊圖,其可使用一或多個IP核心來製作。
圖13根據一項實施例,繪示運用一規模可調框架之一運算裝置。
圖14A根據一項實施例,繪示一規模可調框架。
圖14B繪示運用根據一項實施例之一規模可調框架之一架構化置放。
圖15A根據一項實施例,繪示用於規模可調資料處理之一交易序列。
圖15B根據一項實施例,繪示作業群之一二維置放及一三維置放。
圖15C根據一項實施例,繪示一習知的向量核及一規模可調向量核。
圖16A根據一項實施例,繪示一種用於促進規模可調運行時間之方法。
圖16B根據一項實施例,繪示一種用於促進規模可調資料處理之方法。
100‧‧‧處理系統
102‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108‧‧‧圖形處理器
109‧‧‧特定指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧ICH
134‧‧‧網路控制器
140‧‧‧舊有I/O控制器
142‧‧‧通用串列匯流排(USB)控制器
144‧‧‧滑鼠
146‧‧‧音訊控制器

Claims (24)

  1. 一種設備,其包含有: 偵檢/接收邏輯,用以使用一程式規劃框架及一程式規劃模型對資料之處理偵檢一請求; 介接邏輯,用以在該程式規劃框架與該程式規劃模型之間促進介接,其中介接包括將該程式規劃模型併入該程式規劃框架,其中介接更包括將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及 執行/呼叫邏輯,用以呼叫該配送框架以基於該請求來排程複數個工作之處理。
  2. 如請求項1之設備,其更包含有分區/向量邏輯用以將該資料分割成複數個資料分區,其中該偵檢/接收邏輯是進一步用來接收該資料,其中介接是透過包括一雲端網路之一網路所提供。
  3. 如請求項1或2之設備,其更包含有處理邏輯用以處理該資料使該複數個資料分區對應於該複數個工作、並且對該複數個工作指派複數個工作識別(ID)而使得各工作是由一工作ID所識別。
  4. 如請求項1之設備,其中該執行/呼叫邏輯是進一步用來促進該配送框架對一節點池分派該複數個資料分區,其中該執行/呼叫邏輯是進一步用來促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
  5. 如請求項1或4之設備,其中該執行/呼叫邏輯是進一步用來促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
  6. 如請求項1或4之設備,其中該執行/呼叫邏輯是進一步用來促進該程式規劃框架將該區域資料分割成複數個微區塊,代表要經由一執行單元(EU)池被處理之複數個作業項目。
  7. 如請求項1之設備,其中該配送框架及該程式規劃模型常駐於作為一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作中之一工作包括有一Map工作及一Reduce工作。
  8. 如請求項1之設備,其中該程式規劃框架常駐於作為一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
  9. 一種方法,其包含有: 使用一程式規劃框架及一程式規劃模型對資料之處理偵檢一請求; 在該程式規劃框架與該程式規劃模型之間促進介接,其中介接包括將該程式規劃模型併入該程式規劃框架,其中介接更包括將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及 呼叫該配送框架以基於該請求來排程複數個工作之處理。
  10. 如請求項9之方法,其更包含有: 將該資料分割成複數個資料分區;以及 接收該資料,其中介接是透過包括一雲端網路之一網路所提供。
  11. 如請求項9之方法,其更包含有: 處理該資料使該複數個資料分區對應於該複數個工作;以及 對該複數個工作指派複數個工作識別(ID)而使得各工作是由一工作ID所識別。
  12. 如請求項9之方法,其更包含有: 促進該配送框架對一節點池分派該複數個資料分區;以及 促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
  13. 如請求項12之方法,其更包含有促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
  14. 如請求項12之方法,其更包含有促進該程式規劃框架將該區域資料分割成複數個微區塊,代表要經由一執行單元(EU)池被處理之複數個作業項目。
  15. 如請求項9之方法,其中該配送框架及該程式規劃模型常駐於作為一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作中之一工作包括有一Map工作及一Reduce工作。
  16. 如請求項9之方法,其中該程式規劃框架常駐於作為一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
  17. 一種包含有複數個指令之至少一機器可讀媒體,該複數個指令在一運算裝置上被執行時,致使該運算裝置用以進行一或多個操作,包含: 使用一程式規劃框架及一程式規劃模型對資料之處理偵檢一請求; 在該程式規劃框架與該程式規劃模型之間促進介接,其中介接包括將該程式規劃模型併入該程式規劃框架,其中介接更包括將該程式規劃框架與託管該程式規劃模型之一配送框架整合;以及 呼叫該配送框架以基於該請求來排程複數個工作之處理。
  18. 如請求項17之機器可讀媒體,其中該一或多個操作更包含有: 將該資料分割成複數個資料分區;以及 接收該資料,其中介接是透過包括一雲端網路之一網路所提供。
  19. 如請求項17之機器可讀媒體,其中該一或多個操作更包含有: 處理該資料使該複數個資料分區對應於該複數個工作;以及 對該複數個工作指派複數個工作識別(ID)而使得各工作是由一工作ID所識別。
  20. 如請求項17之機器可讀媒體,其中該一或多個操作更包含有: 促進該配送框架對一節點池分派該複數個資料分區;以及 促進該配送框架經由該節點池排程對應於該複數個資料分區之該複數個工作。
  21. 如請求項20之機器可讀媒體,其中該一或多個操作更包含有促進該配送框架對該程式規劃框架提供該複數個資料分區之各資料分區作為區域資料。
  22. 如請求項20之機器可讀媒體,其中該一或多個操作更包含有促進該程式規劃框架將該區域資料分割成複數個微區塊,代表要經由一執行單元(EU)池被處理之複數個作業項目。
  23. 如請求項17之機器可讀媒體,其中該配送框架及該程式規劃模型常駐於作為一配送伺服器電腦使用之一第一運算裝置,其中該配送框架包括有HadoopTM 框架,以及其中該程式規劃模型包括有一MapReduceTM 模型,其中該複數個工作中之一工作包括有一Map工作及一Reduce工作。
  24. 如請求項17之機器可讀媒體,其中該程式規劃框架常駐於作為一程式規劃用戶端電腦使用之一第二運算裝置,其中該程式規劃框架包括有OpenCLTM 框架。
TW105138237A 2015-12-24 2016-11-22 促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術 TWI731897B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2015/098634 WO2017107118A1 (en) 2015-12-24 2015-12-24 Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment
WOPCT/CN2015/098634 2015-12-24

Publications (2)

Publication Number Publication Date
TW201729122A true TW201729122A (zh) 2017-08-16
TWI731897B TWI731897B (zh) 2021-07-01

Family

ID=59088808

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105138237A TWI731897B (zh) 2015-12-24 2016-11-22 促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術

Country Status (3)

Country Link
US (1) US11550632B2 (zh)
TW (1) TWI731897B (zh)
WO (1) WO2017107118A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI653587B (zh) 2017-09-22 2019-03-11 財團法人資訊工業策進會 基於機台多級別穩態生產速率之派工方法及系統
US10963300B2 (en) 2018-12-06 2021-03-30 Raytheon Company Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems
US11550632B2 (en) 2015-12-24 2023-01-10 Intel Corporation Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment
TWI802056B (zh) * 2020-10-27 2023-05-11 大陸商中國銀聯股份有限公司 資料核對方法、裝置、設備、系統及存儲介質

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474600B2 (en) * 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
US11153281B2 (en) 2018-12-06 2021-10-19 Bank Of America Corporation Deploying and utilizing a dynamic data stenciling system with a smart linking engine
US11829733B2 (en) * 2021-11-22 2023-11-28 Xilinx, Inc. Synthesis flow for data processing engine array applications relying on hardware library packages
CN116957908B (zh) * 2023-09-20 2023-12-15 上海登临科技有限公司 一种硬件处理架构、处理器以及电子设备

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240512B1 (en) * 1998-04-30 2001-05-29 International Business Machines Corporation Single sign-on (SSO) mechanism having master key synchronization
US7039912B1 (en) * 1998-05-12 2006-05-02 Apple Computer, Inc. Integrated computer testing and task management systems
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
EP1543414A2 (en) * 2002-08-29 2005-06-22 BAE SYSTEMS Information and Electronic Systems Integration, Inc. Mechanism for integrating programmable devices into software based frameworks for distributed computing
KR100607141B1 (ko) * 2004-05-12 2006-08-01 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 시스템
US8230426B2 (en) * 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US7853961B2 (en) * 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8707329B2 (en) * 2007-01-05 2014-04-22 Ajou University Industry Cooperation Foundation Open framework system for heterogeneous computing and service integration
US8417762B2 (en) * 2007-04-10 2013-04-09 International Business Machines Corporation Mechanism for execution of multi-site jobs in a data stream processing system
US9678775B1 (en) * 2008-04-09 2017-06-13 Nvidia Corporation Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment
US8150889B1 (en) * 2008-08-28 2012-04-03 Amazon Technologies, Inc. Parallel processing framework
US8418181B1 (en) * 2009-06-02 2013-04-09 Amazon Technologies, Inc. Managing program execution based on data storage location
KR20120033718A (ko) * 2010-09-30 2012-04-09 삼성전자주식회사 화상형성장치 및 그 장치에서의 이메일 전송 방법
US9098830B2 (en) * 2010-11-30 2015-08-04 Sap Se System and method for a process broker and backend adapter based process integration
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8959526B2 (en) * 2011-06-09 2015-02-17 Microsoft Corporation Scheduling execution of complementary jobs based on resource usage
US9128763B2 (en) * 2011-08-23 2015-09-08 Infosys Limited System and method for job scheduling optimization
CN103092683B (zh) * 2011-11-07 2017-12-26 Sap欧洲公司 用于数据分析的基于启发式的调度
US8880565B2 (en) * 2011-12-23 2014-11-04 Sap Se Table creation for partitioned tables
US8806458B2 (en) * 2012-02-16 2014-08-12 Microsoft Corporation Vectorization of shaders
US9479382B1 (en) * 2012-03-27 2016-10-25 Amazon Technologies, Inc. Execution plan generation and scheduling for network-accessible resources
US20130290972A1 (en) * 2012-04-27 2013-10-31 Ludmila Cherkasova Workload manager for mapreduce environments
US20130326079A1 (en) * 2012-05-31 2013-12-05 Sap Ag Unifying Programming Models in Connectivity Framework
US9104493B2 (en) * 2012-11-06 2015-08-11 Facebook, Inc. System and method for cluster management
US9031925B2 (en) * 2012-12-13 2015-05-12 Sap Se Hadoop access via hadoop interface services based on function conversion
US9239707B2 (en) * 2013-06-28 2016-01-19 Successfactors, Inc. Model framework for applications
US9396031B2 (en) * 2013-09-27 2016-07-19 International Business Machines Corporation Distributed UIMA cluster computing (DUCC) facility
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US20150268963A1 (en) * 2014-03-23 2015-09-24 Technion Research & Development Foundation Ltd. Execution of data-parallel programs on coarse-grained reconfigurable architecture hardware
US9755858B2 (en) * 2014-04-15 2017-09-05 Cisco Technology, Inc. Programmable infrastructure gateway for enabling hybrid cloud services in a network environment
US10148736B1 (en) * 2014-05-19 2018-12-04 Amazon Technologies, Inc. Executing parallel jobs with message passing on compute clusters
US10430169B2 (en) * 2014-05-30 2019-10-01 Apple Inc. Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit
WO2016025080A1 (en) * 2014-06-20 2016-02-18 Atigeo Corp. Cooperative distributed control of target systems
US9405582B2 (en) * 2014-06-20 2016-08-02 International Business Machines Corporation Dynamic parallel distributed job configuration in a shared-resource environment
US9465590B2 (en) * 2014-07-07 2016-10-11 Sap Se Code generation framework for application program interface for model
US9218443B1 (en) * 2014-11-12 2015-12-22 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
US9848041B2 (en) * 2015-05-01 2017-12-19 Amazon Technologies, Inc. Automatic scaling of resource instance groups within compute clusters
CN106202092B (zh) * 2015-05-04 2020-03-06 阿里巴巴集团控股有限公司 数据处理的方法及系统
US11550632B2 (en) 2015-12-24 2023-01-10 Intel Corporation Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550632B2 (en) 2015-12-24 2023-01-10 Intel Corporation Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment
TWI653587B (zh) 2017-09-22 2019-03-11 財團法人資訊工業策進會 基於機台多級別穩態生產速率之派工方法及系統
US10963300B2 (en) 2018-12-06 2021-03-30 Raytheon Company Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems
TWI736001B (zh) * 2018-12-06 2021-08-11 美商雷森公司 用以加速資料流訊號處理之異質cpu/gpu系統和由其實施之加速的資料流訊號處理方法
TWI802056B (zh) * 2020-10-27 2023-05-11 大陸商中國銀聯股份有限公司 資料核對方法、裝置、設備、系統及存儲介質

Also Published As

Publication number Publication date
US20180341526A1 (en) 2018-11-29
WO2017107118A1 (en) 2017-06-29
TWI731897B (zh) 2021-07-01
US11550632B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
US10796397B2 (en) Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices
KR102572583B1 (ko) 멀티 코어 컴퓨팅 아키텍처에서 그래픽 작업부하를 가속화하기 위한 메커니즘
TWI731897B (zh) 促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術
US9916634B2 (en) Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices
US10559112B2 (en) Hybrid mechanism for efficient rendering of graphics images in computing environments
US10565670B2 (en) Graphics processor register renaming mechanism
US10776156B2 (en) Thread priority mechanism
US20170069054A1 (en) Facilitating efficient scheduling of graphics workloads at computing devices
US20170140570A1 (en) Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
US10546411B2 (en) Directed acyclic graph path enumeration with application in multilevel instancing
US20160364827A1 (en) Facilitating configuration of computing engines based on runtime workload measurements 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
WO2017200672A1 (en) Triangle rendering mechanism
TW201810026A (zh) 用於在計算環境中資料之邏輯處理的暫存器檔案之延伸
US9734597B2 (en) Interpolated minimum-maximum compression/decompression for efficient processing of graphics data at computing devices
US9881352B2 (en) Facilitating efficient graphics commands processing for bundled states at computing devices
WO2017112030A1 (en) Clustered color compression for efficient processing of graphics data at computing devices
US9971580B2 (en) Fast access and use of common data values relating to applications in parallel computing environments