[发明专利]用于解决线程发散的方法和系统有效
| 申请号: | 201310012208.0 | 申请日: | 2013-01-11 |
| 公开(公告)号: | CN103207774A | 公开(公告)日: | 2013-07-17 |
| 发明(设计)人: | 杰克·肖凯特;仇小钢;杰夫·塔基;潇耀明;罗伯特·J·斯托尔;奥利维尔·吉普 | 申请(专利权)人: | 辉达公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30;G06F12/02 |
| 代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 董巍;徐丁峰 |
| 地址: | 美国加利*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 解决 线程 发散 方法 系统 | ||
技术领域
本发明总地涉及多线程处理,并且,更具体地,涉及一种用于解决线程发散的方法和系统。
背景技术
“线程组”是以单指令多线程(SIMT)或单指令多数据(SIMD)方式来共同执行相同的指令的并行线程的集合。为了实施各种不同的处理任务,并行处理单元(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-in card)120和121的其他部件之间提供了连接。其他部件(未明确示出)也可以连接到I/O桥107,包括通用串行总线USB或其他端口连接、光盘(CD)驱动器、数字视频光盘(DVD)驱动器、胶片记录设备等。图1中所示的包括具体命名为通信路径106和113的各种通信路径可以使用任何合适的协议来实现,诸如PCI Express、AGP(加速图形端口)、超传输或任何其他总线或点对点通信协议,并且不同设备之间的连接可以使用本领域已知的不同协议。
在一个实施例中,并行处理子系统112包含被优化用于图形和视频处理的电路,例如包括视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,并行处理子系统112包含被优化用于通用处理的电路,同时保留底层的(underlying)计算架构,本文将进行更为详细的描述。在又一个实施例中,并行处理子系统112可与单个子系统中的一个或多个其他系统元件集成,诸如结合存储器桥105、CPU 102和I/O桥107以形成片上系统(SoC)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310012208.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多功能麦克风组装体
- 下一篇:探针针压校正方法及其校正设备





