TW202107408A - 波槽管理之方法及裝置 - Google Patents

波槽管理之方法及裝置 Download PDF

Info

Publication number
TW202107408A
TW202107408A TW109121928A TW109121928A TW202107408A TW 202107408 A TW202107408 A TW 202107408A TW 109121928 A TW109121928 A TW 109121928A TW 109121928 A TW109121928 A TW 109121928A TW 202107408 A TW202107408 A TW 202107408A
Authority
TW
Taiwan
Prior art keywords
context
slots
wave
queue
information
Prior art date
Application number
TW109121928A
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 TW202107408A publication Critical patent/TW202107408A/zh

Links

Images

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/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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

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

Abstract

本揭示內容關於圖像處理之方法及裝置。在一些態樣中,裝置可判定多個波槽中的每一者中的至少一上下文暫存器之一或多個上下文狀態。裝置亦可將對應於多個波槽中的一者中的上下文狀態的資訊發送至一上下文佇列。另外,裝置可將對應於一或多個上下文狀態的資訊轉換為與上下文佇列相容之上下文資訊。裝置亦可將與上下文佇列相容之上下文資訊儲存於上下文佇列。在一些態樣中,裝置可將與上下文佇列相容之上下文資訊發送至多個波槽的一者。此外,裝置可將與上下文佇列相容之上下文資訊轉換為對應於一或多個上下文狀態的資訊。

Description

