CN113674390A - 精度被调制的着色 - Google Patents

精度被调制的着色 Download PDF

Info

Publication number
CN113674390A
CN113674390A CN202110184453.4A CN202110184453A CN113674390A CN 113674390 A CN113674390 A CN 113674390A CN 202110184453 A CN202110184453 A CN 202110184453A CN 113674390 A CN113674390 A CN 113674390A
Authority
CN
China
Prior art keywords
precision
shading
shader
values
control logic
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202110184453.4A
Other languages
English (en)
Inventor
C.P.弗拉斯卡蒂
D.C.坦嫰鲍姆
D.J.伦茨
R.M.克里施
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113674390A publication Critical patent/CN113674390A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing 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

精度被调制的着色
相关申请数据
本申请要求享有2020年5月14日提交的美国临时申请第63/025,155号的权益,该美国临时申请通过引用合并于此。
技术领域
本公开涉及图形处理,更具体地,涉及由图形处理单元(GPU)执行的精度调制的着色。
背景技术
现代图形系统可以使用可向被称为应用编程接口(API)的应用编程器提供公共接口的硬件和软件。API可以详细地指定GPU硬件如何执行着色器操作,但可能并不总是明确地指示要遵循的数字精度。像素着色率通常可以为1:1。换句话说,可以在渲染目标中为每个像素生成一个着色器。多重采样抗锯齿(MSAA)可以凭借将子像素混合为一个最终像素的解析步骤允许每个像素有更多的着色器。可以使用可变比率着色(VRS),因为许多对象的颜色在空间上是一致的。或者,远处的对象可能没有在视觉上被人眼明显注意到的针对1:1着色率的分辨率。着色器可以在管线创建时间被编译,并且可以被强类型化。编译器可能只能访问标准类型(例如,32位或16位浮点类型)。功率是计算设备中的总体功率、性能、面积(PPA)的关键限制因素。当实现功率节省时,性能可以由于允许增大的电压和/或频率工作点而提高。
发明内容
本公开的各种实施例包括一种GPU,其可以包括被配置为提供空间信息或图元特定信息中的至少一个的VRS接口。该GPU可以包括包含控制逻辑部分的一个或更多个着色器核心,该控制逻辑部分被配置为基于空间信息或图元特定信息中的至少一个来确定着色数值精度值。所述一个或更多个着色器核心的控制逻辑部分可以被配置为根据着色精度值来调制着色精度。
一些实施例可以包括一种用于通过GPU来控制着色精度的计算机实现的方法。该方法可以包括由VRS接口提供空间信息或图元特定信息中的至少一个。该方法可以包括由一个或更多个着色器核心的控制逻辑部分基于空间信息或图元特定信息中的至少一个来确定着色精度值。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分根据着色精度值来调制着色精度。
附图说明
本公开的前述及另外的特征和优点将由参照附图进行的以下详细描述变得更容易明显,附图中:
图1A示出了根据一些实施例的与GPU通信的主机的框图。
图1B示出了根据一些实施例的GPU。
图1C示出了根据一些实施例的包括GPU的移动个人计算机。
图1D示出了根据一些实施例的包括GPU的平板计算机。
图1E示出了根据一些实施例的包括GPU的智能电话。
图2示出了根据一些实施例的着色器精度转换表。
图3是示出根据一些实施例的用于自动控制和/或调制着色精度的技术的流程图。
图4是示出根据一些实施例的用于自动控制和/或调制着色精度的另一技术的流程图。
图5是示出根据一些实施例的用于自动控制和/或调制着色精度的又一技术的流程图。
具体实施方式
现在将详细参照这里公开的实施例,其示例在附图中示出。在以下详细描述中,阐述了许多具体细节以使本发明构思能够被透彻地理解。然而,应理解,本领域普通技术人员可以在没有这些具体细节的情况下实践本发明构思。在其它情况下,没有详细描述公知的方法、过程、组件、电路和网络,以免不必要地使实施例的方面模糊。
将理解,尽管术语第一、第二等可以在这里用于描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元素与另一个元素区分开。例如,在不脱离本发明构思的范围的情况下,第一设备可以被称为第二设备,类似地,第二设备可以被称为第一设备。
这里在本发明构思的描述中使用的术语仅出于描述特定实施例的目的,而不旨在限制本发明构思。如在本发明构思的描述和所附权利要求中所使用的,单数形式“一”和“该”旨在还包括复数形式,除非上下文清楚地另有所指。还将理解,如在这里使用的术语“和/或”是指并涵盖一个或更多个相关所列举项目的任何及所有可能的组合。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包括……的”指明所陈述的特征、整体、步骤、操作、元素和/或组件的存在,但不排除一个或更多个其它特征、整体、步骤、操作、元素、组件和/或其组的存在或添加。附图的组件和特征未必按比例绘制。
这里公开的实施例包括精度调制的着色技术,其用于减少设备的功耗而不引起人眼可察觉的图形图像质量上的差异。这对于诸如膝上型计算机、智能平板电脑、智能电话等的移动设备可以是特别有利的。可以定义和/或实施一个或更多个规则,以确定何时较低的精度可能在图像质量上没有显著差异。根据这里公开的实施例,GPU的一个或更多个算术逻辑单元(ALU)可以被配置为忽略一个或更多个分数最低有效位(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,其可以提供空间信息140和/或图元特定信息145。VRS接口135可以使用软件、固件、硬件或其任何组合来实现。GPU 105可以包括包含控制逻辑部分(例如,图1B所示的115a、115b)的一个或更多个着色器核心(例如110a、110b),该控制逻辑部分可以基于空间信息140和/或图元特定信息145确定着色精度值(例如120a、120b)。所述一个或更多个着色器核心(例如110a、110b)和控制逻辑部分(例如115a、115b)可以使用软件、固件、硬件或其任何组合来实现。所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以根据着色精度值(例如120a、120b)来调制GPU105的着色精度。所述一个或更多个着色器核心(例如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可以直接向GPU 105提供着色精度值(例如120a、120b)。
图2示出了根据一些实施例的着色器精度转换表130的附加细节。现在参照图1A至图2。
着色器精度转换表130可以包括一个或更多个着色率值205和一个或更多个着色精度值210。相对高的着色率值(例如215)可以对应于相对精确的着色精度值(例如220)。相对低的着色率值(例如230)可以对应于相对不精确的着色精度值(例如235)。中间着色率(例如225)可以对应于中间着色精度值(例如240)。所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以基于所述一个或更多个着色率值(例如225)来选择(例如120a、120b)着色精度值(例如240)。着色器精度转换表130可以包括一个或更多个着色率值205的默认集合和一个或更多个着色精度值210的默认集合。一个或更多个着色精度值205的默认集合可以由应用102和/或所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)改变。
所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以使一个或更多个ALU(例如125a、125b)以基于所选择的一个或更多个着色精度值(例如120a、120b)的精度来执行一个或更多个浮点运算。在一些实施例中,VRS接口135可以基于所述一个或更多个着色率值(例如225)来选择所述一个或更多个着色精度值(例如120a、120b),并且所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以从VRS接口135接收所选择的一个或更多个着色精度值(例如120a、120b)。
所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以使所述一个或更多个ALU(例如125a、125b)以基于所选择的一个或更多个着色精度值(例如120a、120b)的精度来执行一个或更多个浮点运算。换句话说,所述一个或更多个ALU(例如125a、125b)可以忽略一个或更多个分数LSB。
经由VRS接口135提供的空间信息140和/或图元特定信息145可以有利地用于控制着色精度。各种精度可以得到支持,从而允许比传统的32位浮点或16位浮点更多的选择,并且可以对应于VRS实现所提供的空间着色的粒度。有利地,可以通过针对某些计算使用较低精度的算术来降低功率。对于何时应用精度降低,这里公开的实施例不需要困难和/或主观的猜测或启发式方法。硬件变化可以高度本地化,因而更易于实现且更易于验证。可能需要最少的软件和/或硬件变化。没有或几乎没有(即不可察觉的)质量劣化。当功率节省足够时,由于允许可取决于增大的电压的增加的频率工作点,可以提高性能。换句话说,因为相对于功率上限可能有更多的余量,所以可以提高频率。
在着色器核心浮点数据路径中,可以基于对精度粒度应该有多精细的实现决定来增强控制以包含一个或更多个比特的精度选择字段(例如,着色精度值120a、120b)。在顶点着色器的情况下,该字段(例如120a、120b)可以从应用102所提供的图元流VRS控制中导出,然后可以将这些图元流VRS控制传递给着色器逻辑。这可以在没有任何驱动器修改的情况下完成。当VRS比率在绘图调用中改变时,那么由于与具有不同精度要求的被打包到同一波中的不同图元对应的线程,精度可能需要潜在更精细的控制。当有不同的要求时,硬件可以选择线程之中的最保守的(例如,最高精度)线程。
在图形管线中,可以添加新的每图元状态以记录针对给定图元的特定精度设置,使得在光栅化以及随后分派给像素着色器(例如110a、110b)时,可以应用适当的精度(例如120a、120b)。以类似于顶点的方式,当同一波中的像素需要多种精度时,这里公开的一些实施例可以选取像素之中所需的最高精度,和/或提供更精细的粒度。
可以修改ALU(例如125a、125b)和/或浮点单元,以支持选择各种内部中间精度级别的新控制位。在一些实施例中,当精度降低时,可以执行在ALU(例如125a、125b)和/或浮点单元中以及周围的机会时钟门控。另外,当数值转换单元馈送到以降低的精度操作的单元时,其输出精度可能降低。
在一些实施例中,使用VRS机制,可以通过忽略N个LSB来调制ALU(例如125a、125b)的精度。N个LSB可以被强制为零(0),或备选地,保持不变。在一些实施例中,在任何静态随机存取存储器(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位。换句话说,即使以24位的着色精度执行操作,应用层也可以“认为”正在以32位的着色精度执行操作。在一些实施例中,着色精度值可以在硬件级别上是可调的。
图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(例如125a、125b)以基于所选择的着色精度值(例如120a、120b)的精度来执行一个或更多个浮点运算。
在一些实施例中,VRS接口135可以基于一个或更多个着色率值205来选择着色精度值(例如120a、120b)。所述一个或更多个着色器核心(例如110a、110b)的控制逻辑部分(例如115a、115b)可以从VRS接口135接收所选择的着色精度值(例如120a、120b),并且可以使所述一个或更多个ALU(例如125a、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时,除了像素着色器之外,还可以在一个或更多个前端着色器中调制精度。
这里公开的一些实施例包括具有VRS接口的GPU,该VRS接口可以被配置为提供空间信息或图元特定信息中的至少一个。GPU可以包括包含控制逻辑部分的一个或更多个着色器核心,该控制逻辑部分被配置为基于空间信息或图元特定信息中的至少一个来确定着色精度值。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为根据着色精度值来调制着色精度。
在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为基于具有相对低的值的着色率值来降低着色精度。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为基于具有相对高的值的着色率值来提高着色精度。
GPU可以包括着色器精度转换表。在一些实施例中,着色器精度转换表包括一个或更多个着色率值和一个或更多个着色精度值。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为使一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。在一些实施例中,VRS接口被配置为基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为从VRS接口接收所选择的一个或更多个着色精度值。在一些实施例中,所述一个或更多个着色器核心的控制逻辑部分被配置为使一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。
在一些实施例中,着色器精度转换表包括所述一个或更多个着色率值的默认集合和所述一个或更多个着色精度值的默认集合。在一些实施例中,所述一个或更多个着色精度值的默认集合被配置为由应用或所述一个或更多个着色器核心的控制逻辑部分中的至少一个来改变。
这里公开的一些实施例包括用于通过GPU来控制着色精度的计算机实现的方法。该方法可以包括由VRS接口提供空间信息或图元特定信息中的至少一个。该方法可以包括由一个或更多个着色器核心的控制逻辑部分基于空间信息或图元特定信息中的至少一个来确定着色精度值。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分根据着色精度值来调制着色精度。
在一些实施例中,该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分基于具有相对低的值的着色率值来降低着色精度。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分基于具有相对高的值的着色率值来提高着色精度。
在一些实施例中,GPU包括着色器精度转换表。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分基于着色器精度转换表来调制着色精度。该方法可以包括将一个或更多个着色率值和一个或更多个着色精度值存储在着色器精度转换表中。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。
该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分使一个或更多个算术逻辑单元(ALU)以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。该方法可以包括由VRS接口基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分从VRS接口接收所选择的一个或更多个着色精度值。该方法可以包括由所述一个或更多个着色器核心的控制逻辑部分使一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。该方法可以包括基于所述一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度执行所述一个或更多个浮点运算来对一个或更多个时钟进行门控。
该方法可以包括将着色器精度转换表设置为具有所述一个或更多个着色率值的默认集合和所述一个或更多个着色精度值的默认集合。该方法可以包括由应用或所述一个或更多个着色器核心的控制逻辑部分中的至少一个来改变着色器精度转换表的所述一个或更多个着色精度值的默认集合。
结合这里公开的实施例描述的方法或算法和功能的块或步骤可以直接体现在硬件中、在由处理器运行的软件模块中或在两者的组合中。模块可以包括硬件、软件、固件或其任何组合。如果以软件实现,则这些功能可以作为一个或更多个指令或代码存储在有形的非暂时性计算机可读介质上或通过有形的非暂时性计算机可读介质传输。软件模块可以驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD ROM或本领域已知的任何其它形式的存储介质中。
以下讨论旨在提供对其中可实现本发明构思的某些方面的合适的一个或多个机器的简要的一般描述。通常,一个或多个机器包括系统总线,处理器、存储器(例如RAM、ROM或其它状态保存介质)、存储设备、视频接口和输入/输出接口端口附接到该系统总线。可以至少部分地通过来自常规输入设备(诸如键盘、鼠标等)的输入以及通过从另一机器接收到的指令、与虚拟现实(VR)环境的交互、生物特征反馈或其它输入信号来控制一个或多个机器。如这里所使用的,术语“机器”旨在广泛地涵盖单个机器,虚拟机器,或通信地耦合的机器、虚拟机器或一起操作的设备的系统。示例性机器包括诸如个人计算机、工作站、服务器、便携式计算机、手持设备、电话、平板电脑等的计算设备,以及诸如私人或公共交通工具的运输设备,例如汽车、火车、出租车等。
一个机器或多个机器可以包括嵌入式控制器(诸如可编程或非可编程逻辑设备或阵列)、ASIC、嵌入式计算机、卡等。一个机器或多个机器可以利用与一个或更多个远程机器的诸如通过网络接口、调制解调器或其它通信耦合的一个或更多个连接。多个机器可以借助于诸如内联网、互联网、局域网、广域网等的物理和/或逻辑网络互连。本领域技术人员将理解,网络通信可以利用各种有线和/或无线的短程或长程载波和协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)545.11、
Figure BDA0002942444380000111
光学、红外、电缆、激光等。
可以参照或结合包括功能、过程、数据结构、应用程序等的关联数据来描述本公开的实施例,该关联数据当被机器访问时导致该机器执行任务或定义抽象数据类型或低级硬件环境。关联数据可以存储在例如易失性和/或非易失性存储器(例如RAM、ROM等)中,或在其它存储设备及其相关联的存储介质(包括硬盘驱动器、软盘、光学存储、磁带、闪存、记忆棒、数字视频磁盘、生物存储等)中。关联数据可以通过传输环境(包括物理和/或逻辑网络)以包、串行数据、并行数据、传播信号等的形式来传递,并且可以以压缩或加密格式使用。关联数据可以在分布式环境中使用,并且可以本地和/或远程地存储以供机器访问。
已经参照示出的实施例描述和示出了本公开的原理,将认识到,示出的实施例可以在不背离这些原理的情况下在布置和细节上进行修改,并且可以以任何期望的方式组合。并且尽管前面的讨论集中于特定实施例,但是其它配置被构想。特别地,即使在这里使用诸如“根据本发明构思的实施例”等的表述,这些短语也意味着大体上引用实施例可能性,并且不旨在将本发明构思限于特定的实施例配置。如这里所使用的,这些术语可以引用可组合成其它实施例的相同或不同的实施例。
本公开的实施例可以包括非暂时性机器可读介质,其包括可由一个或更多个处理器运行的指令,该指令包括用于执行如这里描述的本发明构思的元素的指令。
前面的说明性实施例不应被解释为限制其发明构思。尽管已经描述了一些实施例,但是本领域技术人员将容易理解,在实质上不背离本公开的新颖教导和优点的情况下,可以对那些实施例进行许多修改。因此,所有这样的修改旨在被包括在如权利要求中限定的本公开的范围内。

Claims (20)

1.一种图形处理单元GPU,包括:
可变比率着色VRS接口,被配置为提供空间信息或图元特定信息中的至少一个;以及
一个或更多个着色器核心,包括被配置为基于空间信息或图元特定信息中的所述至少一个来确定着色精度值的控制逻辑部分,
其中所述一个或更多个着色器核心的控制逻辑部分被配置为根据着色精度值来调制着色精度。
2.根据权利要求1所述的GPU,其中所述一个或更多个着色器核心的控制逻辑部分被配置为基于着色率值的变化来改变着色精度。
3.根据权利要求1所述的GPU,进一步包括着色器精度转换表。
4.根据权利要求3所述的GPU,其中着色器精度转换表包括:
一个或更多个着色率值;以及
一个或更多个着色精度值。
5.根据权利要求4所述的GPU,其中所述一个或更多个着色器核心的控制逻辑部分被配置为基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。
6.根据权利要求5所述的GPU,其中所述一个或更多个着色器核心的控制逻辑部分被配置为使一个或更多个算术逻辑单元ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。
7.根据权利要求4所述的GPU,其中VRS接口被配置为基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。
8.根据权利要求7所述的GPU,其中所述一个或更多个着色器核心的控制逻辑部分被配置为从VRS接口接收所选择的一个或更多个着色精度值。
9.根据权利要求8所述的GPU,其中所述一个或更多个着色器核心的控制逻辑部分被配置为使一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。
10.根据权利要求4所述的GPU,其中:
着色器精度转换表包括所述一个或更多个着色率值的默认集合和所述一个或更多个着色精度值的默认集合;以及
所述一个或更多个着色精度值的默认集合被配置为由应用或所述一个或更多个着色器核心的控制逻辑部分中的至少一个改变。
11.一种用于通过图形处理单元GPU来控制着色精度的计算机实现的方法,该方法包括:
由可变比率着色VRS接口提供空间信息或图元特定信息中的至少一个;
由一个或更多个着色器核心的控制逻辑部分基于空间信息或图元特定信息中的所述至少一个来确定着色精度值;以及
由所述一个或更多个着色器核心的控制逻辑部分根据着色精度值来调制着色精度。
12.根据权利要求11所述的计算机实现的方法,进一步包括由所述一个或更多个着色器核心的控制逻辑部分基于着色率值的变化来改变着色精度。
13.根据权利要求11所述的计算机实现的方法,其中GPU包括着色器精度转换表,并且该方法进一步包括由所述一个或更多个着色器核心的控制逻辑部分基于着色器精度转换表来调制着色精度。
14.根据权利要求13所述的计算机实现的方法,进一步包括:
将一个或更多个着色率值和一个或更多个着色精度值存储在着色器精度转换表中;以及
由所述一个或更多个着色器核心的控制逻辑部分基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。
15.根据权利要求14所述的计算机实现的方法,进一步包括由所述一个或更多个着色器核心的控制逻辑部分使一个或更多个算术逻辑单元ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。
16.根据权利要求14所述的计算机实现的方法,进一步包括由VRS接口基于所述一个或更多个着色率值来选择所述一个或更多个着色精度值。
17.根据权利要求16所述的计算机实现的方法,进一步包括由所述一个或更多个着色器核心的控制逻辑部分从VRS接口接收所选择的一个或更多个着色精度值。
18.根据权利要求17所述的计算机实现的方法,进一步包括由所述一个或更多个着色器核心的控制逻辑部分使一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度来执行一个或更多个浮点运算。
19.根据权利要求18所述的计算机实现的方法,进一步包括基于所述一个或更多个ALU以基于所选择的一个或更多个着色精度值的精度执行所述一个或更多个浮点运算来对一个或更多个时钟进行门控。
20.根据权利要求14所述的计算机实现的方法,进一步包括:
将着色器精度转换表设置为具有所述一个或更多个着色率值的默认集合和所述一个或更多个着色精度值的默认集合;以及
由应用或所述一个或更多个着色器核心的控制逻辑部分中的至少一个改变着色器精度转换表的所述一个或更多个着色精度值的默认集合。
CN202110184453.4A 2020-05-14 2021-02-10 精度被调制的着色 Pending CN113674390A (zh)

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 2020-11-20
US17/100,796 US20210358191A1 (en) 2020-05-14 2020-11-20 Precision modulated shading

Publications (1)

Publication Number Publication Date
CN113674390A true CN113674390A (zh) 2021-11-19

Family

ID=78512719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110184453.4A Pending CN113674390A (zh) 2020-05-14 2021-02-10 精度被调制的着色

Country Status (4)

Country Link
US (1) US20210358191A1 (zh)
KR (1) KR20210141307A (zh)
CN (1) CN113674390A (zh)
TW (1) TW202143163A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023193719A1 (en) * 2022-04-07 2023-10-12 Huawei Technologies Co., Ltd. Apparatus, method, and computer-readable medium for image processing using variable-precision shading

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023193719A1 (en) * 2022-04-07 2023-10-12 Huawei Technologies Co., Ltd. Apparatus, method, and computer-readable medium for image processing using variable-precision shading

Also Published As

Publication number Publication date
US20210358191A1 (en) 2021-11-18
TW202143163A (zh) 2021-11-16
KR20210141307A (ko) 2021-11-23

Similar Documents

Publication Publication Date Title
US11574383B2 (en) Apparatus and method for non-uniform frame buffer rasterization
EP2710559B1 (en) Rendering mode selection in graphics processing units
KR101653157B1 (ko) 모놀리식 프로그램에 다중 비율 쉐이딩의 매핑
KR101993949B1 (ko) 필터 탭들을 폐기하는 텍스처 어드레스 모드
CN103677828A (zh) 一种图层绘制方法、绘图引擎及终端设备
WO2024040815A1 (zh) 图形处理方法及系统
US20100146211A1 (en) Shader Complex with Distributed Level One Cache System and Centralized Level Two Cache
US20170061926A1 (en) Color transformation using non-uniformly sampled multi-dimensional lookup table
EP3427229B1 (en) Visibility information modification
CN116391205A (zh) 用于图形处理单元混合渲染的装置和方法
WO2014178905A1 (en) Tessellation of two-dimensional curves using a graphics pipeline
US20200167076A1 (en) Compressed memory access improvement through compression-aware partial writes
CN113674390A (zh) 精度被调制的着色
US20160292907A1 (en) Interpolation circuitry and techniques for graphics processing
US10037590B2 (en) Low-power graphics processing using fixed-function unit in graphics processing unit
US11978234B2 (en) Method and apparatus of data compression
CN116563083A (zh) 渲染图像的方法和相关装置
EP2803040A1 (en) Method for rendering an image synthesis and corresponding device
US8842913B2 (en) Saturation varying color space
JP6847033B2 (ja) ハイブリッドブロックベースの圧縮
CN110246210B (zh) 映射多速率着色到单片程序
CN117980955A (zh) 与样本空间相关联的聚焦分箱渲染
CN118043850A (zh) Meshlet着色图集

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination