TW202143163A - 圖形處理單元及電腦實施方法 - Google Patents
圖形處理單元及電腦實施方法 Download PDFInfo
- Publication number
- TW202143163A TW202143163A TW110105131A TW110105131A TW202143163A TW 202143163 A TW202143163 A TW 202143163A TW 110105131 A TW110105131 A TW 110105131A TW 110105131 A TW110105131 A TW 110105131A TW 202143163 A TW202143163 A TW 202143163A
- Authority
- TW
- Taiwan
- Prior art keywords
- shading
- accuracy
- shader
- precision
- control logic
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本發明揭露一種GPU,其可包含提供空間資訊及/或基元特定資訊的VRS介面。GPU可包含一或多個著色器核心,一或多個著色器核心包含基於空間資訊及/或基元特定資訊來判定著色精度值的控制邏輯部分。控制邏輯部分可根據著色精度值來調節著色精度。一種用於藉由GPU控制著色精度的方法可包含藉由VRS介面提供空間資訊及/或基元特定資訊。方法可包含藉由控制邏輯部分基於空間資訊及/或基元特定資訊來判定著色精度值。方法可包含根據著色精度值來調節著色精度。
Description
本揭露內容是關於圖形處理,且更特定而言,是關於藉由圖形處理單元(graphics processing unit;GPU)進行的經過精度調節的著色。
現代圖形系統可使用硬體及軟體,所述硬體及軟體可向應用程式設計師提供公用介面,稱為應用程式設計介面(application programming interface;API)。API可詳細地指定GPU硬體如何進行著色器運算,但可能不總是明確地指示待遵循的數值精度。像素著色速率通常可為1:1。換言之,可在渲染目標中每像素產生一個著色器。多樣本抗混疊(Multisample anti-aliasing;MSAA)可使用將子像素混合成一個最終像素的解析步驟來允許每像素具有更多著色器。可使用可變速率著色(Variable rate shading;VRS),此是由於許多對象的顏色在空間上一致。或者,遠距離對象可能不具有對於人眼明顯值得注意的1:1著色速率的解析度。著色器可在管線創建時編譯且可在很大程度上類型化。編譯器可能僅可訪問標準類型(例如,32位元或16位元浮點類型)。功率為計算裝置中的總功率、效能、面積(power, performance, area;PPA)的關鍵限制因素。當達成功率節省時,效能可因允許增加電壓及/或頻率操作點而增加。
本揭露內容的各種實施例包含GPU,所述GPU可包含經組態以提供空間資訊或基元特定資訊中的至少一者的VRS介面。GPU可包含一或多個著色器核心,所述一或多個著色器核心包含經組態以基於空間資訊或基元特定資訊中的至少一者來判定著色數值精度值的控制邏輯部分。一或多個著色器核心的控制邏輯部分可經組態以根據著色精度值來調節著色精度。
一些實施例可包含一種用於藉由GPU控制著色精度的電腦實施方法。所述方法可包含藉由VRS介面提供空間資訊或基元特定資訊中的至少一者。所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於空間資訊或基元特定資訊中的至少一者來判定著色精度值。所述方法可包含藉由一或多個著色器核心的控制邏輯部分根據著色精度值來調節著色精度。
現將詳細參考本文中所揭露的實施例,所述實施例的實例示出於隨附圖式中。在以下詳細描述中,闡述眾多具體細節以實現對本發明概念的透徹理解。然而,應理解,所屬技術領域中具有通常知識者可在無此等具體細節的情況下實踐本發明概念。在其他情況下,尚未詳細描述眾所周知的方法、程序、組件、電路以及網路,以免不必要地模糊實施例的態樣。
應理解,儘管術語第一、第二等可在本文中用以描述各種元件,但此等元件不應受此等術語限制。此等術語僅用於將一個元件與另一元件區分開來。舉例而言,在不脫離本發明概念的範圍的情況下,第一裝置可稱為第二裝置,且類似地,第二裝置可稱為第一裝置。
本文中本發明概念的描述中所使用的術語僅是出於描述特定實施例的目的且並不意欲限制本發明概念。如在對本發明概念及所附申請專利範圍的描述中所使用,除非上下文另外清楚指示,否則單數形式「一(a/an)」及「所述」亦意欲包含複數形式。亦將理解,如本文中所使用的術語「及/或」是指且涵蓋相關聯所列項目中的一或多者的任何及所有可能的組合。應進一步理解,術語「包括(comprises/comprising)」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。圖式的組件及特徵未必按比例繪製。
本文中所揭露的實施例包含用於降低裝置的功耗而不引起人眼在圖形影像品質上的可感知差異的經過精度調節的著色技術。此可尤其有利於諸如膝上型電腦、智慧型平板電腦、智慧型電話或類似者的行動裝置。可定義及/或實施一或多個規則以用於判定何時較低精度可能在影像品質上無顯著差異。根據本文中所揭露的實施例,GPU的一或多個算術邏輯單元(arithmetic logic unit;ALU)可經組態以忽略一或多個分數最低有效位元(least significant bit;LSB)。對於一些演算法,32位元浮點計算可能對人類在視覺上不同於24位元或16位元浮點計算。
本文中所揭露的一些實施例可將可變速率著色概念與可變精度算術合併,從而使用前者來控制後者的應用。因此,在具有較高空間著色解析度(例如,較高著色速率)的區域中,可使用較高精度算術,且對於具有較低空間著色解析度(例如,較低著色速率)的區域(意味著按照應用的裁量,影像中焦點較少),可應用較低算術精度。
功率可為裝置中(尤其是行動裝置中)的總功率、效能、面積(PPA)的關鍵限制因素。當前所揭露的設備,系統以及方法藉由選擇性地降低算術精度(例如,以功率節省方式)同時避免因所揭露的選擇僅在解析度已降低的情況下降低精度的能力而導致的影像劣化來解決功率限制。此外,可選擇性地降低算術精度,其中對於多個(x,y)位置,不需要產生準確像素值,而是可從其相鄰者當中內插。
由於可藉由應用程式控制精度,故可能不需要進行困難或可疑的試探法來判定應在何時、何地以及在何種程度上調節精度。因此,當前所揭露的設備、系統以及方法可比早先嘗試更有效,諸如在功率降低時的自適應去採樣(亦即,渲染中的空間減少,而非數值精度的調節)。儘管本文中所揭露的實施例可藉由裝置上的應用程式控制,但諸如自適應去採樣的途徑可以不藉由應用程式控制。
圖1A示出根據一些實施例的與GPU 105通信的主機100的方塊圖。圖1B示出根據一些實施例的GPU 105。圖1C示出根據一些實施例的包含GPU 105的行動個人電腦100a。圖1D示出根據一些實施例的包含GPU 105的平板電腦100b。圖1E示出根據一些實施例的包含GPU 105的智慧型手機100c。現參考圖1A至圖1E。
GPU 105可包含VRS介面135,所述VRS介面135可提供空間資訊140及/或基元特定資訊145。VRS介面135可使用軟體、韌體、硬體或其任何組合來實施。GPU 105可包含一或多個著色器核心(例如,著色器核心110a、著色器核心110b),所述一或多個著色器核心包含控制邏輯部分(例如,如圖1B中所繪示的控制邏輯部分115a、控制邏輯部分115b),所述控制邏輯部分可基於空間資訊140及/或基元特定資訊145來判定著色精度值(例如,著色精度值120a、著色精度值120b)。一或多個著色器核心(例如,著色器核心110a、著色器核心110b)及控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可使用軟體、韌體、硬體或其任何組合來實施。一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可根據著色精度值(例如,著色精度值120a、著色精度值120b)來調節GPU 105的著色精度。一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於具有相對低值的著色速率值(例如,著色速率值230)來降低GPU 105的著色精度,且可基於具有相對高值的著色速率值(例如,著色速率值215)來提高GPU 105的著色精度。換言之,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可在某些情況下有條件地降低精度。GPU 105可包含著色器精度翻譯表130。在一些實施例中,著色器精度翻譯表130為邏輯建構或資料結構,其可例如實施為軟體或韌體。與主機100相關聯的應用程式102可與GPU 105通信。應用程式102可包含例如可執行於與主機100相關聯的硬體上的軟體或韌體。舉例而言,應用程式102可與VRS介面135通信,或可改變著色器精度翻譯表130的一或多個值,或類似者。在一些實施例中,應用程式102可藉由改變著色器精度翻譯表130中的一或多個項來控制著色器精度。在一些實施例中,應用程式102可將著色精度值(例如,著色精度值120a、著色精度值120b)直接提供給GPU 105。
圖2示出根據一些實施例的著色器精度翻譯表130的額外細節。現參考圖1A至圖2。
著色器精度翻譯表130可包含一或多個著色速率值205,以及一或多個著色精度值210。相對高著色速率值(例如,著色速率值215)可對應於相對精確著色精度值(例如,著色精度值220)。相對低著色速率值(例如,著色速率值230)可對應於相對不精確著色精度值(例如,著色精度值235)。中間著色速率(例如,著色速率225)可對應於中間著色精度值(例如,著色精度值240)。一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於一或多個著色速率值(例如,著色速率值225)來選擇著色精度值(例如,120a、120b)。著色器精度翻譯表130可包含一或多個著色速率值205的預設集合,以及一或多個著色精度值210的預設集合。一或多個著色精度值205的預設集合可藉由應用程式102及/或藉由一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)改變。
一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可使得一或多個ALU(例如,ALU 125a、ALU 125b)在基於所選一或多個著色精度值(例如,著色精度值120a、著色精度值120b)的精度下進行一或多個浮點運算。在一些實施例中,VRS介面135可基於一或多個著色速率值(例如,著色速率值225)來選擇一或多個著色精度值(例如,著色精度值120a、著色精度值120b),且一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可自VRS介面135接收所選一或多個著色精度值(例如,著色精度值120a、著色精度值120b)。
一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可使得一或多個ALU(例如,ALU 125a、ALU 125b)在基於所選一或多個著色精度值(例如,著色精度值120a、著色精度值120b)的精度下進行一或多個浮點運算。換言之,一或多個ALU(例如,ALU 125a、ALU 125b)可忽略一或多個分數LSB。
可有利地使用經由VRS介面135提供的空間資訊140及/或基元特定資訊145來控制著色精度。可支援各種精度,從而允許多於傳統32位元浮點或16位元浮點選擇,且可對應於藉由VRS實施方案提供的空間著色的粒度。有利地,可藉由針對特定計算使用較低精度算術來降低功率。本文中所揭露的實施例並不需要何時應用精度降低的困難及/或主觀猜測或試探法。硬體改變可為高度局部化的,且因此更易於實施且更易於驗證。可能需要最小軟體及/或硬體改變。不存在或存在極少(亦即,不可感知的)質量劣化。當功率節省足夠時,效能可由於允許增加的頻率操作點而提高,此可能取決於增加的電壓。換言之,由於相對於功率上限可存在更多裕度,故可增加頻率。
在著色器核心浮點資料路徑中,可基於精度粒度應精細的程度的實施決策來擴充控制以含有一或多個位元的精度選擇欄位(例如,著色精度值120a、著色精度值120b)。在頂點著色器的情況下,此欄位(例如,欄位120a、欄位120b)可自藉由應用程式102提供的基元流VRS控制導出,且接著可將此等傳遞至著色器邏輯。此可在無任何驅動器修改的情況下實現。當VRS速率在渲染調用(draw call)內改變時,則由於將對應於具有不同精度要求的不同基元的線程封裝至同一波中,故可能需要潛在地更精細的控制來實現精度。當存在不同要求時,硬體可在線程當中選擇最保守(例如,最高精度)的線程。
在圖形管線中,可添加新的每基元狀態以記錄給定基元的特定精度設定,使得在光柵化及隨後分派至像素著色器(例如,像素著色器110a、像素著色器110b)時,可應用適當精度(例如,精度120a、精度120b)。以類似於頂點的方式,當同一波中的像素需要多個精度時,本文中所揭露的一些實施例可選擇像素當中所需的最高精度,及/或提供更精細粒度。
可修改ALU(例如,ALU 125a、ALU 125b)及/或浮點單元以遵守選擇各種內部中間精度水平的新控制位元。在一些實施例中,可在精度降低時進行ALU(例如,ALU 125a、ALU 125b)及/或浮點單元中及周圍的機會性時脈閘控。另外,當饋送至在降低的精度下運算的單元時,數值轉換單元可使其輸出精度降低。
在一些實施例中,使用VRS機制,可藉由忽略N個LSB來調節ALU(例如,ALU 125a、ALU 125b)的精度。N個LSB可強制為零(0),或替代地保持未修改。在一些實施例中,可在著色器下游的任何靜態隨機存取記憶體(static random access memory;SRAM)寫入、記憶體快取寫入及/或任何操作中忽略N個LSB。以下為其中8個LSB可強制為零作為忽略其的形式的實例偽碼實施方案。
編譯器可產生以下程式碼:
fadd dst, src0, src1
在一些實施例中,使用上述行,但數值結果可如同執行以下行一般且達成所得功率降低。以下行表示可如何修改程式碼以模擬降低數值精度的效應——在此實例中為用於浮點加法運算的降低精度計算。
and src0Tmp, src0, 0xffffff00 //忽略src0的8個LSB
and src1Tmp, src1, 0xffffff00 //忽略src1的8個LSB
fadd dstTmp, src0Tmp, src1Tmp //在無LSB的情況下運算
and dstLSBs, dst, 0x000000ff //保持dst的8個LSB
or dst, dstTmp, dstLSBs //合併dst的LSB與運算結果
在此實例中,在著色器運算中(例如,著色器核心內)、在暫存器寫入中或類似者使用24位元。因此,計算的浮點精度可隨著色速率降低而自動降低。應用程式102不需要知道著色精度降低至24位元。換言之,應用程式層可「認為」運算是在32位元的著色精度下進行,儘管其是在24位元的著色精度下進行。在一些實施例中,著色精度值可為在硬體水平上可調的。
圖3為示出根據一些實施例的用於自動控制及/或調節著色精度的技術的流程圖300。現參考圖1A至圖3。
在305處,VRS介面135可提供空間資訊140及/或基元特定資訊145。在310處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於空間資訊140及/或基元特定資訊145來判定著色精度值(例如,著色精度值120a、著色精度值120b)。在315處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可根據著色精度值(例如,著色精度值120a、著色精度值120b)來調節GPU 105的著色精度。舉例而言,在320處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於具有相對低值的著色速率值(例如,著色速率值230)來降低GPU 105的著色精度。藉助於另一實例,在325處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於具有相對高值的著色速率值(例如,著色速率值215)來提高GPU 105的著色精度。
圖4為示出根據一些實施例的用於自動控制及/或調節著色精度的技術的流程圖400。現參考圖1A至圖2以及圖4。
在405處,可將一或多個著色速率值205儲存於著色器精度翻譯表130中。在410處,可將一或多個著色精度值210儲存於著色器精度翻譯表130中。應理解,可在單一操作中或以任何次序將值205及值210儲存於著色器精度翻譯表130中。在415處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可基於一或多個著色速率值210來選擇著色精度值(例如,著色精度值120a、著色精度值120b)。在420處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可使得一或多個ALU(例如,ALU 125a、ALU 125b)在基於所選一或多個著色精度值(例如,著色精度值120a、著色精度值120b)的精度下進行一或多個浮點運算。
在一些實施例中,VRS介面135可基於一或多個著色速率值205來選擇著色精度值(例如,著色精度值120a、著色精度值120b)。一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可自VRS介面135接收所選著色精度值(例如,著色精度值120a、著色精度值120b),且可使得一或多個ALU(例如,ALU 125a、ALU 125b)在基於所選著色精度值(例如,著色精度值120a、著色精度值120b)的精度下進行一或多個浮點運算。
圖5為示出根據一些實施例的用於自動控制及/或調節著色精度的技術的流程圖500。現參考圖1A至圖2以及圖5。
在505處,著色器精度翻譯表130可設定為具有著色速率值205的預設集合及對應著色精度值210。在510處,應用程式102可改變著色器精度翻譯表130中的至少一個項。替代地或另外,在515處,一或多個著色器核心(例如,著色器核心110a、著色器核心110b)的控制邏輯部分(例如,控制邏輯部分115a、控制邏輯部分115b)可改變著色器精度翻譯表130中的至少一個項。替代地或另外,在520處,VRS介面135可改變著色器精度翻譯表130中的至少一個項。替代地或另外,在525處,GPU 105的另一組件可改變著色器精度翻譯表130中的至少一個項。
在一些實施例中,可使用比實例著色器精度翻譯表130中所繪示的精度更高的精度。在一些實施例中,當VRS控制在基元級時,除像素著色器之外,亦可在一或多個前端著色器中調節精度。
本文中所揭露的一些實施例包含GPU,所述GPU具有可經組態以提供空間資訊或基元特定資訊中的至少一者的VRS介面。GPU可包含一或多個著色器核心,所述一或多個著色器核心包含經組態以基於空間資訊或基元特定資訊中的至少一者來判定著色精度值的控制邏輯部分。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以根據著色精度值來調節著色精度。
在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以基於具有相對低值的著色速率值來降低著色精度。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以基於具有相對高值的著色速率值來提高著色精度。
GPU可包含著色器精度翻譯表。在一些實施例中,著色器精度翻譯表包含一或多個著色速率值及一或多個著色精度值。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以基於一或多個著色速率值來選擇一或多個著色精度值。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以使得一或多個ALU在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。在一些實施例中,VRS介面經組態以基於一或多個著色速率值來選擇一或多個著色精度值。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以自VRS介面接收所選一或多個著色精度值。在一些實施例中,一或多個著色器核心的控制邏輯部分經組態以使得一或多個ALU在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。
在一些實施例中,著色器精度翻譯表包含一或多個著色速率值的預設集合,以及一或多個著色精度值的預設集合。在一些實施例中,一或多個著色精度值的預設集合經組態以藉由應用程式或一或多個著色器核心的控制邏輯部分中的至少一者改變。
本文中所揭露的一些實施例包含一種用於藉由GPU控制著色精度的電腦實施方法。所述方法可包含藉由VRS介面提供空間資訊或基元特定資訊中的至少一者。所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於空間資訊或基元特定資訊中的至少一者來判定著色精度值。所述方法可包含藉由一或多個著色器核心的控制邏輯部分根據著色精度值來調節著色精度。
在一些實施例中,所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於具有相對低值的著色速率值來降低著色精度。所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於具有相對高值的著色速率值來提高著色精度。
在一些實施例中,GPU包含著色器精度翻譯表。所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於著色器精度翻譯表來調節著色精度。所述方法可包含將一或多個著色速率值及一或多個著色精度值儲存於著色器精度翻譯表中。所述方法可包含藉由一或多個著色器核心的控制邏輯部分基於一或多個著色速率值來選擇一或多個著色精度值。
所述方法可包含藉由一或多個著色器核心的控制邏輯部分使得一或多個算術邏輯單元(ALU)在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。所述方法可包含藉由VRS介面基於一或多個著色速率值來選擇一或多個著色精度值。所述方法可包含藉由一或多個著色器核心的控制邏輯部分自VRS介面接收所選一或多個著色精度值。所述方法可包含藉由一或多個著色器核心的控制邏輯部分使得一或多個ALU在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。所述方法可包含基於一或多個ALU在基於所選一或多個著色精度值的精度下進行一或多個浮點運算來閘控一或多個時脈。
所述方法可包含將著色器精度翻譯表設定為具有一或多個著色速率值的預設集合,以及一或多個著色精度值的預設集合。所述方法可包含藉由應用程式或一或多個著色器核心的控制邏輯部分中的至少一者改變著色器精度翻譯表的一或多個著色精度值的預設集合。
與本文中所揭露的實施例結合的方法或演算法的方塊或步驟以及所描述功能可直接體現於硬體中、由處理器執行的軟體模組中,或硬體或軟體模組的組合中。模組可包含硬體、軟體、韌體或其任何組合。若以軟體實施,則功能可作為一或多個指令或程式碼儲存於有形非暫時性電腦可讀媒體上或經由有形非暫時性電腦可讀媒體傳輸。軟體模組可駐存於隨機存取記憶體(Random Access Memory;RAM)、快閃記憶體、唯讀記憶體(Read Only Memory;ROM)、電可程式化ROM(Electrically Programmable ROM;EPROM)、電可抹除可程式化ROM(Electrically Erasable Programmable ROM;EEPROM)、暫存器、硬碟、可卸除式磁碟、CD ROM,或所屬技術領域中已知的任何其他形式的儲存媒體中。
以下論述意欲提供其中可實施本發明概念的某些態樣的一或多個適合機器的簡要通用描述。通常,一或多個機器包含附接有處理器的系統匯流排、記憶體(例如,RAM、ROM)或其他狀態保持媒體、儲存裝置、視訊介面及輸入/輸出介面埠。可至少部分地藉由來自習知輸入裝置(諸如鍵盤、滑鼠等)的輸入以及藉由自另一機器接收到的指引來控制一或多個機器與虛擬實境(virtual reality;VR)環境、生物統計回饋或其他輸入信號的交互。如本文中所使用,術語「機器」意欲廣泛地涵蓋單一機器、虛擬機,或以通信方式耦接的機器、虛擬機或裝置共同操作的系統。例示性機器包含計算裝置,諸如個人電腦、工作站、伺服器、攜帶型電腦、手持型裝置、電話、平板電腦等;以及運輸裝置,諸如私用或公共交通,例如汽車、火車、出租車等。
一或多個機器可包含嵌入式控制器,諸如可程式化或非可程式化邏輯裝置或陣列、ASIC、嵌入式電腦、卡以及類似者。一或多個機器可利用與一或多個遠端機器的一或多個連接,諸如經由網路介面、數據機或其他通信耦接。可藉助於實體及/或邏輯網路,諸如企業內部網路、網際網路、局域網路、廣域網路等來互連機器。所屬技術領域中具有通常知識者應瞭解,網路通信可利用各種有線及/或無線短程或長程載波及協定,包含射頻(radio frequency;RF)、衛星、微波、電機電子工程師學會(Institute of Electrical and Electronics Engineers;IEEE)545.11、藍牙®
、光、紅外、電纜、雷射等。
可參考或結合相關聯資料來描述本揭露內容的實施例,所述資料包含功能、程序、資料結構、應用程式等,其在由機器存取時使得機器進行任務或定義抽象的資料類型或低級硬體情境。舉例而言,相關聯資料可儲存於揮發性及/或非揮發性記憶體中,例如RAM、ROM等,或儲存於其他儲存裝置及其相關聯儲存媒體中,包含硬碟機、軟磁碟、光學儲存器、磁帶、快閃記憶體、記憶體棒、數位視訊磁碟、生物儲存器等。相關聯資料可以封包、串列資料、並列資料、經傳播的信號等形式經由傳輸環境(包含實體及/或邏輯網路)遞送,且可以壓縮或加密格式使用。相關聯資料可用於分散環境中,且儲存在本端及/或遠端以供機器存取。
已參考所示出實施例描述及示出本揭露內容的原理,將認識到,所示出實施例可在不脫離此類原理的情況下在配置及細節方面加以修改,且可以任何所要方式進行組合。且儘管前述論述集中於特定實施例,但涵蓋其他組態。特定而言,儘管本文中使用諸如「根據本發明概念的實施例」或類似者的表達,但此等片語通常意謂參考實施例可能性,且並不意欲將本發明概念限制於特定實施例組態。如本文中所使用,此等術語可參考可組合至其他實施例中的相同或不同實施例。
本揭露內容的實施例可包含非暫時性機器可讀媒體,所述非暫時性機器可讀媒體包括可由一或多個處理器執行的指令,所述指令包括用以進行如本文中所描述的本發明概念的要素的指令。
前述示出性實施例並不應解釋為限制其發明概念。儘管已描述少數實施例,但所屬技術領域中具有通常知識者將易於瞭解,在不實質上脫離本揭露內容的新穎教示及優勢的情況下,許多修改對彼等實施例而言是可能的。因此,所有此類修改意欲包含於如申請專利範圍中所限定的本揭露內容的範圍內。
100:主機
100a:行動個人電腦
100b:平板電腦
100c:智慧型手機
102:應用程式
105:GPU
110a、110b:著色器核心
115a、115b:控制邏輯部分
120a、120b、210、220、235、240:著色精度值
125a、125b:ALU
130:著色器精度翻譯表
135:VRS介面
140:空間資訊
145:基元特定資訊
205、215、225、230:著色速率值
300、400、500:流程圖
305、310、315、320、325、405、410、415、420、505、510、515、520、525:方塊
本揭露內容的前述及額外特徵及優勢將自參考隨附圖式進行的以下詳細描述變得更顯而易見,在圖式中:
圖1A示出根據一些實施例的與GPU通信的主機的方塊圖。
圖1B示出根據一些實施例的GPU。
圖1C示出根據一些實施例的包含GPU的行動個人電腦。
圖1D示出根據一些實施例的包含GPU的平板電腦。
圖1E示出根據一些實施例的包含GPU的智慧型手機。
圖2示出根據一些實施例的著色器精度翻譯表。
圖3為示出根據一些實施例的用於自動控制及/或調節著色精度的技術的流程圖。
圖4為示出根據一些實施例的用於自動控制及/或調節著色精度的另一技術的流程圖。
圖5為示出根據一些實施例的用於自動控制及/或調節著色精度的又一技術的流程圖。
105:GPU
110a、110b:著色器核心
115a、115b:控制邏輯部分
120a、120b:著色精度值
125a、125b:ALU
130:著色器精度翻譯表
135:VRS介面
140:空間資訊
145:基元特定資訊
Claims (20)
- 一種圖形處理單元(GPU),包括: 可變速率著色(VRS)介面,經組態以提供空間資訊或基元特定資訊中的至少一者;以及 一或多個著色器核心,包含控制邏輯部分,所述控制邏輯部分經組態以基於所述空間資訊或所述基元特定資訊中的所述至少一者來判定著色精度值, 其中所述一或多個著色器核心的所述控制邏輯部分經組態以根據所述著色精度值來調節著色精度。
- 如請求項1所述的圖形處理單元,其中所述一或多個著色器核心的所述控制邏輯部分經組態以基於著色速率值的改變來改變所述著色精度。
- 如請求項1所述的圖形處理單元,更包括著色器精度翻譯表。
- 如請求項3所述的圖形處理單元,其中所述著色器精度翻譯表包括: 一或多個著色速率值;以及 一或多個著色精度值。
- 如請求項4所述的圖形處理單元,其中所述一或多個著色器核心的所述控制邏輯部分經組態以基於所述一或多個著色速率值來選擇所述一或多個著色精度值。
- 如請求項5所述的圖形處理單元,其中所述一或多個著色器核心的所述控制邏輯部分經組態以使得一或多個算術邏輯單元(ALU)在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。
- 如請求項4所述的圖形處理單元,其中所述可變速率著色介面經組態以基於所述一或多個著色速率值來選擇所述一或多個著色精度值。
- 如請求項7所述的圖形處理單元,其中所述一或多個著色器核心的所述控制邏輯部分經組態以自所述可變速率著色介面接收所選的所述一或多個著色精度值。
- 如請求項8所述的圖形處理單元,其中所述一或多個著色器核心的所述控制邏輯部分經組態以使得一或多個算術邏輯單元在基於所選的所述一或多個著色精度值的精度下進行一或多個浮點運算。
- 如請求項4所述的圖形處理單元,其中: 所述著色器精度翻譯表包含所述一或多個著色速率值的預設集合,以及所述一或多個著色精度值的預設集合;且 所述一或多個著色精度值的所述預設集合經組態以藉由應用程式或所述一或多個著色器核心的所述控制邏輯部分中的至少一者改變。
- 一種用於藉由圖形處理單元(GPU)控制著色精度的電腦實施方法,所述方法包括: 藉由可變速率著色(VRS)介面提供空間資訊或基元特定資訊中的至少一者; 藉由一或多個著色器核心的控制邏輯部分基於所述空間資訊或所述基元特定資訊中的所述至少一者來判定著色精度值;以及 藉由所述一或多個著色器核心的所述控制邏輯部分根據所述著色精度值來調節著色精度。
- 如請求項11所述的電腦實施方法,更包括藉由所述一或多個著色器核心的所述控制邏輯部分基於著色速率值的改變來改變所述著色精度。
- 如請求項11所述的電腦實施方法,其中所述圖形處理單元包含著色器精度翻譯表,且所述方法進一步包括藉由所述一或多個著色器核心的所述控制邏輯部分基於所述著色器精度翻譯表來調節所述著色精度。
- 如請求項13所述的電腦實施方法,更包括: 將一或多個著色速率值及一或多個著色精度值儲存於所述著色器精度翻譯表中;以及 藉由所述一或多個著色器核心的所述控制邏輯部分基於所述一或多個著色速率值來選擇所述一或多個著色精度值。
- 如請求項14所述的電腦實施方法,更包括藉由所述一或多個著色器核心的所述控制邏輯部分使得一或多個算術邏輯單元(ALU)在基於所選一或多個著色精度值的精度下進行一或多個浮點運算。
- 如請求項14所述的電腦實施方法,更包括藉由所述可變速率著色介面基於所述一或多個著色速率值來選擇所述一或多個著色精度值。
- 如請求項16所述的電腦實施方法,更包括藉由所述一或多個著色器核心的所述控制邏輯部分自所述可變速率著色介面接收所選的所述一或多個著色精度值。
- 如請求項17所述的電腦實施方法,更包括藉由所述一或多個著色器核心的所述控制邏輯部分使得一或多個算術邏輯單元在基於所選的所述一或多個著色精度值的精度下進行一或多個浮點運算。
- 如請求項18所述的電腦實施方法,更包括基於一或多個算術邏輯單元在基於所選的所述一或多個著色精度值的精度下進行所述一或多個浮點運算來閘控一或多個時脈。
- 如請求項14所述的電腦實施方法,更包括: 將所述著色器精度翻譯表設定為具有所述一或多個著色速率值的預設集合,以及所述一或多個著色精度值的預設集合;以及 藉由應用程式或所述一或多個著色器核心的所述控制邏輯部分中的至少一者改變所述著色器精度翻譯表的所述一或多個著色精度值的所述預設集合。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063025155P | 2020-05-14 | 2020-05-14 | |
US63/025,155 | 2020-05-14 | ||
US17/100,796 US20210358191A1 (en) | 2020-05-14 | 2020-11-20 | Precision modulated shading |
US17/100,796 | 2020-11-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202143163A true TW202143163A (zh) | 2021-11-16 |
Family
ID=78512719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105131A TW202143163A (zh) | 2020-05-14 | 2021-02-09 | 圖形處理單元及電腦實施方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210358191A1 (zh) |
KR (1) | KR20210141307A (zh) |
CN (1) | CN113674390A (zh) |
TW (1) | TW202143163A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11935175B2 (en) * | 2022-04-07 | 2024-03-19 | Huawei Technologies Co., Ltd. | Apparatus, method, and computer-readable medium for image processing using variable-precision shading |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8421794B2 (en) * | 2007-03-23 | 2013-04-16 | Qualcomm Incorporated | Processor with adaptive multi-shader |
US9569886B2 (en) * | 2013-12-19 | 2017-02-14 | Intel Corporation | Variable shading |
WO2016090535A1 (en) * | 2014-12-08 | 2016-06-16 | Intel Corporation | Graphic rendering quality improvements through automated data type precision control |
US9927862B2 (en) * | 2015-05-21 | 2018-03-27 | Microsoft Technology Licensing, Llc | Variable precision in hardware pipelines for power conservation |
US9916682B2 (en) * | 2015-10-28 | 2018-03-13 | Intel Corporation | Variable precision shading |
US10147227B2 (en) * | 2017-02-17 | 2018-12-04 | Microsoft Technology Licensing, Llc | Variable rate shading |
US11150899B2 (en) * | 2018-04-09 | 2021-10-19 | Advanced Micro Devices, Inc. | Selecting a precision level for executing a workload in an electronic device |
-
2020
- 2020-11-20 US US17/100,796 patent/US20210358191A1/en active Pending
- 2020-12-22 KR KR1020200180580A patent/KR20210141307A/ko active Search and Examination
-
2021
- 2021-02-09 TW TW110105131A patent/TW202143163A/zh unknown
- 2021-02-10 CN CN202110184453.4A patent/CN113674390A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113674390A (zh) | 2021-11-19 |
KR20210141307A (ko) | 2021-11-23 |
US20210358191A1 (en) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI646502B (zh) | 映射多重速率著色至單一程式之技術 | |
US20210043000A1 (en) | Method, apparatus and device for processing deformation of virtual object, and storage medium | |
EP1671273B1 (en) | High quality and high performance three-dimensional graphics architecture for portable handheld devices | |
US8325184B2 (en) | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof | |
US8854384B2 (en) | Method and system for processing pixels utilizing scoreboarding | |
US8421794B2 (en) | Processor with adaptive multi-shader | |
EP2710559B1 (en) | Rendering mode selection in graphics processing units | |
JPWO2007049610A1 (ja) | 画像処理装置 | |
US20170124757A1 (en) | Variable Precision Shading | |
TWI728986B (zh) | 圖形處理系統、運行圖形處理系統的方法及執行該方法的電腦軟體碼 | |
US11373268B2 (en) | Apparatus and method for graphics processing unit hybrid rendering | |
EP3353746B1 (en) | Dynamically switching between late depth testing and conservative depth testing | |
EP1980998A2 (en) | Programmable graphics processing element | |
CN107077828A (zh) | 对颜色查找表的大小进行压缩 | |
US20170061926A1 (en) | Color transformation using non-uniformly sampled multi-dimensional lookup table | |
TWI595439B (zh) | 鑲嵌後邊緣快取 | |
US20170263040A1 (en) | Hybrid mechanism for efficient rendering of graphics images in computing environments | |
JP6182225B2 (ja) | カラーバッファ圧縮 | |
WO2017201676A1 (en) | Self-adaptive window mechanism | |
US20230297287A1 (en) | Dynamic processing memory core on a single memory chip | |
US20200167076A1 (en) | Compressed memory access improvement through compression-aware partial writes | |
CN111080505B (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
US9530237B2 (en) | Interpolation circuitry and techniques for graphics processing | |
TW202143163A (zh) | 圖形處理單元及電腦實施方法 | |
US10037590B2 (en) | Low-power graphics processing using fixed-function unit in graphics processing unit |