波槽管理之方法及裝置
本揭示內容大體上係關於處理系統,更詳細來說,係關於一或多個用於圖像處理之技術。
電腦裝置通常使用圖像處理單元(GPU)以加速用以顯示之圖像資料之提供。此種電腦裝置可例如包含電腦工作站諸如所為智慧型電話之行動電話、嵌式系統、個人電腦、平板電腦、以及視訊遊戲控制台。  GPU執行包含一或多個協同操作以執行圖像處理指令並輸出一圖框之處理級的圖像處理管線。中央處理單元(CPU)可藉由發出一或多個圖像處理指令以控制GPU的操作。現代的CPU通常可同時執行多個應用,其每一者在執行中可能需要使用GPU。在顯示器上提供視覺呈現之內容的裝置通常包含GPU。
通常, 裝置之GPU經組態以執行圖像處理管線中的處理。然而,隨著無線通訊以及越發小巧的手持裝置之進展,已發展出改進的圖像處理之需求。
下文呈現一或多個態樣的簡化的總結,以提供對這種態樣的基本理解。該總結不是所有設想態樣的全面概述,並且意欲既不標識所有態樣的重要或關鍵要素,亦不劃定任何或所有態樣的範疇。該總結的唯一目的是以簡化形式呈現一或多個態樣的一些構思,以作為稍後呈現的更詳細描述的前序。
在本揭示內容的一態樣中,提供了一種方法、一種電腦可讀取儲存媒體,以及一種裝置。裝置可為圖像處理單元 (GPU)。 在一些態樣中,裝置可判定多個波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態。 裝置可將對應於 多個波槽的一者中的至少一上下文暫存器之一或多上下文狀態之資訊 發送至上下文佇列。 此外,裝置可將對應於一或多上下文狀態的資訊轉換為與上下文佇列相容之上下文資訊 。裝置亦可將上下文佇列相容的上下文資訊儲存於上下文佇列中。在一些態樣中,當對應於一或多上下文狀態的資訊被發送至上下文佇列時,裝置可將至少一上下文暫存器之一或多上下文狀態自波槽中的一者中移除。在其它態樣中,裝置可將與上下文佇列相容之上下文資訊轉換為對應於至少一上下文暫存器之一或多上下文狀態之資訊。當對應於一或多上下文狀態的資訊被發送至上下文佇列時,裝置亦可複製對應於一或多上下文狀態的資訊。在一些態樣中,裝置亦可將多個波槽轉換為多個執行槽。此外,裝置可將對應於波槽中的一者的波資料發送至多個執行單元。裝置亦可自多個執行單元之一者接收對應於多個波槽之一者的波資料。
本揭示內容之一或多個例示之細節闡述於附圖級以下說明。本揭示內容之其它特徵、目的及優點由說明、圖式及申請專利範圍中可明顯觀之。
下文及參照附圖更全面地描述系統、裝置、電腦程式產品和方法的各種態樣。然而,本揭示內容可用許多不同形式來實施並且不應解釋為被限定於本揭示內容通篇提供的任何特定結構或功能。確切而言,提供該等態樣是為了使本揭示內容透徹且完整,並且向熟習該項技術者完全傳達本揭示內容的範圍。基於本文中的教示,熟習該項技術者應瞭解,本揭示內容的範圍意欲涵蓋本文中揭示的該等新穎系統、裝置、電腦程式產品和方法的任何態樣,不論其是與本揭示內容的任何其他態樣相獨立或是組合地實施。例如,可以使用本文所闡述的任何數目的態樣來實施裝置或實踐方法。另外,本揭示內容的範圍意欲涵蓋使用除了本文揭示的各個態樣之外的其他結構及功能、或結構或功能來實踐的裝置或方法。。應當理解,本文所揭示的任何態樣可以由請求項的一或多個元件來實施。
儘管本文描述了不同的一些態樣,但該等態樣的眾多變化和置換落於本揭示內容的範圍之內。儘管提到了較佳態樣的一些益處和優點,但本揭示內容的範圍並非意欲被限定於特定益處、用途或目標。確切而言,本揭示內容的各態樣意欲廣泛地適用於不同的無線技術、系統組態、網路和傳輸協定,其中一些藉由實例在附圖和以下對優選態樣的描述中說明。詳細描述和附圖僅僅說明本揭示內容而非限定本揭示內容,本揭示內容的範圍由所附請求項及其相等範圍定義。
若干態樣藉由參考各種設備及方法呈現。藉由各種區塊、組件、電路、程序、演算法等(統稱為「元件」)將此等設備及方法在以下詳細描述中加以描述並在附圖中進行說明。此等元件可使用電子硬體、電腦軟體或其任何組合來予以實施。是否將此類元件實施為硬體或軟體取決於特定應用及加諸於整個系統上之設計約束。
例如,元件或元件之任何部分或元件之任何組合可被實施為包含一或多個處理器(其亦可被稱為處理單元)之「處理系統」。處理器之實例包含微處理器、微控制器、圖像處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、應用程式處理器、數位信號處理器(DSP)、精簡指令集計算(RISC)處理器、系統單晶片(SoC)、基頻處理器、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、可程式化邏輯裝置(PLD)、狀態機、閘控邏輯、離散硬體電路,及經組態以執行本揭示內容描述之各種功能的其他合適硬體。處理系統中之一或多個處理器可執行軟體。軟體可被廣泛地理解為指令、指令集、程式碼、碼段、程序碼、程式、子程式、軟體組件、應用程式、軟體應用程式、套裝軟體、常式、次常式、物件、可執行碼、執行線程、程序、功能等,而不管其被稱作軟體、韌體、中間軟體、微碼、硬體描述語言還是被稱作其他。術語「應用程式」可指軟體。如本文所描述,一或多種技術可指經組態以執行一或多個功能之應用程式(即,軟體)。在此類實例中,應用程式可儲存於記憶體(例如,處理器之晶載記憶體、系統記憶體或任何其他記憶體)上。諸如處理器之本文所描述硬體可經組態以執行應用程式。例如,應用程式可描述為包含程式碼,該程式碼在由硬體執行時致使硬體執行本文中所描述之一或多種技術。例如,硬體可自記憶體存取程式碼,並執行自記憶體存取之程式碼以執行本文中所描述之一或多種技術。在一些實例中,組件在本揭示內容被標識。在此類實例中,組件可為硬體、軟體或其組合。組件可為分離之組件或單個組件之子組件。
因此,在本文中所描述之一或多個實例中,可以硬體、軟體或其任何組合來實施所描述功能。若以軟體實施,則功能可儲存於電腦可讀媒體上或在電腦可讀媒體上編碼為一或多個指令或程式碼。電腦可讀媒體包含電腦儲存媒體。儲存媒體可為可由電腦存取之任何可用媒體。舉例來說(非限於此),此類電腦可讀媒體可包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、光碟儲存器、磁碟儲存器、其他磁性儲存裝置、前述類型之電腦可讀媒體的組合,或可用以儲存呈指令或資料結構形式的可由電腦存取之電腦可執行程式碼的任何其他媒體。
總體而言,本揭示內容描述具有圖像處理管線(pipeline)之一或多個裝置之技術,改進了圖像內容之提供及/或減少了處理單元(亦即任何經組態以執行本文所載之一或多個技術之處理單元,例如GPU)之負載。舉例而言,本揭示內容描述任何應用圖像處理之裝置中的圖像處理技術。其他例示優點描述於本揭示內容之各處。
如本文中所使用,術語「內容」之例項可指圖像內容或顯示內容。在一些實例中,如本文中所使用,術語「圖像內容」可指由圖像處理管線之一或多個程序生成的內容。在一些實例中,如本文中所使用,術語「圖像內容」可指由經組態以執行圖像處理之處理單元生成的內容。在一些實例中,如本文中所使用,術語「圖像內容」可指由圖像處理單元生成之內容。
在一些實例中,如本文中所使用,術語「顯示內容」可指由經組態以執行顯示處理之處理單元生成的內容。在一些實例中,如本文中所使用,術語「顯示內容」可指由顯示處理單元生成之內容。圖像內容可經處理以變成顯示內容。例如,圖像處理單元可將諸如圖框之圖像內容輸出至緩衝器(其可被稱為圖框緩衝器)。顯示處理單元可自緩衝器讀取諸如一或多個圖框之圖像內容,並對其執行一或多個顯示處理技術以生成顯示內容。例如,顯示處理單元可經組態以對一或多個所顯現層執行合成以生成圖框。舉另一實例來說,顯示處理單元可經組態以將兩個或多於兩個層一起合成、融合或以其他方式組合成單個圖框。顯示處理單元可經組態以對圖框執行縮放(例如,按比例將圖框放大或縮小)。在一些實例中,圖框可指層。在其他實例中,圖框可指已一起融合以形成圖框之兩個或多於兩個層(即,圖框包含兩個或多於兩個層,且包含兩個或多於兩個層之圖框可隨後被融合)。
圖1為繪示經組態以實施本發明之一或多種技術之實例內容產生系統100的方塊圖。內容產生系統100包含裝置104。裝置104可包含用於執行在本文中所描述之各種功能的一或多個組件或電路。在一些實例中,裝置104之一或多個組件可為SOC之組件。裝置104可包含經組態以執行本發明之一或多種技術的一或多個組件。在所示之實例中,裝置104可包含處理單元120及系統記憶體124。在一些態樣中,裝置104可包含數個可選組件,例如通信介面126、收發器132、接收器128、傳輸器130、顯示處理器127及一或多個顯示器131。提到顯示器131之處可指一或多個顯示器131。舉例而言,顯示器131可包含單個顯示器或多個顯示器。顯示器131可包含第一顯示器及第二顯示器。第一顯示器可為左眼顯示器,而第二顯示器可為右眼顯示器。在一些實例中,第一及第二顯示器可接收不同圖框,以供於其上呈現。在其他實例中,第一及第二顯示器可接收相同圖框,以供於其上呈現。在另一實例中,圖像處理之結果可能不會顯示於裝置上,例如,第一及第二顯示器可能不會接收任何圖框以供於其上呈現。實際上,圖框或圖像處理結果可傳送至另一裝置。在一些態樣中,此可被稱作分裂顯現。
處理單元120可包含內部記憶體121。處理單元120可經組態以執行圖像處理,諸如在圖像處理管線107中。在一些實例中,裝置104可包含顯示處理器,諸如顯示處理器127,以在藉由一或多個顯示器131呈現之前對藉由處理單元120產生之一或多個圖框執行一或多個顯示處理技術。顯示處理器127可經組態以執行顯示處理。舉例而言,顯示處理器127可經組態對藉由處理單元120產生之一或多個圖框執行一或多個顯示處理技術。一或多個顯示器131可經組態以顯示或以其他方式呈現藉由顯示處理器127處理之圖框。在一些實例中,一或多個顯示器131可包含以下各項中之一或多者:液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、投影顯示裝置、擴增實境顯示裝置、虛擬實境顯示裝置、頭戴式顯示器,或任何其他類型的顯示裝置。
位於處理單元120外部的記憶體,諸如系統記憶體124,可為可存取至處理單元120。舉例而言,處理單元120可經組態以自外部記憶體讀取及/或寫入至外部記憶體,諸如系統記憶體124。處理單元120可經由匯流排以通信方式耦接至系統記憶體124。在一些實例中,處理單元120可經由匯流排或不同連接以通信方式耦接至彼此。
內部記憶體121或系統記憶體124可包含一或多個揮發性或非揮發性記憶體或儲存裝置。在一些實例中,內部記憶體121或系統記憶體124可包含RAM、SRAM、DRAM、可抹除可程式化ROM (EPROM)、電可抹除可程式化ROM (EEPROM)、快閃記憶體、磁性資料媒體或光學儲存媒體,或任何其他類型的記憶體。
內部記憶體121或系統記憶體124可為根據一些實例的非暫態儲存媒體。術語「非暫態」可表示儲存媒體並不以載波或傳播信號體現。然而,術語「非暫態」不應解釋成意謂內部記憶體121或系統記憶體124為非可移動或其內容為靜態。舉例來說,系統記憶體124可自裝置104移除並移動至另一裝置。舉另一個例來說,系統記憶體124可能不可自裝置104拆卸。
處理單元120可為中央處理單元(CPU)、圖像處理單元(GPU)、通用GPU (GPGPU)或可經組態以執行圖像處理之任何其他處理單元。在一些實例中,處理單元120可整合於裝置104之母板中。在一些實例中,處理單元120可存在於安裝在裝置104之母板中之埠中的圖像卡上,或可以其他方式併入經組態以與裝置104交互操作的周邊裝置內。處理單元120可包含一或多個處理器,諸如一或多個微處理器、GPU、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、算術邏輯單元(ALU)、數位信號處理器(DSP)、離散邏輯、軟體、硬體、韌體、其他等效物整合式或離散邏輯電路,或其任何組合。若技術部分實施於軟體中,則處理單元120可將用於軟體之指令儲存於合適的非暫態的電腦可讀的儲存媒體中,例如,內部記憶體121,且可使用一或多個處理器執行硬體中之指令以執行本發明之技術。前述各者(包含硬體、軟體、硬體與軟體之組合等)中之任一者可被視為一或多個處理器。
在一些態樣中,內容產生系統100可包含可選通信介面126。通信介面126可包含接收器128及傳輸器130。接收器128可經組態以執行本文中關於裝置104所描述之任何接收功能。另外,接收器128可經組態以自另一裝置接收資訊,例如,眼睛或頭部位置資訊、顯現命令或位置資訊。傳輸器130可經組態以執行本文中關於裝置104所描述之任何傳輸功能。舉例而言,傳輸器130可經組態以將資訊傳輸至另一裝置,該資訊可包含對內容之請求。接收器128及傳輸器130可組合為收發器132。在此等實例中,收發器132可經組態以執行本文中關於裝置104所描述之任何接收功能及/或傳輸功能。
再次參閱圖1,在某些態樣中,圖像處理管線107可包含經組態以判定複數個波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態之判定組件198。判定組件198亦可經組態以將對應於該複數個波槽的至少一者中的至少一上下文暫存器之該一或多個上下文狀態之資訊發送至上下文佇列。此外,判定組件198可經組態以將對應於該一或多個上下文狀態之該資訊轉換為與該上下文佇列相容之上下文資訊 。判定組件198亦可以經組態以將與該上下文佇列相容之該上下文資訊儲存於該上下文佇列。在一些態樣中,判定組件198亦可以經組態以於對應於該一或多個上下文狀態之該資訊被發送至該上下文佇列時,將至少一上下文暫存器之該一或多個上下文狀態自該複數個波槽中的該者移除。在另外一些態樣中,判定組件198可經組態以將與該上下文佇列相容之該上下文資訊發送至該複數個波槽的一者。此外,判定組件198可經組態以將與該上下文佇列相容之該上下文資訊轉換為對應於該一或多個上下文狀態之該資訊。判定組件198亦可經組態以於對應於該一或多個上下文狀態之該資訊被發送至該上下文佇列時,複製對應於該一或多個上下文狀態之該資訊。在一些態樣中,判定組件198亦可經組態以將該複數個波槽轉換為複數個執行槽。另外,判定組件198亦可經組態以將對應於該複數個波槽的該者的波資料發送至複數個執行單元的一者。判定組件198亦可經組態以自複數個執行單元的一者接收對應於該複數個波槽的該者的波資料。
如本文所描述,諸如裝置104之裝置可指經組態以執行本文中所描述之一或多種技術的任何裝置、設備或系統。例如,裝置可為伺服器、基地台、使用者設備、用戶裝置、台、存取點、電腦(例如,個人電腦、桌上型電腦、膝上型電腦、平板電腦、電腦工作台或大型電腦)、終端產品、設備、電話、智慧型電話、伺服器、視訊遊戲平台或控制台、手持型裝置(例如,攜帶型視訊遊戲裝置或個人數位助理(PDA))、可穿戴計算裝置(例如,智慧型手錶、擴增實境(AR)裝置或虛擬實境(VR)裝置)、非可穿戴裝置(例如,非可穿戴AR裝置或非可穿戴VR裝置)、任何AR裝置、任何VR裝置、顯示器(例如,顯示裝置)、電視、電視機上盒、中間網路裝置、數位媒體播放器、視訊串流裝置、內容串流裝置、車載電腦、任何行動裝置、經組態以生成圖像內容之任何裝置,或經組態以執行本文中所描述之一或多種技術的任何裝置。本文所載流程可描述為由一特定組件(例如一GPU)執行,然而,在其它實施例中,可由其它與所揭露之實施例相符合的組件(例如一CPU)執行。
GPU可於GPU管線中處理多種資料或資料封包。舉例而言,在一些態樣中,GPU可處理二種資料或資料封包,例如,上下文暫存器封包及繪圖呼叫(draw call)資料 。上下文暫存器封包可為一套全域狀態資訊,例如,可調整圖像上下文如何被處理之關於全域暫存器之資訊、著色程式(著色 program)或常數資料(constant data)。舉例而言,上下文暫存器封包可包含關於顏色格式之資訊。在上下文暫存器封包之一些態樣中,可存在指示哪一個工作負載屬於一上下文暫存器之位元。 此外,可存在多個同時運行及/或平行運行之功能或程式。例如,功能或程式可描述特定操作,例如色彩模式或色彩格式。因此,上下文暫存器可定義GPU的多個狀態。
上下文狀態可用以判定個別處理單元如何運作,例如頂點抓取器(vertex fetcher,VFD)、頂點著色器(vertex 著色器,VS)、著色處理器或幾何處理器及/或處理單元運作於何種模式。為達上述,GPU可使用上下文暫存器及程式資料。在一些態樣中, GPU可基於上下文暫存器之模式或狀態之定義於管線內產生一工作負載,例如一頂點或像素工作負載。某些處理單元(例如頂點抓取器)可使用此些狀態去決定某些功能(例如頂點係如何組成)。當此些模式或狀態可以改變, GPU可能需要改變對應之上下文。此外,對應於該模式或狀態之工作負載可追隨該改變之模式或狀態。
圖2依據本揭示內容之一或多技術繪示一示例GPU 200。如圖2所示, GPU 200包含指令處理器 (CP) 210、 繪圖呼叫資料封包212、VFD 220、VS 222、頂點快取記憶體(VPC) 224、三角形設置引擎 (TSE) 226、光柵化器 (RAS) 228、 Z程序引擎(Z process engine,ZPE) 230、像素內插器(PI) 232、片段著色器(fragment shader,FS) 234、 後端渲染器 (RB) 236、 L2快取記憶體 (UCHE) 238以及系統記憶體240。儘管圖2展示GPU 200包含處理單元220-238,GPU 200可包含數種外加處理單元。此外,處理單元220-238僅為例示,根據本揭示內容,任何處理單元之組合或排序可被用於GPU。  GPU 200亦包含指令緩衝器 250、 上下文暫存器封包260以及上下文狀態 261。
如圖2所示,GPU可使用CP(例如CP 210)或硬體加速器去將指令緩衝器解析為上下文暫存器封包(例如上下文暫存器封包260)及/或繪圖呼叫資料(例如繪圖呼叫資料封包212)。CP210可接著將上下文暫存器封包260或繪圖呼叫資料封包212經由不同的路徑發送至處理單元或GPU中的區塊。另外,指令緩衝器 250可使上下文暫存器及繪圖呼叫之不同狀態輪替。例如,指令緩衝器如以下構成:上下文N之上下文暫存器 、上下文N之繪圖呼叫、上下文N+1之上下文暫存器以及上下文N+1之繪圖呼叫。
在一些態樣中,對各個GPU 處理單元或區塊,在任何繪圖呼叫資料可被處理之前,可能需要先備妥上下文暫存器。由於上下文暫存器及繪圖呼叫可經序列化,在下一個繪圖呼叫之前備妥一額外的上下文暫存器可具助益。在一些例子中,可經由GPU資料管線輸入下一個上下文之繪圖呼叫以掩蔽上下文暫存器之程式延遲。另外,當GPU具有多套上下文暫存器,各個處理單元可具有足夠的上下文轉換能力以實現平滑之上下文處理。進而,GPU可掩飾無法預測之記憶體存取延遲及/或延長的管線處理延遲所造成的管線延遲。
圖3展示根據本揭示內容之一或多個技術之例示GPU 300。更詳細來說,圖3展示GPU300中的串流處理器 (SP)系統。如圖3所示,GPU 300包含高階排序器 (HLSQ) 302、 VPC 304、執行序處理器 (TP) 306、UCHE 308、RB 310、及VPC 312。GPU 300亦可包含SP 320、主引擎322、排序器324、本地記憶體326、波排程器(wave scheduler)及上下文暫存器 328、紋理單元 (TEX)或負載控制器330、 指令快取記憶體332、執行單元(EUs)334、一般用途暫存器 (GPR) 336、分配器 338、 常數RAM 340以及分配器342。 波排程器及上下文暫存器 328亦可包含一或多個波槽。
如圖3所示, SP 320可包含傳統的功能單元或區塊(例如EUs 334或排序器324)。EUs 334可執行或處理一些GPU的想要的功能。排序器324可分配資源及本地記憶體,以及儲存本地記憶體。此外,排序器324可分貝波槽及任何相關的GPR 336空間。例如,當HLSQ 302發出一個像素瓦片之工作負載給SP320時,排序器324可分配波槽或GPR 336空間 。在一些態樣中,波排程器328可執行像素著色器或發出指令給EUs 334。EUs 334亦可包含算數邏輯單元 (ALU)及/或初等函數單元(elementary function unit,EFU)。此外, TEX或負載控制器330 可視為執行單元。
此外, TEX或負載控制器330可對應一或多個單元。例如,TEX 330可執行紋理抓取及/或負載控制器330可執行記憶體抓取。在一些態樣中,指令快取記憶體332 可儲存一個工作負載或要執行的程式。此外,常數RAM 340可儲存常數或均勻結構所需要的常數。如圖3所進一步展示,SP 320可與外部區塊(例如HLSQ 302、VPC 304、TP 306、UCHE 308、RB 310及VPC 312)互接。此些區塊302-312可使用使用者提供的輸入及/或SP可輸出結果至此些區塊或記憶體存取。
如圖3所示,GPU 300中的每一個單元或區塊可發送資料或資訊至其他區塊。例如,HLSQ 302可發送指令至主引擎322。此外,HLSQ 302可發送頂點執行緒、頂點屬性、像素執行緒及/或像素屬性至排序器324。VPC 304可發送某些係數至本地記憶體326。TP 306可發送紋理資料至TEX 330。TP 306亦可(例如經由分配器342)自TEX 330接收紋理請求,並旁路來自本地記憶體326之請求。此外, TP 306可發送請求至UCHE 308,以及自UCHE 308接收紋理元素。UCHE 308亦可發送記憶體至TEX 330並自TEX 330接收記憶體,以及發送記憶體至RB 310並自RB 310接收記憶體。此外,RB 310可(例如經由分配器338)自 GPR 336接收顏色形式之輸出。VPC 312亦可(例如經由分配器338) 自 GPR 336接收頂點形式之輸出。GPR 336亦可發送暫時資料至EUs 334以及自EUs 334接收暫時資料。另外, EUs 334可發送位址或述詞資訊至波排程器328,以及自常數RAM 340接收常數資料。TEX或負載控制器330亦可將負載資料或儲存資料發送至GPR 336、自GPR 336接收負載資料或儲存資料、發送儲存資料至本地記憶體326及自本地記憶體接收負載資料。另外,TEX或負載控制器330可發送全域資料至常數RAM 340以及上傳資訊至指令快取記憶體332。TEX或負載控制器330亦可自排序器324接收屬性資料及自波排程器328接收同步資訊。此外,波排程器328可自指令快取記憶體332接收解碼資訊以及自排序器324接收執行緒資料。
如上所述,GPU 300可處理工作負載(例如像素或頂點工作負載)。在一些態樣中,此些工作負載可對應於或被指涉為波或波結構。例如,每一個工作負載或操作可使用一組頂點或像素作為波。例如,每一個波可包含數個不同組件(例如64或128個組件)以執行工作負載或操作。在一些例示中,GPU 300可發送波結構(例如像素或頂點工作負載)至波排程器328以執行。對於頂點工作負載, GPU可執行頂點轉換。對於像素工作負載,GPU可執行像素著色或光照。
如上所述,每一個前述處理或工作負載(例如SP 320中的處理或工作負載)可包含一波結構。例如,在頂點工作負載當中,數個頂點(例如3個頂點)可形成一三角形或基元。GPU可接著執行此些頂點之轉換使該些頂點可轉換為一個波。為了執行此轉換, GPU可使用數個波槽(例如,以助將該些頂點轉換為一個波)。另外,為了執行工作負載或程式, GPU亦可分配GPR空間(例如,包含用以儲存任何臨時資料之臨時暫存器)。此外,排序器324可分配GPR 336空間及一或多個波槽以執行一波。例如, 當像素或頂點工作負載被發出時,GPR 336空間及一或多個波槽可被分配。
在一些態樣中,波排程器328可處理像素工作負載及/或發出指令至各種執行單元(例如EUs 334)。波排程器328 亦可幫助確保指令之間的資料相依性(例如歸因於管線延遲之ALU運算元之間的資料相依性及/或歸因於同步機制之紋理樣本轉回之資料相依性) 。此外,波排程器328可具有附載參考計數器 (LRC)以計數發至TP306或UCHE 308之未處理紋理或記憶體請求 ,以及對應之資料轉回請求。在一些態樣中,如果LRC值大於0,可表示存在未處理資料。如此,直到LRC值減至0之前,相依於未處理資料之轉回之指令不能被執行。
如上所述, 在處理各種指令時,GPU可經歷記憶體或管線延遲。在一些態樣中,延遲可依據發生於SP之內或之外的資料相依性而被分類。例如,發生於SP之內的資料相依性(亦即SP內部資料相依性)可為ALU之間或一EFU與一ALU之間的資料相依性。與其它記憶體延遲相較,此種延遲可為相對較短(例如,少於20個處理週期)。此外,發生於SP之外的資料相依性(亦即SP外部資料相依性)可為基於紋理樣本或記憶體轉回資料之資料相依性。與其它記憶體延遲相較,此種延遲可為相對較長(例如大於200個處理週期)。由於SP內部資料相依性較其它記憶體延遲短,它可為內部資料延遲的原因並/或可使用少數波槽(例如4至6個波槽)賦能高效率平行EU執行。然而,對較長的SP外部資料延遲,因為延遲可為較大,波槽之數量需要減少(例如24至32個波槽)。
在一些態樣中,當一波指令被發出時,GPU可經歷記憶體或管線延遲。為因應此延遲,GPU可發出更多指令(例如紋理樣本指令)以確保管線被徹底利用。此外,一組像素之處理時間可相依於通量。例如,一組像素可花上數個週期(例如32個週期)去處理。在一些例示中,記憶體延遲可大於此週期量(例如,高至100個週期)。如此,資料可能在甚至更多的週期(例如200個週期後)後自處理中轉回。因此,處理一組像素(例如128個像素)可能不足以蓋過管線延遲。另外,處理更多像素瓦片以及更多紋理樣本指令之SP能力可被波槽之數量及/或GPR大小限制。例如,如果有一波槽,在處理下一個波之前,GPU可能需要等待資料在系統中處理並循環過。在一些態樣中,GPU可接受新像素去形成另一個波,但GPU可能需要因為延遲而等待裝入管線。
為了因應被增加的管線延遲,本揭示內容的一些態樣可增加波槽之數量。例如,為使波於同一時間被處理(例如被平行處理),本揭示內容之一些態樣可能需要某些數量之波槽(例如4、7或16個波槽)。當增加波槽時,本揭示內容之一些態樣可能還需要另外的GPR空間以因應處理完成時間。因此,波槽之數量及GPR空間可為允許同時處理更多波的重要資源(例如,為因應管線延遲)。所以本揭示內容之一些態樣可使用增量之波槽以允許波被同時處理或平行處理。
為了增加系統之波處理能力或掩蓋管線延遲之能力,GPU可能包含增量之波槽。然而,增加波槽數量及/或GPR大小之一問題為兩資源皆昂貴。例如, GPU可能需要資訊(例如像素數量)或指令以於一波槽執行一波,使得每一個增加的波槽提升系統操作成本。另外,波槽可登錄波執行狀態之資訊,以使系統可繼續波處理,此亦可增加操作成本。另外,為增加波槽數量,GPU可能需要增加波槽的對應儲存空間。例如,為使波槽能力倍增,GPU可能需要使儲存大小倍增。如此,增加波槽數量可增加操作成本及所需的儲存空間量。
圖4根據本揭示內容之一或多個技術展示一例示GPU 400。更具體而言,圖4展示400中的SP410中的組件或單元。如圖4所示, GPU 400包含數個執行單元(例如流控制分支(flow control branch)412、EFU 414、ALU 416、TEX 418及載入儲存 (LDST) 420)。GPU 400可包含數個額外執行單元,執行單元412-420僅為例示,任何執行單元之組合或順序皆可為此處GPU所用。GPU 400亦可包含資料交叉開關430(其亦可稱為多執行緒管理器430)以及第0階(L0)快取記憶體440。另外, GPU 400包含數個波槽(例如波槽450-459)。為簡便說明,波槽452-457未示出於圖4中。GPU 400可包含任何數量之不同波槽,波槽450-459僅為一例示。在一些態樣中,波槽450-459可為一波排程器之部分。
如圖4所示,GPU 400中的每一個組件可與數個其它組件通訊。例如,執行單元412-420之每一者可發送資料或指令(例如請求或允許)至資料交叉開關430或自資料交叉開關430接收資料或指令。此外,波槽450-459之每一者可發送資料或指令(例如請求或允許)至 資料交叉開關430或自資料交叉開關430接收資料或指令。此外,資料交叉開關430可儲存資料於L0快取記憶體440中,或自L0快取記憶體440接收資料。執行單元412-420之每一者(例如流控制分支412、EFU 414、ALU 416、TEX 418及LDST 420)亦可發送資料或指令至波槽450-459或自波槽450-459接收資料或指令。在一些態樣中,波槽450-459之每一者可同時發出指令至執行單元412-420之每一者。
圖4展示GPU 400包含10個波槽450-459。在一些態樣中,因為波槽450-459之每一者可不顧慮其他波槽而以單獨的方式執行指令,波槽450-459 可被稱為平波槽。當單一波指令被通過系統處理,對應之波槽可等待該波指令轉回 (亦即波槽可處於待機模式)。此外,用於波槽邏輯中的上下文暫存器可控制波執行,並且係為flop構型(flop-based),例如賦能波槽之間的轉換,以存取不同EU。 如此,上下文暫存器可能需要頻繁更新。此外,如前所論及,增加波槽數量可為昂貴。
在一些態樣中,可利用於波槽及執行單元之間具有增進之定標能力之交叉開關來增加波槽數量,其可造成一些問題(例如設計中的時脈速度降低及/或導線壅塞)。如,在GPU 400中,資料交叉開關430可能需要 增進之定標能力以增加波槽450-459之數量。其可導致更大的資料交叉開關430及導線壅塞或時脈速度降低。例如, GPU 400包含10個波槽450-459及5個執行單元412-420,所以資料交叉開關430幫助轉換及管理10比5之波槽對執行單元比值。因此,資料交叉開關430可轉換10個波槽 指令成5個執行單元。所以資料交叉開關430可為每一個執行單元定標二波指令。為使波槽450-459之數量倍增(例如從10個增至20個波槽),資料交叉開關430可能需要被調整以存取及管理執行單元412-420。因此如果波槽之數量被增至20,資料交叉開關430可能需要被調整以轉換20個波槽指令為5個執行單元。然而,如上所述,調整交叉開關可導致一些利用上的問題(例如導線壅塞以及時脈速度降低)。確實,執行單元周圍的空間可能有限,所以可能不存在足夠空間給增量之導線。例如,如果波槽之數量被倍增,導線之數量一可能倍增,但空間大小維持原樣,故GPU可能經歷導線壅塞問題。因此,存在不經歷前述問題而增加波槽能力之需求。
如上所述,在一些態樣中,一些波槽可能並不活躍發出波指令。例如,在10個波槽中可能存在4至6個波槽正等待要處理的外來波資料(例如,在發出一資料抓取指令後)。此些波槽可能並不正在執行指令亦不正在上傳上下文暫存器(例如,此些波槽在待機模式之中)。因為此些待機波槽可能不需要上傳至對應上下文暫存器,可能可以用另一種形式之記憶體去儲存在待機模式中之波槽之上下文暫存器資訊。一種可能在波槽中比flopped構型儲存器更便宜之記憶體形式係為RAM記憶體。例如,flopped構型記憶體儲存可能是三倍貴於RAM構型記憶體。因此,如本文所述之上下文暫佇列可被儲存於較flopped構型記憶體便宜之RAM記憶體。
如上所述,增加波槽數量可減輕記憶體或管線延遲問題。例如,當延遲問題增加,用以因應延遲之資料或指令之數量可隨之增加。為增加波處理能力或掩蓋管線延遲之能力,波槽之數量亦可增加。在一些態樣中,當一波槽發出一指令,其可等待該指令被處理(例如保持在待機模式中)。前述延遲問題可能造成波槽更甚平常地在待機模式中等待。由於波槽係為珍貴資源,波槽處於待機模式中等待轉回資料可為一資源之浪費。在一些態樣中,波槽更可能閒置或大部份時間皆處於待機模式中。因此,此可能並非一種實施波槽資源之有效率的方式。
為解決前述波槽問題,本揭示內容之一些態樣可自原本會處於待機模式之波槽拿取資訊(例如上下文資訊)並將其儲存於資料或上下文佇列及/或RAM構型儲存器。藉由如此操作,閒置的波槽可在等待要處理的先前的波資料時被用於執行另一波指令。當波資料被處理並轉回波槽,對應波資料之上下文資訊資料可被發送至波槽中之一者。此外,在一些態樣中,作為使用平波槽(例如可能在待機模式中不必要地儲存資料)之替代,本揭示內容之一些態樣可使用一種可稱為執行槽之波槽,其可於等待波資訊被處理時發送上下文資訊至資料或上下文佇列。在一些態樣中,執行槽係為一種可於一先前被執行之波資訊正在被處理時執行其它波指令之波槽 。因此,在一些態樣中,相較於典型的波槽,執行槽可允許GPU執行更多波指令。藉由利用執行槽,相較於傳統波槽,本揭示內容之一些態樣可利用減小數量之執行槽以執行相近數量之波指令。此外,本揭示內容之一些態樣可建立階層式波槽結構(例如使用執行槽及資料或上下文佇列以儲存用於正被處理之波資料之上下文資訊)。在一些態樣中,此些波槽可被稱為執行槽、執行波槽、執行構型(execution-based) 波槽或任何相似之用語。例如,本揭示內容之一些態樣可較波槽使用減量之執行槽而以同等之效率水準執行。藉由利用執行槽,本揭示內容之一些態樣可使用減量之波槽(例如6個執行槽,與10個波槽相較),而維持同樣的效率水準。此外,本揭示內容之一些態樣可包含RAM構型資料或上下文佇列以儲存用於先前執行了波指令之波槽之上下文資訊。本揭示內容之一些態樣可採用階層式波佇列,使得不然會閒置之波槽可被用以執行自處理中轉回之波資料。進而,其可為一增加波槽能力以因應延遲問題之有效率之方式。
在一些態樣中,當本文之處理單元(例如GPU)執行已完成處理之波指令,本揭示內容之一些態樣可發送對應於儲存於上下文佇列中之波指令之上下文資訊至波槽或執行槽之一者。藉由如此操作,波槽或執行槽可以對應之上下文資訊執行波指令。在執行此波指令之後(例如,給一三角形或基元產生座標或頂點),本揭示內容之一些態樣可自上下文佇列發送用於下一波指令之上下文資訊至波槽之一者。此外,藉由利用減量之波槽或執行槽(例如6個執行槽,與10個波槽相較),本揭示內容之一些態樣同時仍可具有足夠之波槽去掩蓋多至6個執行單元之指令,其足以掩蓋圖4所展示之5個執行單元。在一些態樣中,可能存在至少與執行單元相同數量之波槽。此外,基於閒置波槽被用以執行正到來的波指令之階層式波結構,波槽或執行槽可不於發送相對應之波指令去循環通過系統之後的許多週期內保持不活躍。因此,本揭示內容之一些態樣可利用減量之波槽或執行槽,並相對應地減少被浪費的波槽資源量(例如由於較少波槽會在等待要被處理的波指令)。如此,本揭示內容之一些態樣可分隔或掩蓋一組單獨運作的波槽成為一更具效率之階層構型之波槽組。
在一些例示中,本揭示內容之一些態樣可保持先前之平構型(flat-based)波槽之既有的實施及功能,但當波槽不然會處於待機模式等待對應之波指令被處理,該波槽可變為可用於執行其它波指令。如此,波槽可為了對應任何正到來的波指令之上下文資訊而存取上下文佇列。藉由如此操作,本揭示內容之一些態樣可優化波槽之性能。如前所述,上下文佇列可利用RAM構型記憶體來儲存波槽的上下文資訊。在一些態樣中,上下文佇列可指定一些種類的RAM構型記憶體給上下文佇列中的某些埠或槽。
在一些態樣中,當一對應之波指令正在被處理,波槽或執行槽可複製對應之上下文暫存器資訊至上下文佇列中之RAM構型記憶體。波槽亦可暫時地交出其能力來執行對應之波指令,並獲得執行另一波指令之能力。藉由如此操作,在等待對應之波指令被處理(例如在一執行單元)時,波槽將不被占據。在此意義上,由於其可執行另一波指令,波槽不再處於待機狀態。因此,本揭示內容之一些態樣可複製或轉換與一特定波指令相關的上下文暫存器資訊為資料或上下文佇列,並於波槽原本會等待波指令被處理的期間將波槽釋放給其他波執行。另外,當波指令自處理中轉回,本揭示內容之一些態樣可自上下文佇列複製上下文資料至波槽或執行槽之一者以繼續執行波指令。
如上所指示,本揭示內容之一些態樣可使用階層構型資料存取程序來複製及/或儲存上下文資訊至上下文佇列(例如使用RAM構型記憶體儲存)。本文之GPU亦可優化原本會處於閒置或待機狀態之波槽之執行能力。另外,本揭示內容之一些態樣可使用減量之波槽或執行槽而仍優化或保持此些波槽或執行槽之相同之執行能力。在一些態樣中,本揭示內容之一些態樣可利用減量之波槽(例如6個執行槽,與10個波槽相較)及/或利用更具效率之波槽或執行槽而同時保持相同水準之效率。因此,波槽可執行更多波資料且不再處於閒置狀態等待波資料被處理。例如,如果波槽不正在被用以執行資料,本揭示內容之一些態樣可儲存該波槽之上下文暫存器資訊於上下文佇列中。在一些例示中,用於每一個正在等待被執行之波指令之上下文資訊可被儲存於上下文佇列。
如本文所指示,本揭示內容之一些態樣可轉換波槽為波槽階層。此外,本揭示內容之一些態樣可將波槽分隔為不同階級之階層。例如,階層之第一階可為波槽,每一個波槽可與其他波槽平行地或同時地被存取。階層之第二階可為上下文佇列,其可追蹤正被(例如,被執行單元)執行的波指令。當資料或波指令序列地被處理並循環回來,上下文佇列中所儲存的上下文資訊可被複製並發送至波槽或執行槽。
如上所指示,波階層可優化波槽之執行能力,使得每一個波槽的閒置或待機時間被最小化。本揭示內容之一些態樣可允許波槽對執行單元之比值之減小。(例如從10比5至6比5)。本揭示內容之一些態樣亦可採用一資料交叉開關於上下文資訊之自波槽至上下文佇列之轉移或轉換。在一些態樣中,由於上下文資訊之自波槽至上下文佇列之轉換並不具有高通量,此資料交叉開關之大小與其他資料交叉開關相較可以不非常大。此外,由於波槽之數量可被減少,此波階層可減少其它資料交叉開關之大小。
如本文所指示,前述波階層可自波槽發送上下文資訊至上下文佇列、儲存上下文資訊於上下文佇列,及當上下文資訊準備好被執行時,發送上下文資訊回到波槽。因此,在一些態樣中,其可為波資料之先進先出 (FIFO)階層。就由形成此波階層,本揭示內容之一些態樣可解決前述壅塞問題。例如,本揭示內容之一些態樣可增加每一個波槽之能力,所以每一個波槽可執行更多波指令並更好地因應任何延遲問題。另外,本揭示內容之一些態樣可允許波槽及執行單元之波指令比值之降低,而仍保持相同數量之功能或執行能力。
圖5A及5B展示依據本揭示內容之一或多個技術之一例示GPU 500。更詳細而言,圖5A及5B展示GPU 500內之SP 510內之組件或單元。如圖5A及5B所示,GPU 500包含數個執行單元(例如流控制分支512、 EFU 514、ALU 516、TEX 518及LDST 520)。由於執行單元512-520僅為例示,並且任何執行單元之組合或排序可被處理單元使用(例如本文之GPU)  ,GPU 500 亦可包含數個額外的執行單元。GPU 500亦可包含資料交叉開關530(其亦可被稱為多執行緒管理器530)以及L0快取記憶體540。另外, GPU 500包含數個波槽(例如波槽550-555)。由於波槽550-555僅為例示,GPU 500可包含任何數量之不同波槽。此外,波槽550-555可為波排程器之部分。
如圖5B所示, GPU 500亦可包含資料交叉開關560及上下文佇列 570,其可包含上下文佇列槽571-586。圖5B可為圖5A 之從延伸點A展示之延伸。例如,圖5A中之GPU 500與 圖5B中之GPU 500係同一者,圖5B為一更加詳細之GPU 500之虛線部分之近觀。圖5B為便於說明而展示波槽550-555周圍之細節(亦即資料交叉開關560及包含上下文佇列槽571-586之上下文佇列 570 )。
如圖5A及5B所示,GPU 500中的每一個組件可與數個其它組件通信。例如,執行單元512-520之每一者可發送資料或指令(例如請求或允許)至資料交叉開關530及自資料交叉開關530接收資料或指令。另外,波槽550-555 之每一者可發送資料或指令(例如請求或允許)至資料交叉開關530及自資料交叉開關530接收資料或指令。此外,資料交叉開關530儲存資料於 L0 快取記憶體 540或自L0 快取記憶體540接收資料。執行單元512-520之每一者(例如流控制分支512、 EFU 514、ALU 516、TEX 518及LDST 520)亦可發送資料或指令至波槽550-555或自波槽550-555接收資料或指令。在一些態樣中,波槽550-555之每一者可同時發出至執行單元512-520之每一者。此外,波槽550-555之每一者可發送 資料或指令(例如請求或允許)至資料交叉開關560及自資料交叉開關560接收資料或指令。另外,資料交叉開關560可發送資料或指令(例如請求或允許)至上下文佇列 570及自上下文佇列 570接收資料或指令。波槽550-555之每一者亦可發送資料或指令(例如請求或允許)至上下文佇列 570及自上下文佇列 570接收資料或指令。
圖5A及5B展示GPU 500 包含6個波槽(例如波槽550-555)。 在一些態樣中,波槽550-555可被稱為執行槽550-555。如上所述,波槽550-555的每一者可透過波槽組而在階層式的基礎上執行波指令。例如,當單一波指令在系統中處理通過,對應波槽可不需要等待該特定波指令自處理(例如在執行單元512-520之一者)中轉回。不同於閒置或處於待機模式等待一波指令自處理中轉回,波槽550-555的每一者可執行另一個波指令。
此外,當單一波指令在系統中處理通過(例如在執行單元512-520的一者),相對應之波槽(例如波槽550-555的一者)的上下文資訊可被發送至上下文佇列 570(例如經由資料交叉開關560)。此上下文資訊可被儲存於上下文佇列 570(例如在上下文佇列槽571-586的一者中)。當相對應的波指令完成處理(例如在執行單元512-520之一者),該上下文資訊可自上下文佇列 570被發送(例如經由資料交叉開關560)至波槽550-555的一者來被執行。資料交叉開關560可將自波槽550-555的一者被發送至上下文佇列 570的該上下文資訊轉換為與上下文佇列 570相容之上下文資訊。類似地,資料交叉開關560可將被發送至波槽550-555之與上下文佇列 570相容之上下文資訊 轉換為與波槽550-555相容之上下文資訊 。
如本文所述,本揭示內容之一些態樣可以波階層結構(例如執行槽550-555、資料交叉開關560及上下文佇列 570)取代平構型波槽。為達成如此,本揭示內容之一些態樣可複製及/或發送用於特定執行槽550-555之上下文暫存器資訊至上下文佇列 570。例如,當一相對應之波指令被發送至一執行單元以被執行時,執行槽 550可具有一特定上下文值。GPU 500可複製並發送該上下文值至上下文佇列 570,然後,當波指令完成執行,複製並發送該上下文值回到執行槽550-555的一者。由於執行槽550-555的任一者皆可使用該上下文資訊執行該波指令,該上下文值不需要被發送回到執行槽 550。由於執行槽550-555的任一者皆可使用上下文資訊執行波指令,可在保持相同的效率水平的同時,使用減量之波槽(例如使用6個執行槽,相較於10個波槽)。
本揭示內容之一些態樣可執行數個波指令(例如ALU指令)。例如,ALU指令可通過數個處理步驟:1)解譯;2) 紋理採樣預處理;3) 等待紋理採樣自處理中轉回;4)後處理。一些例示性的使用平構型波槽的等待時間為:紋理採樣預處理=10個週期;等待紋理採樣自處理中轉回200個週期;後處理=10個週期。因此,使用平構型波槽下,一個波槽 在220個週期中可等待200個週期並處理20個週期。藉由使用本文所述之搭配階層式波結構之執行槽,上下文資訊可被儲存於上下文佇列中。進而,可開放執行槽去處理另一個波指令並於不然會被浪費的200個週期中改進執行槽之利用。因此,由於波槽不再浪費時間等待,本文的波槽可處理增量的波指令(例如10倍多的波指令)。確實,因為本揭示內容之波槽更具效率,本揭示內容之一些態樣可以較少的波槽而同樣具有效率地操作(例如,使用本文技術的GPU可以6個波槽操作得與10個波槽之GPU同樣具有效率)。
本揭示內容之一些態樣可包含較執行單元更多或一樣多的數個波槽執行單元,為裝填或利用執行單元的每一者,在一些態樣中,只要最忙碌的執行單元(例如ALU 516或TEX 518)大體上被裝填或被利用,本文的處理單元(例如GPU)可具有少於執行單元之波槽。然而,本文的一些處理單元(例如GPUs)可具有至少與執行單元一樣多的波槽,以優化執行單元之利用。
如圖5A及5B所示,GPU 500可判定波槽550-555中的至少一上下文暫存器之一或多個上下文狀態。GPU 500可發送對應於波槽550-555的一者的資料(例如對應於波槽 550之波資料或指令591) 至執行單元512-520之一者(例如ALU 516。GPU 500亦可發送對應於波槽的一者中的一或多上下文狀態的資訊(例如對應於波槽 550的上下文狀態或資訊592)至上下文佇列 570。在一些態樣中,當對應於波槽的一者的波資料(例如對應於波槽550之波資料或指令591)被發送至執行單元的一者(例如ALU516)時,對應於一或多上下文狀態的資訊(例如上下文狀態或資訊 592)可被發送至上下文佇列 570。此外,波資料或指令591可被資料交叉開關530轉換,故其可被指代為資料或指令598。
GPU 500 亦可複製對應於波槽的一者中的一或多上下文狀態的資訊(當對應於一或多上下文狀態的資訊(例如上下文狀態或資訊592)被發送至上下文佇列 570時)。當對應於一或多上下文狀態的資訊(例如上下文狀態或資訊592)被發送至上下文佇列 570時,GPU 500 亦可自波槽的一者中移除一或多上下文狀態。此外,GPU 500可將對應於波槽的一者中的一或多上下文狀態的資訊(例如上下文狀態或資訊 592)轉換為與上下文佇列 570相容之上下文資訊 (例如上下文狀態或資訊 593)。GPU 500亦可將與上下文佇列 570相容之上下文資訊(例如上下文狀態或資訊 593)儲存於上下文佇列 570中。
GPU 500 亦可自執行單元的一者(例如ALU516)接收對應於波槽之一者的資料(例如波資料 591)。在一些態樣中,當對應於波槽的一者的波資料(例如波資料 591)自執行單元之一者(例如ALU516)被接收時,與上下文佇列 570相容之上下文資訊(例如上下文狀態或資訊 593)可被發送至波槽的一者。GPU 500 亦可將與上下文佇列 570相容之上下文資訊(例如上下文狀態或資訊 593)發送至波槽之一者(例如波槽 553)。當發送資訊至波槽 553時,GPU 500亦可將與上下文佇列 570相容之上下文資訊(例如上下文狀態或資訊 593轉換為對應於一或多上下文狀態(例如上下文狀態或資訊 592)之資訊。
在一些例示中,波槽550-555可為執行槽550-555。GPU 500亦可以執行槽取代波槽550-555及/或將波槽550-555轉換為執行槽。在一些態樣中,將波槽轉換為執行槽可導致一特定波槽能夠執行數個波指令(例如,在前一指令被執行後)。另外,執行槽550-555之數量可少於或等於波槽550-555之數量。在另外一些態樣中,對應於波槽之一者中的一或多上下文狀態資訊(例如上下文狀態或資訊 592)可被使用資料交叉開關560轉換。GPU 500亦可將對應於至少一上下文暫存器的一或多上下文狀態的資訊儲存於數個波槽之一者(例如波槽550-555)中。此外,述個波槽可在GPU的圖像處理管線中。在一些態樣中,波槽及執行單元可在SP(例如SP 510)中。另外,在一些態樣中波槽550-555之數量可大於或等於執行單元512-520之數量。
如圖 5A及圖5B所展示,本揭示內容之一些態樣可包含上下文佇列 570 以儲存波槽550-555之上下文資訊 。例如,上下文佇列 570可包含16個上下文佇列槽571-586。然而,上下文佇列槽之數量可擴增以包含其他數量(例如32個上下文佇列槽)。在一些態樣中,如果波槽550-555具有正被處理的待定(pending)波資料,其可發出一請求以取得上下文暫存器的每一者可包含的具有一波識別符(ID)之執行槽。此外, 授與執行槽時,排程器可在一些週期內自上下文佇列 570複製活動中的或頻繁變化的上下文暫存器給被授與的執行槽、抓取波指令,接著,開始執行指令。此外,如果波或執行槽在等待狀態中,其可於一些週期內複製活動中的上下文暫存器資訊至上下文佇列 570,並交出其執行槽。在一些態樣中,如果波輸入資料及/或輸出結果被認為在一等待狀態中,其 可不占用波槽或執行槽。另外,上下文佇列 570可包含一寬廣的頻寬以因應延遲問題。例如,延遲可發生於波指令在執行槽及上下文佇列之間轉換時。
如本文所述,本揭示內容之一些態樣可優化波指令之執行及/或上下文儲存。例如,本揭示內容之一些態樣可減少GPU中的空間的量(例如,在SP 510中)及/或減少記憶體性能之成本。如上所述,本揭示內容之一些態樣可包含資料交叉開關以助自執行槽轉換資料至上下文佇列。因此,資料交叉開關可被視為將上下文資料自波槽轉換至上下文佇列之資料轉換列(data conversion bar)。如上所述,當波槽正在等待波指令自處理中轉回,本揭示內容之一些態樣可儲存並複製上下文資訊至上下文佇列。此可提供一有效率之增加波槽能力之方式以更好地因應延遲並導致改善的性能。此外,此可降低波槽及執行單元之間的資料交叉開關大小,其可減輕GPU之壅塞及/或時脈速度降低。
圖6展示根據本揭示內容之一或多技術之例示流程圖600。此方法可由GPU 或圖像處理裝置執行。在步驟602中,裝置可判定多個波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟604中,裝置可將對應於複數個波槽的一者的波資料發送至複數個執行單元的一者,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟606中,裝置可將對應於 多個波槽的一者中的至少一上下文暫存器之一或多上下文狀態之資訊 發送至上下文佇列,如同圖3、圖4、圖5A及圖5B之例示中所描述。在一些態樣中,當對應於多個波槽之一者之波資料被發送至執行單元之一者時,對應於至少一上下文暫存器之一或多上下文狀態之資訊可被發送至上下文佇列如同圖3、圖4、圖5A及圖5B之例示中所描述。
在步驟608中,當對應於一或多上下文狀態的資訊被發送至上下文佇列時,裝置可複製對應於波槽中的一者中的至少一上下文暫存器的一或多上下文狀態的資訊 ,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟610中,當對應於一或多上下文狀態的資訊被發送至上下文佇列時,裝置可將至少一上下文暫存器之一或多上下文狀態自波槽中的一者中移除,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟612中,裝置可將對應於波槽中的一者中的至少一上下文暫存器的一或多上下文狀態的資訊轉換為與上下文佇列相容之上下文資訊 ,如同圖3、圖4、圖5A及圖5B之例示中所描述。仔度驟614中,裝置可將與上下文佇列相容的上下文資訊儲存於上下文佇列中,如同圖3、圖4、圖5A及圖5B之例示中所描述。
在步驟616中,裝置可自執行單元之一者接收對應於波槽之一者的波資料,如同圖3、圖4、圖5A及圖5B之例示中所描述。在一些態樣中,當對應於波槽之一者之波資料自執行單元之一者被接收,與上下文佇列相容之上下文資訊可被發送至波槽之一者,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟618中,裝置可將與上下文佇列相容之上下文資訊發送至波槽之一者,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟620中,裝置可將與上下文佇列相容之上下文資訊 轉換為對應於至少一上下文暫存器之一或多上下文狀態之資訊 ,如同圖3、圖4、圖5A及圖5B之例示中所描述。在步驟622中,裝置可將對應於至少一上下文暫存器的一或多上下文狀態的資訊儲存於波槽之一者中,如同圖3、圖4、圖5A及圖5B之例示中所描述。
在一些態樣中, 裝置可以多個執行槽取代多個波槽及/或將多個波槽轉換為多個執行槽,如同圖3、圖4、圖5A及圖5B之例示中所描述。如上所述,將波槽轉換為執行槽可導致特定波槽在前一被執行的波指令正被處理時可執行多個波指令。另外,執行槽之數量可少於或等於波槽之數量,如同圖3、圖4、圖5A及圖5B之例示中所描述。在另一些態樣中,對應於波槽之一者中的至少一上下文暫存器的 一或多上下文狀態的資訊可被用一資料交叉開關轉換,如同圖3、圖4、圖5A及圖5B之例示中所描述。此外,多個波槽可在GPU的圖像處理管線中,如同圖3、圖4、圖5A及圖5B之例示中所描述。在一些態樣中,波槽及執行單元可在一串流處理器(SP)中,如同圖3、圖4、圖5A及圖5B之例示中所描述。此外, 在一些態樣中, 波槽之數量可大於或等於執行單元之數量,如同圖3、圖4、圖5A及圖5B之例示中所描述。
在一組態中,提供一種圖像處理的方法或裝置。裝置可為一GPU 或其他一些可執行圖像處理之處理器。在一態樣中,裝置可為裝置104中的處理單元120,或可為裝置104或另一裝置中的一些其他硬體。裝置可包含判定多個波槽中的每一者中的至少一上下文暫存器的一或多上下文狀態之元件。裝置亦可包含將對應於波槽之一者中的至少一上下文暫存器的一或多上下文狀態的資訊發送至上下文佇列之元件。此外,裝置可包含將對應於至少一上下文暫存器之一或多上下文狀態轉換為與上下文佇列相容之上下文資訊之元件。裝置亦可包含將與上下文佇列相容之上下文資訊儲存於上下文佇列中的元件。此外,裝置可包含當對應於一或多上下文狀態之資訊被發送至上下文佇列時,自波槽之一者移除至少一上下文暫存器之一或多上下文狀態的元件。裝置亦可包含將與上下文佇列相容之上下文資訊發送至波槽之一者的元件。  裝置亦可包含將與上下文佇列相容之上下文資訊轉換為對應於至少一上下文暫存器之一或多上下文狀態的資訊的元件。裝置亦可包含對應於至少一上下文暫存器的一或多上下文狀態的資訊儲存於波槽之一者中的元件。另外,裝置可包含當對應於一或多上下文狀態的資訊被發送至上下文佇列時,複製對應於波槽之一者中的至少一上下文暫存器的一或多上下文狀態的資訊的裝置。此外,裝置可包含將對應於波槽之一者之波資料發送至多個執行單元之一者之元件。裝置亦可包含自執行單元之一者接收對應於波槽之一者之波資料之元件。
本文所描述之標的可被用以實施一或多益處或優點。例如,所描述的圖像處理技術可被GPU或其他圖像處理器使用以賦能增強的波資料處理或執行。此亦可以較其它圖像處理技術更低之成本完成。另外,本文之圖像處理技術可改進或增速資料處理或執行。此外,本文之圖像處理技術可改進GPU的資源或資料利用及/或資源效率。此外,本揭示內容之一些態樣可減輕GPU之壅塞及/或時脈速度降低。
根據本揭示內容,術語「或」可解譯為「及/或」,其中上下文並不以其他方式指示。另外,雖然諸如「一或多個」或「至少一個」等之片語可用於本文中(但並非為其他者)所揭示之一些特徵;並未使用此語言之特徵可解釋為具有暗示上下文並不以其他方式指示的此含義。
在一或多個實例中,本文中所描述之功能可實施於硬體、軟體、韌體或其任何組合中。例如,儘管已貫穿本發明使用術語「處理單元」,但此類處理單元可實施於硬體、軟體、韌體或其任何組合中。若任何功能、處理單元、本文中所描述之技術或其他模組實施於軟體中,則功能、處理單元、本文中所描述之技術或其他模組可作為一或多個指令或程式碼儲存於電腦可讀媒體上,或經由該電腦可讀媒體傳輸。電腦可讀媒體可包括電腦資料儲存媒體及通信媒體兩者,通信媒體包括促進電腦程式自一處至另一處之傳送的任何媒體。以此方式,電腦可讀媒體大體上可對應於(1)非暫時性有形電腦可讀儲存媒體,或(2)通信媒體(諸如,信號或載 波)。資料儲存媒體可為可由一或多個電腦或一或多個處理器存取以擷取用於實施本發明中所描述之技術的指令、程式碼及/或資料結構的任何可用媒體。借助於實例而非限制,此類電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位影音光碟(DVD)、軟碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。上文各者之組合亦應包括於電腦可讀媒體之範疇內。電腦程式產品可包括電腦可讀媒體。
程式碼可由一或多個處理器執行,諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、算術邏輯單元(ALU)、場可程式化邏輯陣列(FPGA)或其他等效的整合式或離散邏輯電路。因此,如本文中所使用之術語「處理器」可指前述結構或適於實施本文中所描述之技術的任何其他結構中之任一者。又,該等技術可完全實施於一或多個電路或邏輯元件中。
本發明之技術可實施於廣泛多種裝置或設備中,包括無線手持機、積體電路(IC)或IC集合(例如,晶片組)。本發明中描述各種組件、模組或單元以強調經組態以執行所揭示技術之裝置的功能態樣,但未必需要由不同硬體單元來實現。實情為,如上文所描述,可將各種單元組合於任何硬體單元中,或由互操作性硬體單元(包括如上文所描述之一或多個處理器)之集合結合合適軟體及/或韌體來提供該等單元。
各種實例已予以描述。此等及其他實例係在以下申請專利範圍之範疇內。
100:內容產生系統 104:裝置 131:顯示器 127:顯示處理器 120:處理單元 107:圖像處理管線 121:內部記憶體 198:判定組件 124:系統記憶體 132:收發器 128:接收器 130:傳輸器 126:通信介面 200:圖像處理器(GPU) 210:指令處理器 (CP) 212:繪圖呼叫資料封包 220:頂點抓取器(VFD) 222:頂點著色器(VS) 224:頂點快取記憶體(VPC) 226:三角形設置引擎 (TSE) 228:光柵化器 (RAS) 230:Z程序引擎(ZPE) 232:像素內插器(PI) 234:片段著色器(FS) 236:後端渲染器 (RB) 238:L2快取記憶體 (UCHE) 240:系統記憶體 250:指令緩衝器 260:上下文暫存器封包 261:上下文狀態 300:GPU 302:高階排序器 (HLSQ) 304:VPC 306:執行序處理器(TP) 308:UCHE 310:RB 312:VPC 320:串流處理器 (SP) 322:主引擎322 324:排序器324 326:本地記憶體326 328:波排程器及上下文暫存器 328 330:TEX或負載控制器330 332:指令快取記憶體332 334:執行單元(EUs) 336:一般用途暫存器 (GPR) 338:分配器 340:常數RAM 340 342:分配器 400:GPU 410:SP 412:流控制分支 414:初等函數單元(EFU) 416:算術邏輯單元(ALU) 418:TEX 420:載入儲存 (LDST) 430:資料交叉開關 440:第0階快取記憶體 450-459:波槽 500:GPU 510:SP 512:流控制分支 514:初等函數單元(EFU) 516:算術邏輯單元(ALU) 518:TEX 520:載入儲存 (LDST) 530:資料交叉開關 540:第0階快取記憶體 550-555:波槽 560:資料交叉開關 570:上下文佇列 571-586:上下文佇列槽 591:波資料或指令 592:上下文狀態或資訊 593:上下文狀態或資訊 598:資料或指令 600:流程圖 602-622:步驟
圖1展示依據本揭示內容之一或多技術之一例示內容產生系統方塊圖。
圖2展示依據本揭示內容之一或多技術之一例示GPU。
圖3展示依據本揭示內容之一或多技術之一例示GPU。
圖4展示依據本揭示內容之一或多技術之一例示GPU。
圖5A及圖5B展示依據本揭示內容之一或多技術之一例示GPU。
圖6展示依據本揭示內容之一或多技術之一例示方法之流程圖。
500:GPU
550-555:波槽
560:資料交叉開關
570:上下文佇列
571-586:上下文佇列槽
592:上下文狀態或資訊
593:上下文狀態或資訊

Claims (25)

  1. 一圖像處理的方法,包含: 判定複數波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態; 將對應該複數個波槽的至少一者中的至少一上下文暫存器之該一或多個上下文狀之資訊發送至上下文佇列; 將對應於該複數個波槽的至少一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊轉換為與該上下文佇列相容之上下文資訊;以及 將與該上下文佇列相容之該上下文資訊儲存於該上下文佇列。
  2. 如請求項1所述之方法,更包含: 當對應於該複數個波槽的該至少一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列時,將至少一上下文暫存器之該一或多個上下文狀態自該複數個波槽中的該至少一者移除。
  3. 如請求項1所述之方法,更包含: 將與該上下文佇列相容之該上下文資訊發送至該複數個波槽的一者 ; 將與該上下文佇列相容之該上下文資訊轉換為對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊;以及 將對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊儲存於該複數個波槽的一者中。
  4. 如請求項1所述之方法,更包含: 當對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列時,複製對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊。
  5. 如請求項1所述之方法,更包含: 將對應於該複數個波槽的該者的波資料發送至複數個執行單元的一者; 其中,當對應於該複數個波槽的該者的該波資料被發送至該複數個執行單元的該者時,對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列。
  6. 如請求項3所述之方法,更包含: 自複數個執行單元的一者接收對應於該複數個波槽的該者的波資料; 其中,當自該複數個執行單元之該者接收對應於該複數個波槽的該者的該波資料時,與該上下文佇列相容之該上下文資訊被發送至該複數個波槽的一者。
  7. 如請求項1所述之方法,更包含: 將該複數個波槽轉換為複數個執行槽。
  8. 如請求項7所述之方法,其中,該複數個執行槽中的數目小於或等於該複數個波槽的數目。
  9. 如請求項1所述之方法,其中,對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊係使用資料交叉開關轉換。
  10. 如請求項1所述之方法,其中,該複數個波槽係在圖像處理單元(GPU)之圖像處理管線(pipeline)中。
  11. 如請求項1所述之方法,其中,該複數個波槽及複數個執行單元係在串流處理器中。
  12. 如請求項11所述之方法,其中,該複數個波槽之數目大於或等於該複數個執行單元之數目。
  13. 一種用於圖像處理之裝置,包含: 記憶體;以及 耦合至該記憶體之至少一處理器,該至少一處理器經組態以: 判定複數個波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態; 將對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之資訊發送至上下文佇列; 將對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊轉換為與該上下文佇列相容之上下文資訊;以及 將與該上下文佇列相容之該上下文資訊儲存於該上下文佇列。
  14. 如請求項13所述之裝置,其中,該至少一處理器還經組態以: 當對應於該複數個波槽的該者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列時,將至少一上下文暫存器之該一或多個上下文狀態自該複數個波槽中的該者移除。
  15. 如請求項13所述之裝置,其中,該至少一處理器還經組態以: 將與該上下文佇列相容之該上下文資訊發送至該複數個波槽的一者 ; 將與該上下文佇列相容之該上下文資訊轉換為對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊;以及 將對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊儲存於該複數個波槽的一者中。
  16. 如請求項13所述之裝置,其中,該至少一處理器還經組態以: 當對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列時,複製對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊。
  17. 如請求項13所述之裝置,其中,該至少一處理器還經組態以: 將對應於該複數個波槽的該者的波資料發送至複數個執行單元的一者; 其中,當對應於該複數個波槽的該者的該波資料被發送至該複數個執行單元的該者時,對應於至少一上下文暫存器之該一或多個上下文狀態之該資訊被發送至該上下文佇列。
  18. 如請求項15所述之裝置,其中,該至少一處理器還經組態以: 自複數個執行單元的一者接收對應於該複數個波槽的該者的波資料; 其中,當自該複數個執行單元之該者接收對應於該複數個波槽的該者的該波資料時,與該上下文佇列相容之該上下文資訊被發送至該複數個波槽的一者。
  19. 如請求項13所述之裝置,其中,該至少一處理器還經組態以: 將該複數個波槽轉換為複數個執行槽。
  20. 如請求項19所述之裝置,其中,該複數個執行槽中的數目小於或等於該複數個波槽的數目。
  21. 如請求項13所述之裝置,其中,對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊係使用資料交叉開關 轉換。
  22. 如請求項13所述之裝置,其中,該複數個波槽係在圖像處理單元(GPU)之圖像處理管線(pipeline)中。
  23. 如請求項13所述之裝置,其中,該複數個波槽及複數個執行單元係在串流處理器中。
  24. 如請求項23所述之裝置,其中,該複數個波槽之數目大於或等於該複數個執行單元之數目。
  25. 一種電腦可讀取媒體,儲存用於圖像處理之電腦可執行程式碼,其包含程式碼使: 判定複數個波槽的每一者中的至少一上下文暫存器之一或多個上下文狀態; 將對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之資訊發送至上下文佇列; 將對應於該複數個波槽的一者中的至少一上下文暫存器之該一或多個上下文狀態之該資訊轉換為與該上下文佇列相容之上下文資訊;以及 將與該上下文佇列相容之該上下文資訊儲存於該上下文佇列。
TW109121928A 2019-06-27 2020-06-29 波槽管理之方法及裝置 TW202107408A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/455,641 US11055808B2 (en) 2019-06-27 2019-06-27 Methods and apparatus for wave slot management
US16/455,641 2019-06-27

Publications (1)

Publication Number Publication Date
TW202107408A true TW202107408A (zh) 2021-02-16

Family

ID=71662362

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109121928A TW202107408A (zh) 2019-06-27 2020-06-29 波槽管理之方法及裝置

Country Status (5)

Country Link
US (1) US11055808B2 (zh)
EP (1) EP3991131B1 (zh)
CN (1) CN113994363A (zh)
TW (1) TW202107408A (zh)
WO (1) WO2020264342A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220357983A1 (en) * 2021-05-07 2022-11-10 Qualcomm Incorporated Methods and apparatus for wave slot retirement procedures
US11954758B2 (en) * 2022-02-24 2024-04-09 Qualcomm Incorporated Dynamic wave pairing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118462A (en) * 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6057862A (en) * 1997-07-01 2000-05-02 Memtrax Llc Computer system having a common display memory and main memory
US7730501B2 (en) * 2003-11-19 2010-06-01 Intel Corporation Method for parallel processing of events within multiple event contexts maintaining ordered mutual exclusion
US20100110089A1 (en) * 2008-11-06 2010-05-06 Via Technologies, Inc. Multiple GPU Context Synchronization Using Barrier Type Primitives
US9176794B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US20140092102A1 (en) * 2012-09-28 2014-04-03 Nvidia Corporation Circuit and method for dynamic cloth simulation and graphics processing unit employing the same
US20160283233A1 (en) * 2015-03-24 2016-09-29 Freescale Semiconductor, Inc. Computer systems and methods for context switching
US20160353128A1 (en) 2015-06-01 2016-12-01 Microsoft Technology Licensing, Llc Decoding of intra-predicted images
US10019283B2 (en) * 2015-06-22 2018-07-10 Advanced Micro Devices, Inc. Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
GB2545718A (en) 2015-12-23 2017-06-28 Nordic Semiconductor Asa Radio transceivers
US10410311B2 (en) * 2016-03-07 2019-09-10 Intel Corporation Method and apparatus for efficient submission of workload to a high performance graphics sub-system
US10929944B2 (en) 2016-11-23 2021-02-23 Advanced Micro Devices, Inc. Low power and low latency GPU coprocessor for persistent computing
US10558460B2 (en) 2016-12-14 2020-02-11 Qualcomm Incorporated General purpose register allocation in streaming processor
US10649956B2 (en) * 2017-04-01 2020-05-12 Intel Corporation Engine to enable high speed context switching via on-die storage

Also Published As

Publication number Publication date
WO2020264342A1 (en) 2020-12-30
US20200410626A1 (en) 2020-12-31
US11055808B2 (en) 2021-07-06
EP3991131B1 (en) 2024-09-04
EP3991131A1 (en) 2022-05-04
CN113994363A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
US20210049729A1 (en) Reconfigurable virtual graphics and compute processor pipeline
EP2549382B1 (en) Virtual GPU
KR101707289B1 (ko) 그래픽 병렬 처리 유닛에 대한 버퍼 관리
KR101552079B1 (ko) 그래픽스 프로세싱 유닛 상의 그래픽스 및 비그래픽스 어플리케이션들의 실행
US8752064B2 (en) Optimizing communication of system call requests
US9779469B2 (en) Register spill management for general purpose registers (GPRs)
CN108206937B (zh) 一种提升智能分析性能的方法和装置
JP6086868B2 (ja) ユーザモードからのグラフィックス処理ディスパッチ
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
US9471387B2 (en) Scheduling in job execution
TW202107408A (zh) 波槽管理之方法及裝置
WO2024119988A1 (zh) 多cpu环境下的进程调度方法、装置、电子设备和介质
US20120194526A1 (en) Task Scheduling
US20200311859A1 (en) Methods and apparatus for improving gpu pipeline utilization
US20130173933A1 (en) Performance of a power constrained processor
US9170820B2 (en) Syscall mechanism for processor to processor calls
US12056506B2 (en) Access to intermediate values in a dataflow computation
De Oliveira et al. The Philips Nexperia digital video platform
US20220067872A1 (en) Graphics processing unit including delegator and operating method thereof
US11954758B2 (en) Dynamic wave pairing
US10423424B2 (en) Replicated stateless copy engine
US20220357983A1 (en) Methods and apparatus for wave slot retirement procedures
TW202225962A (zh) 用於疊加複合的平面規劃
CN118696296A (zh) 通用核心至加速器通信体系结构