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

用于解决线程发散的方法和系统技术方案

技术编号:8934401 阅读:188 留言:0更新日期:2013-07-18 02:57
地址发散单元检测线程组中的线程之间的发散,并且随后将那些线程分为非发散线程子集和发散线程子集。在一个实施例中,地址发散单元导致发出与非发散线程子集相关联的指令用于在并行处理单元上执行,同时导致重新获取并重新发出与发散线程子集相关联的指令用于执行。

【技术实现步骤摘要】
用于解决线程发散的方法和系统
本专利技术总地涉及多线程处理,并且,更具体地,涉及一种用于解决线程发散的方法和系统。
技术介绍
“线程组”是以单指令多线程(SMT)或单指令多数据(SMD)方式来共同执行相同的指令的并行线程的集合。为了实施各种不同的处理任务,并行处理单元(PPU)可以同时发出和执行许多并行线程。当执行给定的线程时,该线程可以从特定存储器位置读取数据或写数据至特定存储器位置,诸如寄存器堆。通常,线程组中的各种线程均以相同的存储器位置为目标。然而,某些类型的指令可能导致出现分支,从而导致一些线程以一个存储器位置为目标,而其他线程以其他存储器位置为目标。本领域称之为“线程发散(divergence)”。采用常规的PPU,线程发散可以导致系统范围的PPU故障。因此,本领域需要的是用于解决线程组内的线程之间的发散的技术。附图说明为了详细地理解本专利技术的上述特征,对于以上简要概括的专利技术,可以参照实施例进行更为具体的描述,其中一些实施例示出于附图中。然而,应注意的是,附图中示出的只是本专利技术的代表性实施例,因此不应被认为是对本专利技术的范围的限制,本专利技术可以适用于其他同等有效的实施例。图1是示出了配置为实现本专利技术的一个或多个方面的计算机系统的框图2是根据本专利技术一个实施例的、用于图1的计算机系统的并行处理子系统的框图3A是根据本专利技术一个实施例的、图2的前端的框图3B是根据本专利技术一个实施例的、图2的并行处理单元之一内的通用处理集群的框图3C是根据本专利技术一个实施例的、图3B的流多处理器的一部分的框图4是根据本专利技术一个实施例的、更详细地示出图3C的卷绕包(warp)调度器和指令单元的框图;以及图5是根据本专利技术一个实施例的、用于解决线程组内的线程之间发散的方法步骤的流程图。具体实施方式在下面的描述中,将阐述大量的详细内容以提供对本专利技术更深入的理解。然而,本
的技术人员应该清楚,本专利技术可以在没有一个或多个这些具体细节的情况下得以实施。总而言之,并行处理单元内的地址发散单元将线程组内的线程分为非发散线程子集和发散线程子集。地址发散单元导致发出非发散线程子集用于在并行处理单元上执行,同时导致重新获取和重新发出与发散线程子集相关联的指令。系统概述图1是示出了配置为实现本专利技术的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU) 102和系统存储器104,两者经由可包括存储器桥105的互连路径通信。存储器桥105例如可以是北桥芯片,经由总线或其他通信路径106(例如,超传输链接)连接到I/O (输入/输出)桥107。I/O桥107例如可以是南桥芯片,从一个或多个用户输入设备108 (例如,键盘、鼠标)接收用户输入,并将该输入经由通信路径106和存储器桥105转发至CPU102。并行处理子系统112经由总线或第二通信路径113(例如,外围部件互连(PCI) Express、加速图形端口或超传输链接)耦合至存储器桥105 ;在一个实施例中,并行处理子系统112是将像素传递到显示设备110 (例如,常规的基于阴极射线管或液晶显示器的监视器)的图形子系统。系统盘114也连接到I/O桥107。开关116为I/O桥107和诸如网络适配器118以及各种插卡(add-1n card) 120和121的其他部件之间提供了连接。其他部件(未明确示出)也可以连接到I/O桥107,包括通用串行总线USB或其他端口连接、光盘(⑶)驱动器、数字视频光盘(DVD)驱动器、胶片记录设备等。图1中所示的包括具体命名为通信路径106和113的各种通信路径可以使用任何合适的协议来实现,诸如PCI Express, AGP (加速图形端口)、超传输或任何其他总线或点对点通信协议,并且不同设备之间的连接可以使用本领域已知的不同协议。在一个实施例中,并行处理子系统112包含被优化用于图形和视频处理的电路,例如包括视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,并行处理子系统112包含被优化用于通用处理的电路,同时保留底层的(underlying)计算架构,本文将进行更为详细的描述。在又一个实施例中,并行处理子系统112可与单个子系统中的一个或多个其他系统元件集成,诸如结合存储器桥105、CPU 102和I/O桥107以形成片上系统(SoC)。应理解的是,本文所示系统是例示性的,可以对其进行变形和修改。可根据需要修改连接拓扑结构,包括桥的数目和布置、CPU 102的数目以及并行处理子系统112的数目。例如,在一些实施例中,系统存储器104直接连接到CPU 102而非通过桥连接,并且其他设备经由存储器桥105和CPU 102与系统存储器104通信。在其他替代拓扑结构中,并行处理子系统112连接到I/O桥107或者直接连接到CPU 102,而非连接到存储器桥105。在又一些实施例中,I/O桥107和存储器桥105可能被集成到单个芯片中而不是作为一个或多个分立的设备存在。大型实施例可包括两个或更多CPU 102以及包括两个或更多并行处理子系统112。本文所示特定部件是可选的;例如,任何数目的插卡或外围设备都可能得到支持。在一些实施例中,开关116被省去,并且网络适配器118和插卡120、121直接连接到I/0 桥 107。图2示出了根据本专利技术一个实施例的并行处理子系统112。如图所示,并行处理子系统112包括一个或多个并行处理单元(Pro)202,其每一个均耦合至本地并行处理(PP)存储器204。一般来讲,并行处理子系统包括U个PPU,其中US I。(本文中,相似对象的多个实例用标识该对象的参考数字并根据需要结合标识该实体的带括号的数字加以表示)。PPU202和并行处理存储器204可用一个或多个诸如可编程处理器、专用集成电路(ASIC)或存储器设备这类集成电路设备来实现,或者以任何其他在技术上可行的方式来实现。再次参照图1以及图2,在一些实施例中,并行处理子系统112中的一些或所有PPU 202是具有渲染管线的图形处理器,可以配置为实施与下述各项相关的各种操作:由图形数据生成像素数据,所述图形数据是由CPU 102和/或系统存储器104经由存储器桥105和第二通信路径113而供给的;与本地并行处理存储器204 (可以作为图形存储器加以使用,包括例如常规的帧缓冲区)交互,以存储和更新像素数据;将像素数据传递到显示设备110 ;等等。在一些实施例中,并行处理子系统112可包括作为图形处理器而操作的一个或多个PPU 202以及供通用计算使用的一个或多个其他PPU 202。这些PPU可相同或不同,并且每个PTO均可具有其专用的并行处理存储器设备或非专用的并行处理存储器设备。并行处理子系统112中的一个或多个PPU 202可向显示设备110输出数据,或者并行处理子系统112中的每个PPU 202均可向一个或多个显示设备110输出数据。操作中,CPU 102是计算机系统100的主处理器,控制并协调其他系统部件的操作。特别是,CPU 102发出控制PPU 202的操作的命令。在一些实施例中,CPU 102将针对每个PPU 202的命令流写入到数据结构(图1和图2中均未明确示出)中,所述数据结构可位于系统存储器104、并行处理存储本文档来自技高网
...

【技术保护点】
一种用于解决在并行处理单元上执行的线程组中的线程之间的发散的计算机实现的方法,所述方法包括:获取与所述线程相关联的指令;将所述线程分为非发散线程子集和至少一个发散线程子集;以及导致发出所述非发散线程子集用于在所述并行处理单元上执行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杰克·肖凯特仇小钢杰夫·塔基潇耀明罗伯特·J·斯托尔奥利维尔·吉普
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1