可变波阵面大小制造技术

技术编号:21958945 阅读:124 留言:0更新日期:2019-08-24 22:15
公开了用于在处理器上处理可变波阵面大小的系统、设备和方法。在一个实施方案中,处理器包括至少调度器、高速缓存和多个执行单元。当在第一模式下操作时,所述处理器在继续到着色器程序的下一指令之前在波阵面的多个部分执行相同的指令。当在第二模式下操作时,所述处理器在波阵面的第一部分执行一组指令。在所述第二模式中,当所述处理器在所述波阵面的所述第一部分完成该组指令的执行时,所述处理器在所述波阵面的第二部分执行该组指令,依此类推,直到所述波阵面的所有部分都已经被处理。所述处理器基于一个或多个条件来确定所述操作模式。

Variable wavefront size

【技术实现步骤摘要】
【国外来华专利技术】可变波阵面大小
技术介绍
相关技术的描述图形处理单元(GPU)是被配置为执行图形处理任务的复杂集成电路。例如,GPU可以执行最终用户应用程序(例如视频游戏应用程序)所需的图形处理任务。GPU也越来越多地用于执行与图形无关的其他任务。GPU可以是分立的装置,或者可以与另一处理器(例如中央处理单元(CPU))包括在同一装置中。在许多应用中,诸如GPU中的图形处理,对一系列工作项(也可以称为线程)进行处理,以便输出最终结果。在许多现代并行处理器中,例如,单指令多数据(SIMD)核中的处理器同步地执行一组工作项。由单独的处理器处理的多个相同的同步工作项被称为波阵面或线程束(warp)。在处理期间,一个或多个SIMD核同时执行多个波阵面。当波阵面中的所有工作项都完成处理时,波阵面的执行终止。每个波阵面都包括使用相同的指令集并行处理的多个工作项。在一些情况下,波阵面中的工作项数量与SIMD核的执行单元数量不匹配。在一个实施方案中,SIMD核的每个执行单元都是算术逻辑单元(ALU)。当波阵面中的工作项数量与SIMD核的执行单元数量不匹配时,确定如何调度指令以供执行可能具有挑战性。附图说明通过结合附图参考以下描述,可以更好地理解本文描述的方法和机制的优点,在这些附图中:图1是计算系统的一个实施方案的框图。图2是GPU的一个实施方案的框图。图3是一组矢量通用寄存器(VGPR)的一个实施方案的框图。图4示出了示例波阵面和示例指令序列的一个实施方案。图5示出了处理器的第一操作模式的一个实施方案的图解。图6示出了处理器的第二操作模式的一个实施方案的图解。图7是示出用于在处理器上调度指令的方法的一个实施方案的概括流程图。图8是示出用于确定在并行处理器中使用哪种操作模式的方法的一个实施方案的概括流程图。图9是示出用于为并行处理器利用不同操作模式的方法的一个实施方案的概括流程图。具体实施方式在以下描述中,阐述了许多具体细节以提供对本文提出的方法和机制的透彻理解。然而,本领域的普通技术人员应该认识到,可以在没有这些具体细节的情况下实施各种实施方案。在一些情况下,未详细示出熟知的结构、部件、信号、计算机程序指令和技术以避免使本文描述的方法模糊。应当理解,为了说明的简单和清楚,图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其他元件被夸大。公开了用于在处理器上处理可变波阵面大小的各种系统、设备、方法和计算机可读介质。当在第一模式下操作时,处理器在继续到着色器程序的下一指令之前在波阵面的多个部分执行相同的指令。当在第二模式下操作时,处理器在波阵面的第一部分执行一组指令。在第二模式中,当处理器在波阵面的第一部分完成该组指令的执行时,处理器在波阵面的第二部分执行该组指令,依此类推,直到波阵面的所有部分都已经被处理。然后,处理器继续执行着色器程序的后续指令。在一个实施方案中,在代码序列内声明某指示,该指示指定对程序的给定区域使用哪种模式。在另一个实施方案中,编译器在生成可执行代码时生成指示,该指示指定处理器操作模式。在另一个实施方案中,处理器包括控制单元,该控制单元确定处理器操作模式。现在参考图1,示出了计算系统100的一个实施方案的框图。在一个实施方案中,计算系统100包括耦合到存储器150的片上系统(SoC)105。SoC105也可以称为集成电路(IC)。在一个实施方案中,SoC105包括处理单元115A-N、输入/输出(I/O)接口110、共享高速缓存120A-B、结构125、图形处理单元(GPU)130和存储器控制器140。SoC105还可以包括图1中未示出以免使附图模糊的其他部件。处理单元115A-N代表任何数量和类型的处理单元。在一个实施方案中,处理单元115A-N是中央处理单元(CPU)核。在另一个实施方案中,处理单元115A-N中的一个或多个是其他类型的处理单元(例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP))。处理单元115A-N耦合到共享高速缓存120A-B和结构125。在一个实施方案中,处理单元115A-N被配置为执行特定指令集架构(ISA)的指令。每个处理单元115A-N都包括一个或多个执行单元、高速缓冲存储器、调度器、分支预测电路等。在一个实施方案中,处理单元115A-N被配置为执行系统100的主控制软件,诸如操作系统。通常,在使用期间由处理单元115A-N执行的软件可以控制系统100的其他部件以实现系统100的期望功能。处理单元115A-N还可以执行其他软件,诸如应用程序。GPU130包括至少计算单元145A-N,这些计算单元表示用于图形或通用处理的任何数量和类型的计算单元。计算单元145A-N也可以称为“着色器阵列”、“着色器引擎”、“单指令多数据(SIMD)单元”或“SIMD核”。每个计算单元145A-N包括多个执行单元。GPU130耦合到共享高速缓存120A-B和结构125。在一个实施方案中,GPU130被配置为执行图形管线操作,诸如绘制命令、像素操作、几何计算以及用于将图像渲染到显示器的其他操作。在另一个实施方案中,GPU130被配置为执行与图形无关的操作。在另一个实施方案中,GPU130被配置为既执行图形操作也执行与图形无关的操作。GPU130被配置为接收着色器程序的指令和波阵面以供执行。在一个实施方案中,GPU130被配置为在不同模式下操作。在一个实施方案中,每个波阵面中的工作项的数量大于GPU130中的执行单元的数量。在一个实施方案中,响应于检测到第一指示,GPU130调度用于在第一波阵面的第一部分和第二部分执行的第一指令,然后调度用于在第一波阵面的第一部分执行的第二指令。对于着色器程序的其他指令以及对于其他波阵面,只要检测到第一指示,GPU130就遵循该模式。注意,“调度指令”也可以称为“发出指令”。根据该实施方案,可以用软件指定第一指示,或者可以由GPU130基于一个或多个操作条件生成第一指示。在一个实施方案中,第一指示是使GPU130在第一模式下操作的命令。在一个实施方案中,响应于未检测到第一指示,GPU130调度用于在第一波阵面的第一部分执行的第一指令和第二指令,然后调度用于在第一波阵面的第二部分执行的第一指令。对于着色器程序的其他指令以及对于其他波阵面,只要未检测到第一指示,GPU130就遵循该模式。I/O接口110耦合到结构125,并且I/O接口110代表任何数量和类型的接口(例如,外围部件互连(PCI)总线、PCI扩展(PCI-X)、PCIE(PCIExpress)总线、千兆以太网(GBE)总线、通用串行总线(USB))。各种类型的外围装置可以耦合到I/O接口110。此类外围装置包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其他类型的游戏控制器、媒体记录装置、外部存储装置、网络接口卡等。SoC105耦合到存储器150,该存储器包括一个或多个存储器模块。每个存储器模块都包括安装在其上的一个或多个存储器装置。在一些实施方案中,存储器150包括安装在母板或其他载体上的一个或多个存储器装置,SoC105也安装在该母板或其他载体上。实施的RAM可以是静态RAM(SRAM)、动态RAM(DRAM)、电阻RAM(ReRAM)本文档来自技高网...

