《图形处理器中SIMD单元的动态启用和禁用.pdf》由会员分享,可在线阅读,更多相关《图形处理器中SIMD单元的动态启用和禁用.pdf(32页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103080899 A(43)申请公布日 2013.05.01CN103080899A*CN103080899A*(21)申请号 201180035148.3(22)申请日 2011.07.1161/363,856 2010.07.13 US12/839,962 2010.07.20 USG06F 9/30(2006.01)G06F 9/38(2006.01)G06F 1/32(2006.01)G06T 15/00(2006.01)(71)申请人超威半导体公司地址美国加利福尼亚州(72)发明人图沙尔K沙阿拉沙德奥雷费基迈克尔J曼特 布莱恩恩贝林(74)专利代理机构上海。
2、胜康律师事务所 31263代理人李献忠(54) 发明名称图形处理器中SIMD单元的动态启用和禁用(57) 摘要本发明描述一种在图形处理单元中提高效能的系统和方法。实施方式通过在包含多个SIMD单元的着色器复合器中动态地激活/停用单个的SIMD实现在图形处理单元中的功率节约。单个SIMD的动态即时禁用和启用对于给定的处理应用中实现所需的效能和功率水平提供了灵活性。用这种方法,实施方式实现了图形处理单元的最优化使用。本发明的实施方式还在着色器复合器中实现SIMD的动态纹理(如中等纹理)时钟门控。实施方式通过按需提供时钟机制,关闭未使用的逻辑时钟树,以减少开关功率。用这种方法,实施方式增强时钟门控,。
3、以在SIMD为空闲(或未指派任何工作)时的持续时间内节约更多的开关功率。(30)优先权数据(85)PCT申请进入国家阶段日2013.03.01(86)PCT申请的申请数据PCT/US2011/043509 2011.07.11(87)PCT申请的公布数据WO2012/009252 EN 2012.01.19(51)Int.Cl.权利要求书2页 说明书11页 附图18页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书11页 附图18页(10)申请公布号 CN 103080899 ACN 103080899 A1/2页21.一种在计算系统中提高效能的方法,其包括:确定。
4、处理应用所需的功率水平;以及根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据单元(SIMD)。2.如权利要求1所述的方法,还包括:实时地配置多个寄存器以指示何时所述SIMD要被启用和禁用。3.如权利要求1所述的方法,还包括:确定所述处理应用所需的SIMD的数量。4.如权利要求2所述的方法,还包括:审查所配置的所述寄存器;以及根据所述寄存器的配置分配工作线程。5.如权利要求2所述的方法,还包括:在所述配置之前服务一个或多个挂起的工作请求。6.如权利要求1所述的方法,其中,所述动态地启用和禁用包括在所述SIMD的活动执行期间并且独立于与所述SIMD相关的着色器引擎中的活动性。
5、启用和禁用所述SIMD。7.如权利要求2所述的方法,还包括:对一个或多个要被禁用的SIMD禁用工作线程;以及确定在所述要被禁用的SIMD中所有挂起的工作线程何时被清空。8.如权利要求1所述的方法,其中,所述启用和禁用依赖于处理的工作负荷、应用请求和操作条件中的一个或多个。9.如权利要求1所述的方法,进一步包括提供动态中等纹理时钟门控到所述SIMD。10.如权利要求9所述的方法,进一步包括禁用时钟树到所述SIMD中的未使用的逻辑。11.如权利要求1所述的方法,进一步包括按需提供计时到所述SIMD。12.一种在计算系统中提高效能的系统,其包括:第一模块,其被配置为确定处理应用的功率水平;以及第二模。
6、块,其被配置为根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据单元(SIMD)。13.如权利要求12所述的系统,其中,所述第二模块实时地配置多个寄存器来指示何时所述SIMD要被启用和禁用。14.如权利要求13所述的系统,其中,所述第二模块被进一步配置为:审查所配置的所述寄存器;以及根据所述寄存器的配置分配工作线程。15.如权利要求13所述的系统,其中,所述第二模块在所述配置之前服务一个或多个挂起的工作请求。16.如权利要求12所述的系统,其中,所述第二模块进一步被配置为在所述SIMD的活动执行期间并且独立于与所述SIMD相关的着色器引擎中的活动性启用和禁用所述SIMD。。
7、17.一种计算机可读介质,其存储适于由处理器执行的指令以:确定处理应用所需的功率水平;以及根据所述功率水平动态地启用和禁用在着色器复合器中的一个或多个单指令多数据权 利 要 求 书CN 103080899 A2/2页3单元(SIMD)。18.如权利要求17所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:实时地配置多个寄存器,以指示何时所述SIMD要被启用和禁用。19.如权利要求17所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:确定所述处理应用所需的SIMD的数量。20.如权利要求18所述的计算机可读介质,进一步包括适于由所述处理器执行的指令以:审查所配置的所述寄存。
8、器;以及根据所述寄存器的配置分配工作线程。21.一种在包括多个指令数据模块的处理器中管理工作分配的方法,其包括:分析由所述处理器接收到的工作单元;将所述多个模块内的活动的模块的利用水平与阈值进行比较;以及根据所述分析和所述比较在所述指令数据模块中所选择的指令数据模块中遍布分布所述工作单元。22.如权利要求21所述的方法,其中,所述比较包括确定所述活动的模块中的每个是否具有小于所述阈值中的一个或多个的利用水平。23.如权利要求22所述的方法,进一步包括禁用其利用水平小于所述一个或多个阈值的所述活动的模块。24.如权利要求21所述的方法,其中,所述分布包括分配所述工作单元的部分给具有小于所述阈值中。
9、的一个或多个的利用水平的活动的模块。25.如权利要求21所述的方法,其中,所述分布进一步包括启用非活动的模块。26.如权利要求25所述的方法,进一步包括当所述活动的模块的利用水平大于所述阈值中的一个或多个时分配所述工作单元中的部分给所启用的所述模块。27.如权利要求26所述的方法,其中,所述分布实现所启用的所述模块中的一个或多个的充分利用。28.如权利要求21所述的方法,其中,所述比较包括计数在所述指令数据模块内执行的指令,所述指令代表所述工作单元。29.如权利要求28所述的方法,其中,所述计数在预定的时间周期发生。30.如权利要求29所述的方法,其中,所述指令包括来自包括算术逻辑单元(ALU。
10、)指令和取指令的组中的至少一个。31.如权利要求21所述的方法,其中,所述利用水平包括来自包括当前利用和预测的利用的所述组中的至少一个。权 利 要 求 书CN 103080899 A1/11页4图形处理器中 SIMD 单元的动态启用和禁用技术领域0001 本发明的实施方式总体涉及在图形处理单元(GPU)中的单指令多数据(SIMD)单元的控制。背景技术0002 图形处理器的算术单元包括算术逻辑单元(ALU)或配置为执行整数、逻辑和单/双精度浮点运算的算术单元。0003 图形处理器可以包括成阵列的如被称为着色器核心的算术单元。着色器核心包括着色器管线(SP)。为了实现更高的效能,多个SP可以被配置。
11、为作为叠式SP一起工作。SP可以配置为成阵列的四芯管(QP)和SIMD。每个SIMD的所有的着色器单元在不同组的原点、顶点或像素值上可以有条件地执行相同的ALU指令。以这种方式,SIMD提供算术处理功率到图形处理器。0004 在传统的具有叠式SP的图形处理器中,可以静态地启用或禁用SIMD。例如,如果SP被确定为有故障,引线掩码(fuse mask)可以被编程为禁用故障SP。相似地,用户可存取寄存器可以被编程为禁用/启用特定的SIMD或成组的SIMD。然而,在新的工作请求发送到SIMD之前,这种方法需要图形处理器的图形管道刷新,且需要将新值重新编程到刷新的图形管道中。0005 通常的假设是随着。
12、SIMD数量的相应增加,着色器引擎的效能提高。然而,这种陈述仅仅在有限的情况下是真实的,如在繁重的工作负荷条件下。对于经常出现的情况,在较少繁重的工作负荷的情况下,着色器引擎的效能不一定随着SIMD的数目的增加而增加。在这种情况下,如果所有的SIMD被启用,由于未充分利用的SIMD(即SIMD具有较轻的负荷或没有负荷)保持启用和激活状态,所以功率被浪费。0006 传统的图形系统简单地将工作负荷在遍布于所使用的着色器引擎内的所有的SIMD进行划分以用于特定的操作。然而,这种方法是极端地功率低效的。低效发生的原因是没有确定在不影响系统效能的情况下是否可以用较少的SIMD来执行操作。因此,传统的系统。
13、保持着色器引擎内的所有的SIMD是活动的,无论它们是否需要执行操作。0007 如上所述,当SIMD被启用时,它们消耗功率。即使处于闲置状态,SIMD仍然消耗最小的、但量可测量的功率。因此,保持所有可用的SIMD启用,即使未使用的或未被充分利用,也浪费功率。能够将工作负荷压缩在尽可能最小数目的SIMD中也将是有利的。这种方法由于给每一个可用的SIMD提供工作负荷而可以减少不必要的开销(overhead)。0008 此外,在传统的方法中,在着色器复合器(shader complex)中的所有SIMD单元的时钟或同时启用或同时禁用。在许多应用中,并不是所有的SIMD都被分配工作的。然而,传统的方法持。
14、续主动地提供时钟信号给这些SIMD。该方法会增加图形处理器的功率消耗,并且是低效的。0009 因此,需要能够实现SIMD的动态控制并在SIMD可能不执行处理任务时减少图形处理器的功率消耗的系统和方法。说 明 书CN 103080899 A2/11页5发明内容0010 本发明的实施方式通过动态地激活和停用在包括多个SIMD的着色器复合器中的单个的SIMD而实现在图形处理单元中节约功率。单个的SIMD的动态即时禁用和启用在实现给定的处理应用所需的效能和功率水平方面提供了灵活性。以这种方式,可以实现图形处理单元的最佳使用。0011 更具体地,本发明的实施方式提供一种每瓦负荷均衡技术(LBPW)。在一。
15、个实施中,这种LBPW技术监控算术逻辑单元(ALU)指令的数目并提取每个SIMD内执行的指令。此外,新分配的线程负荷(即波阵面)进行排队并被监控。这种监控用于评估SIMD的当前和未来的利用。根据该方案,着色器引擎中只有实际需要或预期将处理给定工作负荷的SIMD保持激活状态。不需要的SIMD被停用。通过停用不需要的SIMD,降低功率消耗。作为额外的益处,本发明的实施方式在不显著影响系统性能的情况下提高效能/瓦(performance per watt)。0012 在本发明的又一个实施方式中,减少图形芯片的di/dt,以提高可靠性和在较低的电压下提高频率。这种减少影响材料账单,并允许使用较便宜的元。
16、件。0013 本发明的实施方式还实现在着色器复合器中的SIMD的动态纹理(grain)(例如中等纹理)时钟门控。通过按需提供时钟机制以关闭未使用的逻辑时钟树,从而减少开关功率(switching power)。在这种方式中,时钟门控被增强,从而在SIMD是空闲(或者没有分配工作)的时间阶段节约更多的开关功率。0014 本发明的实施方式可以用于任何计算机系统(例如,传统的计算机(台式机,笔记本等)系统、计算设备、娱乐系统、媒体系统、游戏系统、通信装置、个人数字助理),或任何使用一个或多个处理器的系统。0015 由于开发的用于一种类型的处理器的代码用很少或不用额外的努力可以在另一种类型的处理器中有。
17、效利用,因而本发明的实施方式可用于例如具有多核的CPU、GPU、和/或GPGPU的处理系统。例如,所开发的用于在GPU执行的代码,也称为GPU内核,使用本发明的实施方式可被配置在CPU执行。附图说明0016 被并入说明书中并构成本说明书的一部分的附图图解了本发明的实施方式,并连同上面给出的总体描述和下面给出的实施方式的详细描述用于解释本发明的原理。在附图中:0017 图1A示出根据实施方式所述的着色器复合器。0018 图1B-1D示出根据实施方式所述的可以被配置为控制SIMD的寄存器。0019 图2示出根据实施方式所述的示例性时序图。0020 图3A-3B示出根据实施方式所述的用于启用和禁用S。
18、IMD的示例性的寄存器设置。0021 图3C是根据实施方式所述的示例性的操作流程图。0022 图4A-4F示出根据实施方式所述的示例性的效能图表。0023 图5A是没有均衡化的传统的SIMD负荷行为的示意图。0024 图5B是根据本发明的实施方式所述的SIMD负荷行为的示意图。说 明 书CN 103080899 A3/11页60025 图6是根据本发明的实施方式所述的示例性的用于评估SIMD活动性的可编程查找表的示意图。0026 图7是根据本发明的实施方式所述的用于执行SIMD负荷均衡化的示例性方法的示例性流程图。0027 图8是用于进行图7所示的先入先出(FIFO)采样的更详细的流程图。00。
19、28 图9是图7所示的方法步骤的更详细的流程图。0029 图10示出根据本发明的实施方式所述的用于动态纹理时钟门控的示例性的系统。具体实施方式0030 如上所讨论的,本发明的实施方式通过动态地激活和停用着色器复合器中单个的SIMD实现功率节约。0031 对图形处理单元的下降的效能需要或为了降低散热设计功率(TDP),实施方式动态地禁用SIMD。此外,实施方式启用已禁用的SIMD用于高效能应用而无需刷新图形处理单元的图形管道。这在不刷新SP的情况下通过动态开关若干SIMD而实现。在某种程度上通过适当地编程设计成组的寄存器实现动态控制(或开关)。0032 在实施方式中,着色器管内插器(SPI)根据。
20、被配置为动态地指示哪些SIMD被激活的寄存器分配新的工作(或线程)。在一个实施方式中,在当前未完成的请求(或挂起的请求)由被禁用的SIMD提供服务之后,这种动态配置生效。一旦被禁用,没有新的来自SPI的请求会通过禁用的SIMD,且可捕获逻辑(harvestable logic)的时钟(如,sp4-vsp和纹理时钟)关闭,以降低图形处理单元的TDP。当禁用的SIMD启用时,SPI将再次开始分配工作给启用的SIMD,提供图形处理单元更高的效能。0033 在一个实施方式中,这些SIMD和一些要被激活和/停用的SIMD的激活和停用依赖于各种因素,如操作条件(例如,温度、电流、CAC),应用(例如,节约。
21、能源的可变的利用)、工作负荷、或其他需求(如,效能需求,功率需求)。SIMD的动态控制0034 图1A示出示例性的着色器复合器100,其中本发明的实施方式得到实现。如上所讨论的,着色器复合器可以包括着色器管道(SP)。为了实现更高的效能,多个SP可以被配置为作为叠式SP一起工作。SP可以构造成四管(QP)和SIMD的阵列186。每个SIMD的所有的着色单元,可以有条件地在不同的组的原点、顶点或像素值上执行相同的ALU指令。在一个实施方式中,着色器复合器100包括多个SIMD和2个着色器引擎,即,着色器引擎120和着色器引擎122。着色器复合器100还包括纹理高速缓存130(或2级纹理高速缓存)。
22、、多个着色器管内插器(SPI)和顶点高速缓存。着色器复合器100还包括多个冗余着色器开关(RSS)、着色器的时序控制器(SQ)、1级纹理高速缓存(TCP)和纹理数据逻辑(TD)。(虽然为清楚起见,示出了数量较少的SIMD,但是应当理解,本发明并不限定于图示的实施方式,且着色器复合器100是可扩展的并且可以包括任意数量的SIMD。)0035 如上所讨论的,本发明的实施方式动态地开关若干SIMD而不刷新SP。这样的动态控制(或开关)在某种程度上通过适当地编程成组的寄存器来实现。在一个实施方式中,SPI根据被配置为动态地指示哪些SIMD被激活的寄存器,分配新的工作(或工作线程)。说 明 书CN 10。
23、3080899 A4/11页70036 下节讨论控制SIMD和QP掩码的示例性寄存器。0037 图1B示出命名为“CC_GC_SHADER_PIPE_CONFIG.”的寄存器。在一实施方式中,根据引信掩码设置,该寄存器通过复位/配置单元(RCU)编程。作为示例,该寄存器可以被编程用于捕获的目的。0038 同样地,示于图1C的“RCU_CG_GC_SHADER_PIPE”和“RCU_CC_GC_SHADER_PIPE1”寄存器是“CC_GC_SHADER_PIPE_CONFIG”寄存器的经阴影处理(shadow)的版本。这些寄存器基于引信掩码或SMC微码被编程。0039 示于图1D中的寄存器“G。
24、C_USER_SHADER_PIPE_CONFIG,”通过用户可编程以限制操作SIMD(和/或QP)的数目。该寄存器可以是通过从图形寄存器总线管理(GRBM)接受的每个索引的着色器引擎映射并经阴影处理的存储器。0040 “CC_GC_SHADER_PIPE_CONFIG”的寄存器设置(图1B)在性质上是静态的,且每个芯片编程一次。与此相反,“GC_USER_SHADER_PIPEC_ONFIG”寄存器的寄存器设置可以在任何时间动态(即,即时)编程。本发明的实施方式配置“GC_USER_SHADER_PIPE_CONFIG”寄存器用于SIMD的动态控制。0041 在实施方式中“CC_GC_SHA。
25、DER_PIPE_CONFIG”寄存器和“GC_USER_SHADER_PIPE_CONFIG”寄存器的组合ORed值由SPI使用以确定(即时)要被分配新的线程(工作)的启用的SIMD。在一个实施方式中,在图形管道的所有其他的设计模块使用“CC_GC_SHADER_PIPE_CONFIG”寄存器以对非活动的SIMD/QP静态地禁用这些模块。在一实施方式中,当这样的操作会导致不合乎期望的着色器管线的“冻结”时,这样的设计模块不需要审查“GC_USER_SHADER_PIPE_CONFIG”寄存器。0042 参照图2示出的示例性时序图,SIMD的控制可以独立于着色器引擎的活动性而实现。即使特定的S。
26、IMD正忙于执行指令,实施方式在SIMD的活动执行期间可以禁用该SIMD。例如,参照图2,在SIMD0的活动执行期间,SIMD0可以被禁用。0043 在并不意图限制本发明的实施方式中,直到禁用(或停用)的SIMD重新启用,SPI才分配工作给该禁用(或停用)的SIMD。当其中的当前工作和在工作序列管道中的挂起的工作完成时,该禁用的SIMD自然引流(drain)工作线程。一旦清空,动态纹理时钟门控(以下详细说明)可以禁用时钟信号到在禁用的SIMD的逻辑。在禁用的SIMD重新启用时,SPI再次提交新的线程(工作请求)到启用的SIMD。SIMD控制设置通过GRBM寄存器的写操作被编程,且可以通过驱动程。
27、序或SMC微码动态地设置。0044 从系统设计的角度来看,SIMD可以在任何时间(即,即时)被启用或禁用。从能源节约的角度来看,从SIMD启用切换到SIMD禁用状态的时间可以依赖于SIMD管道中的挂起的工作负荷。当SPI准备好分配线程到SIMD时,使禁用的SIMD启用所需要的时间(或反之亦然)与写操作GRBM寄存器速度相当。作为示例,对于这两种情况,所需要的时间可以是几微秒。示例性的操作方案0045 以下是其中使用本发明和动态控制SIMD的实施方式的示例性操作方案。A.基于条件的控制0046 SIMD的动态控制会依赖条件。这样的示例性的条件包括,但不限于:0047 (1)温度行程:当外部源指示。
28、更高的处理器温度,并且有必要降低(或当适用时提说 明 书CN 103080899 A5/11页8高)功率消耗时。0048 (2)电流行程:当外部源指示更高的处理器电流,并且有必要降低(或当适用时提高)功率消耗时。0049 (3)CAC管理:当芯片上CAC管理器通知增加的处理活动,并做出通过启用更多SIMD以提高效能的决定时,或当芯片上CAC管理器通知减少的活动,并做出通过禁用若干SIMD而不降低效能以减少功率的决定时。B.基于应用的控制0050 SIMD的动态控制也可以依赖于应用。这样的示范性应用包括那些允许可变的利用以节约能源的应用。例如,根据本实施方式,从更多的处理器密集型应用(例如,3D。
29、图形处理)到较不密集的应用(例如,DVD回放)的用户应用模式中检测的变化可以使用于SIMD的动态控制。例如,通过用户界面(UI)输入机构或应用编程接口(API)的用户和应用程序输入也可被采用以提供SIMD的动态控制。这些输入机构可以用于处理应用设置所需的功率水平。这些输入机制可以通过软件(如应用或操作系统)、固件、硬件或它们的各种组合来启用。C.基于工作负荷的控制0051 SIMD的动态控制可依赖于工作负荷。举例而言,SIMD的动态控制可以根据下面列出的非限制性的示例性的GPU条件中的一个或多个被触发。0052 (1)静态筛选(screen)条件(无负荷)(TDP的5)0053 (2)空闲条件。
30、(非常轻的负荷)(TDP的10)0054 (3)中等的负荷条件(TDP的50)0055 (4)重的负荷条件(TDP的90)0056 (a)ALU限制0057 (b)纹理提取限制0058 (c)内存吞吐量限制0059 (5)非常重的负荷条件(TDP的90)D.基于请求的控制0060 SIMD的动态控制可以依赖于请求,并依赖于效能需求以及功率需求。驱动程序监控GPU TDP,以及接近最大TDP负荷时,禁用SIMD以降低TDP。使用没有GPU频率和电压调整可以实现这种SIMD的禁用。0061 可以使用驱动程序和/或SMU管理的SMC微码检测和实现上述示例性的控制条件。实施方式也可以允许使用自我控制所。
31、启用的SIMD数目的专用控件。对于启用和禁用SIMD的示例性寄存器设置0062 在上述条件模式(或任何其他情况)中的任何一种中,驱动程序能写入寄存器“GC_USER_SHADER_PIPE_CONFIG”的位字段(例如,位字段31:16)以禁用和启用SIMD。如图3A所示,写入“0”启用SIMD,以及写入“1”禁用SIMD。0063 图形处理单元可以包括两个着色器引擎(例如,SE0和SE1)。在这种情况下,对于这些着色器引擎,实施方式可以启用和禁用不同的SIMD。这可以通过使用如图3B所示的GRBM索引寄存器分开编程着色器引擎而实现。0064 参考图3B,0065 (1)要写入SE0(即着色器。
32、引擎)的“GC_USER_SHADER_PIPE_CONFIG”,可使用下面说 明 书CN 103080899 A6/11页9的示例性指令:0066 0067 (3)要写入到SE0和SE1(即,着色器引擎1)两者的“GC_USER_SHADER_PIPE_CONFIG”,可使用下面的示例性指令:mmGC_USER_SHADER_PIPE_CONFIG0xFC0C0000/禁用SE0和SE1两者的SIMD3 & SIMD20068 每个着色器引擎(例如,SE0,SE1,等)启用的SIMD可以即时改变,只要对每个正在被应用工作的子集中的每个着色器引擎,至少一个SIMD留下启用。换句话说,例如,如果。
33、SIMD被划分用于不同类型的工作,即,镶嵌着色器每边两个SIMD,且其余SIMD共享顶点和像素之间的工作,那么,用于镶嵌着色器的两个SIMD中的一个可被留下启用,且用于像素和顶点的剩余的SIMD中的一个启用。0069 图3C是示出根据一实施方式所述的示例性的整体操作的流程图。0070 在步骤302中,确定所给定的处理操作所需的效能水平。作为示例,这样的效能水平可以依赖于应用、条件、工作负荷、或请求。0071 在步骤304中,一个或多个寄存器被配置以启用和禁用在着色器引擎中不同的SIMD。作为示例,这样的结构可以通过使用如图3B所示的GRBM索引寄存器分开地编程着色器引擎而实现。0072 在步骤。
34、306中,根据在步骤304中配置的寄存器启用或禁用一个或多个寄存器。0073 下节显示可以帮助实施方式在效能和功率之间做出折衷决策的示范性的图表。功率节约与效能影响0074 当SIMD启用时,它消耗功率。对于增加的处理活动,SIMD会消耗更多的功率。相反地,对于较少的活动,SIMD将消耗较少的功率。处于空闲状态时,基于SIMD的尺寸(例如,面积、单元计数等),SIMD将消耗最少的,但是量可以测量的功率。说 明 书CN 103080899 A7/11页100075 图4A的图表显示核心功率随着启用的SIMD的数量的增加而线性增加。该图表描绘了SIMD限制的应用的情况。换句话说,应用是消耗所有可用。
35、的SIMD资源的功率密集型的应用。0076 通常的假设是图形处理单元的效能将随着SIMD的数量的增加而增加。然而,这一陈述对于密集的处理任务通常是真实的。在一些情况下,根据负荷条件,传统的方法可能会浪费功率,因为即使是轻微的处理负荷,这些方法也保持所有的SIMD启用。0077 以下各节讨论用于不同类型的应用的示例性的SIMD效能/瓦图表。(1)具有理想负荷的应用0078 图4B示意用于具有理想负荷的应用的效能/瓦图表。如图4B所示,随着SIMD的数目增加,图形处理单元的效能/瓦线性增加,具有恒定的每SIMD的功率消耗。(2)具有均衡负荷的应用0079 图4C说明用于具有均衡负荷的应用的效能/瓦。
36、图表。如图4C所示,随着SIMD的数目增加,效能/瓦被维持。(3)具有实际负荷的应用0080 通常,在现实的情况下,处理负荷是使得效能/瓦特性介于理想负荷特性和均衡负荷特性负之间。如图4D所示,随着SIMD增加,效能/瓦首先增加,但之后达到饱和并保持在恒定的水平或甚至可能降低。当效能/瓦降低时,更多的功率以相对较低的效能增益被消耗。这可以从图4E和4F分别所示的轻微和中等/繁重的负荷图表中看出。0081 图5A是传统的没有均衡化的SIMD负荷行为的图解说明500。本发明的实施方式还使在单个的SIMD中的利用最大化。通过使利用最大化,减少相应SIMD的附加周期,从而导致额外的功率节约。0082 。
37、当传统SQ块发出指令到相应的SIMD时,对应于该SIMD的忙信号被传输,持续时间通常为13个时钟周期502。这13个周期之后是四个周期的工作周期504,然后接着是25个周期的空闲或瀑布周期506。图5A示出其中在一阵列中(类似于图1A的阵列186)的所有的SIMD被激活,但每个SIMD没有得到充分利用的示例。在该示例中,每个SIMD通过仅仅空闲或部分的瀑布将浪费38个附加周期(13+25),如图5A所示。0083 然而,附加周期的百分比随着更多指令被发送到每个SIMD而减少,导致管道内的磁泡(bubble)较少,并因此导致更好地利用。图5B是根据本发明的原理提高利用的示意图。0084 图5B是。
38、根据本发明的实施方式所述的SIMD负荷行为的说明示意图508。图5B示出其中在阵列186中只有两个SIMD被启用的示例。然而,在图5B中,这两个SIMD执行与上述图5A中所有可用的SIMD执行的工作数量相同的工作。0085 在图5B中,根据使每个SIMD的利用最大化的负荷方案,空闲周期510包括13个周期。空闲周期510之后接着是包括100个工作的周期的工作周期512。工作周期512之后是持续25个周期的空闲周期514。0086 在图5B中,38个附加周期仍然被浪费,但它们仅在两个SIMD中浪费,而不是在该阵列的可用SIMD中的每一个中浪费。此外,指令本地回路(back to back)地发出利用瀑布周期以压缩前面的指令的执行。这两个因素相结合大大提高了活动的SIMD的有效的利用周期。因此,图5B的利用配置执行相同数量的工作,提供相同的效能水平,但消耗明显更说 明 书CN 103080899 A10。