当前位置: 首页 > 专利查询>辉达公司专利>正文

用于基于活跃分析的再具体化以减少寄存器不足并提高并行度的技术制造技术

技术编号:9467511 阅读:104 留言:0更新日期:2013-12-19 03:47
并行处理单元(PPU)内的设备编译器和连接器配置为通过将入口活跃(live-in)变量的子集再具体化用于针对程序代码所生成的控制流图中的特定块来优化使能协处理器的应用的该程序代码。设备编译器和连接器识别具有最大数目的入口活跃变量的控制流图的块,然后选择与再具体化授予其最大所估计的收益的所识别的块相关联的入口活跃变量的子集。将入口活跃变量的给定子集再具体化的收益是基于所减少的入口活跃变量的数目、再具体化的成本、以及再具体化的潜在风险来确定的。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】并行处理单元(PPU)内的设备编译器和连接器配置为通过将入口活跃(live-in)变量的子集再具体化用于针对程序代码所生成的控制流图中的特定块来优化使能协处理器的应用的该程序代码。设备编译器和连接器识别具有最大数目的入口活跃变量的控制流图的块,然后选择与再具体化授予其最大所估计的收益的所识别的块相关联的入口活跃变量的子集。将入口活跃变量的给定子集再具体化的收益是基于所减少的入口活跃变量的数目、再具体化的成本、以及再具体化的潜在风险来确定的。【专利说明】用于基于活跃分析的再具体化以减少寄存器不足并提高并行度的技术相关串请的交叉引用本申请要求于2011年11月7日提交的序列号为61/556,782的美国临时专利申请、以及于2012年11月5日提交的序列号为13/669,401的美国专利申请的权益。在此通过援引的方式对这些申请的每个加以合并。
本专利技术总地涉及用于并行处理单元(PTO)的编译器,并且,更具体地,涉及一种用于基于活跃(live)分析的再具体化(rematerialization)以减少寄存器不足并提高并行度的技术。
技术介绍
图形处理单元(GPU)已经随时间演变以支持面向图形的操作以外的广泛的操作。实际上,现代GPU能够执行任意程序指令。这种GPU —般包括编译程序指令用于在GPU内所包括的一个或多个处理内核上执行的编译器。每个这种内核可与其他执行执行线程的处理内核并行执行一个或多个不同的执行线程。当GPU内的处理内核执行程序指令的集合时,处理内核可将与这些指令相关联的程序变量存储在寄存器存储器中。如本领域所知的,当寄存器存储器完全由程序变量所充满时,附加的程序变量可能“溢出”到系统存储器。常规方法对“溢出”的一个问题在于系统存储器比寄存器存储器具有高得多的时延。因此,在“溢出”事件发生后,程序指令执行的速度可能显著减小,这是因为不得不从系统存储器而非寄存器存储器访问程序变量。第二个问题在于在处理单元内给定的处理内核能够同时执行的线程的数目取决于可用的寄存器存储器。因此,用程序变量填充寄存器存储器最后可能减小同时执行的线程数并因此减小GPU的整体处理吞吐量。因此,本领域所需要的是用于管理GPU内的寄存器存储器的更有效的技术。
技术实现思路
本专利技术的一个实施例阐述了用于优化能够被编译用于在并行处理单元(PTO)上执行的程序代码的计算机实现的方法,该方法包括针对程序代码生成控制流图、识别控制流图中的、与控制流图中的其他块相比具有最大数目的入口活跃(live-1n)变量的第一块、通过对与第一块相关联的入口活跃变量的不同子集实施收益分析来选择与第一块相关联的入口活跃变量的第一子集、以及通过将入口活跃变量的第一子集再具体化到在控制流图中的第一块之后的控制流图中的第二块中来优化程序代码,其中经优化的程序代码将在PPU上执行。所公开的技术的一个优点是将入口活跃变量的某些子集再具体化减小了寄存器不足,从而减少溢出事件的可能性。减小寄存器不足还允许较大数目的执行线程在PPU内同时执行,从而增加PPU的整体处理吞吐量。【专利附图】【附图说明】因此,可以详细地理解本专利技术的上述特征,并且可以参考实施例得到对如上面所简要概括的本公开更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施例,因此不应被认为是对其范围的限制,本公开可以具有其他等效的实施例。图1是示出了配置为实现本专利技术的一个或多个方面的计算机系统的框图;图2是根据本专利技术的一个实施例的、用于图1的计算机系统的并行处理子系统的框图;图3示出了根据本专利技术的一个实施例的、用来编译使能协处理器的应用的构建过程;图4是根据本专利技术的一个实施例的、用于用入口活跃变量的集合来实施基于活跃分析的再具体化的方法步骤的流程图;图5是根据本专利技术的一个实施例的、用于对入口活跃变量的集合实施收益分析的方法步骤的流程图;图6根据本专利技术的一个实施例阐述示范性控制流图以说明设备编译器和连接器(linker)的操作。【具体实施方式】在下面的描述中,将阐述大量的具体细节以提供对本专利技术更透彻的理解。然而,本领域的技术人员应该清楚,本专利技术可以在没有一个或多个这些具体细节的情况下得以实施。系统概述图1为示出了配置为实现本专利技术的一个或多个方面的计算机系统100的框图。计算机系统100包括经由可以包括存储器桥105的互连路径通信的中央处理单元(CPU) 102和系统存储器104。系统存储器104包括驱动程序103、使能协处理器的应用134和操作系统130的映像。操作系统130提供用于管理和协调计算机系统100的操作的详细指令。驱动程序103提供用于管理和协调并行处理子系统112和驻留在其中的一个或多个并行处理单元(PPU)的操作的详细指令,如下文更详细地结合图2所描述的。驱动程序103还提供编译设施用于生成经特定优化用于这种PPU的机器码,如下文更详细地结合图3-6所描述的。使能协处理器的应用134包含能够在CPU102和PPU上执行的指令,那些指令以诸如虚拟汇编的抽象格式所实现,并映射到用于并行处理子系统112内的PPU的机器码。用于那些PPU的机器码可存储在系统存储器104中或存储在耦连到PI3U的存储器中。在一个实施例中,使能协处理器的应用134表不包含意图在并行处理子系统112上执行的编程指令的CUDA?代码。在本描述的上下文中,术语“应用”或“程序”指的是可使用处理器所执行的任意计算机代码、指令和/或函数。例如,在各种实施例中,使能协处理器的应用134可包括C代码、C++代码等。在一个实施例中,使能协处理器的应用134可包括计算机语目(例如C、C++等)的语目扩展。存储器桥105可以是例如北桥芯片,经由总线或其他通信路径106 (例如超传输(HyperTransport)链路)连接到输入/输出(I/O)桥107。I/O桥107,其可以是例如南桥芯片,从一个或多个用户输入设备108 (例如键盘、鼠标)接收用户输入并且经由通信路径106和存储器桥105将该输入转发到CPU102。并行处理子系统112经由总线或第二通信路径113 (例如外围部件互连(PCIe)、加速图形端口(AGP)或超传输链路)耦连到存储器桥105 ;在一个实施例中,并行处理子系统112是将像素传递到可以是任意传统的阴极射线管、液晶显示器、发光二极管显示器等等的显示设备110的图形子系统。系统盘114也连接到I/O桥107并可配置为存储内容和应用和数据用于由CPU102和并行处理子系统112使用。系统盘114提供非易失性存储用于应用和数据并可包括固定或可移动的硬盘驱动器、闪存设备以及压缩光盘(CD)只读存储器(ROM)、数字视频光盘(DVD) ROM、蓝光、高分辨率(HD) DVD或其他磁、光、或固态存储设备。交换器116提供I/O桥107与诸如网络适配器118以及各种插卡120和121的其他部件之间的连接。其他部件(未明确示出),包括通用串行总线(USB)或其他端口连接、⑶驱动器、DVD驱动器、胶片录制设备及类似部件,也可以连接到I/O桥107。图1所示的各种通信路径包括具体命名的通信路径106和113可以使用任何适合的协议实现,诸如PCIe、AGP、超传输或者任何本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:孔祥云王建中林源维诺德·格罗弗
申请(专利权)人:辉达公司
类型:
国别省市:

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

1