【技术保护点】
1.一种处理器,其包括:多个执行单元;以及调度器;其中所述调度器被配置为:响应于检测到第一指示,调度所述多个执行单元以在波阵面的第一部分和第二部分执行第一指令,然后调度所述多个执行单元以在所述波阵面的所述第一部分执行第二指令;以及响应于未检测到所述第一指示,调度所述多个执行单元以在波阵面的所述第一部分执行所述第一指令和所述第二指令,然后调度所述多个执行单元以在所述波阵面的所述第二部分执行所述第一指令。

【技术特征摘要】
【国外来华专利技术】2017.03.03 EP 17159105.0;2017.02.22 US 15/439,5401.一种处理器,其包括:多个执行单元;以及调度器;其中所述调度器被配置为:响应于检测到第一指示,调度所述多个执行单元以在波阵面的第一部分和第二部分执行第一指令,然后调度所述多个执行单元以在所述波阵面的所述第一部分执行第二指令;以及响应于未检测到所述第一指示,调度所述多个执行单元以在波阵面的所述第一部分执行所述第一指令和所述第二指令,然后调度所述多个执行单元以在所述波阵面的所述第二部分执行所述第一指令。2.如权利要求1所述的处理器,其中所述第一指示是在软件指令内声明的参数。3.如权利要求1所述的处理器,其中所述处理器被配置为在多个操作模式下操作,并且其中所述第一指示是使所述处理器在第一模式下操作的命令。4.如权利要求3所述的处理器,其中所述处理器还包括多个通用寄存器(GPR),并且其中所述处理器被配置为响应于在第二模式下操作,在所述波阵面的所述第一部分与所述波阵面的所述第二部分之间共享一个或多个GPR。5.如权利要求1所述的处理器,其中所述处理器还包括高速缓存并且被配置为:确定所述波阵面的高速缓存未命中率;以及响应于确定所述波阵面的所述高速缓存未命中率小于阈值,生成所述第一指示。6.如权利要求1所述的处理器,其中所述波阵面中的工作项的数量大于所述多个执行单元的数量。7.如权利要求1所述的处理器,其中所述波阵面中的工作项的数量是64,并且其中所述多个执行单元的数量是32。8.一种用于计算装置的方法,所述方法包括:响应于检测到第一指示,调度多个执行单元以在波阵面的第一部分和第二部分执行第一指令,然后调度所述多个执行单元以在所述波阵面的所述第一部分执行第二指令;以及响应于未检测到所述第一指示,调度所述多个执行单元以在波阵面的所述第一部分执行所述第一指令和所述第二指令,然后调度所述多个执行单元以在所述波阵面的所述第二部分执行所述第一指令。9.如权利要求8所...

【专利技术属性】
技术研发人员:迈克尔·J·曼托尔布莱恩·D·恩贝林马克·福勒
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1