[发明专利]并行线程处理器中的一致分支指令有效

专利信息
申请号: 201080053460.0 申请日: 2010-09-24
公开(公告)号: CN102640131A 公开(公告)日: 2012-08-15
发明(设计)人: 约翰·R·尼科尔斯;理查德·克雷格·约翰逊;罗伯特·史蒂文·格兰维尔;吉列尔莫·胡安·罗扎斯 申请(专利权)人: 辉达公司
主分类号: G06F15/00 分类号: G06F15/00
代理公司: 北京市磐华律师事务所 11336 代理人: 顾珊;魏宁
地址: 美国加利*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 并行 线程 处理器 中的 一致 分支 指令
【说明书】:

相关申请的交叉引用

本申请要求于2009年9月24日提交的序列号为61/245,617的美国临时专利申请、于2010年6月14日提交的序列号为12/815,226的美国专利申请以及于2010年6月14日提交的序列号为12/815,201的美国专利申请的优先权。

技术领域

本发明总体上涉及并行图形处理领域,更具体地,涉及并行线程处理器中的分支指令。

背景技术

目前的并行图形数据处理包括被开发用于对图形数据执行诸如线性插值、曲面细分(tessellation)、光栅化、纹理映射、深度测试等特定操作的系统和方法。传统上,图形处理器使用固定的函数计算单元处理图形数据;但是,近来,图形处理器的各部分已可编程,从而使得这类处理器能够支持种类繁多的用于处理顶点和片段(fragment)数据的操作。

为了进一步提高性能,图形处理器一般采用诸如管线化这类处理技术,这种管线化处理技术试图贯穿图形管线的不同部分并行地处理尽可能多的图形数据。具有单指令多线程(SIMT)架构的并行图形处理器被设计为最大化图形管线中的并行处理量。在SIMT架构中,并行线程组试图尽可能经常一起同步执行程序指令,以提高处理效率。

然而,当程序包含断言(条件)分支指令(predicated(conditional)branch instruction)、并且一些线程执行(取用)该分支至目标指令地址、而其他线程不执行该分支并跳转(fall through)至下一个指令时,一般会出现问题。在一些现有技术系统中,断言分支指令由正在编译条件代码的编译器或由编程人员插入代码序列中。断言分支指令与断言和/或条件代码测试相关联,当断言值为真并且条件代码测试为真时,线程组中的每个线程均只执行分支指令。断言分支指令使用断言约束(guard)寄存器和/或条件代码(CC)测试来实现条件分支,并且具有下列三种形式:

Pg BRA target;//如果(Pg)则转至目标;

BRA CC.LT target;//如果(CC.LT)则转至目标;

Pg BRA CC.LT target;//如果(Pg && CC.LT)则转至目标;“非”断言约束!Pg使用断言寄存器值的布尔补码。如果省略断言约束Pg并省略条件代码测试,则分支是非条件的。

利用线程组中的P个线程,断言或条件指令序列可以使用断言分支指令,或者可以使用不带分支指令的断言指令。依据用于P个线程的断言寄存器和条件代码测试的运行时(run-time)值,在使用断言分支的代码中会出现两个不同的运行时情形,并且在不带分支的断言代码中出现第三个情形。在第一个情形中,P个线程全都具有相同的断言约束寄存器Pg值和相同的条件代码测试结果,因而P个线程全都进行分支转移(branch)至目标,或者P个线程全都跳转并执行紧跟在后的指令。线程组被收敛(converged),并且卷绕包(warp)中的P个线程全都遵循相同的执行路径。在第二个情形中,一些线程具有真Pg值而另一些线程具有假Pg值。在此情形下,具有真Pg值的线程进行分支转移至目标,而其余线程跳转并执行紧跟在后的指令。因为一些线程进行分支转移而另一些不进行分支转移,所以线程组发散。当线程组被发散时,使用不同组的激活线程来执行这两个代码路径,并且一些现有技术系统使用同步令牌(token)的堆栈来管理发散且同步的线程组。在执行序列中的某一点处,执行线程组同步,以使发散的线程组重收敛。该同步操作增加了额外的指令和同步堆栈操作,从而降低了执行效率并且增大了总开销。

在第三个情形中,不同于使用断言分支指令来实现可以使线程组发散的条件代码序列,而只使用断言指令。基于互补的Pg和!Pg断言(或者对互补的条件代码测试)对指令进行断言,这样用不同组的激活线程来执行这两个代码路径,而不使线程组发散。断言代码序列的执行要求迫使线程组中的线程全都通过代码的每个部分,而不管任何线程是否执行该代码。假设SIMT处理器可执行多达800个线程,则这样的设计是低效率的,这是因为可以不必迫使数以百计的线程通过它们不执行的代码路径。在程序设计时或编译时,编程人员或编译器难以预测将会出现哪些运行时情形,因此难以选择使用哪一个指令序列来获得对条件代码序列的高效执行。

据此,本领域中需要一种在具有SIMT架构的系统中用于条件代码序列的更加高效的分支转移机制,该分支转移机制不会使线程组发散或者执行不必要的指令。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201080053460.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top