[发明专利]用于图形处理器的线程分派有效
申请号: | 201580061044.8 | 申请日: | 2015-11-20 |
公开(公告)号: | CN107250976B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 吴海华;J·戈德 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06T1/20 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 黄嵩泉 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 图形 处理器 线程 分派 | ||
公开了用于分派图形内核的线程以供执行从而增大依赖线程与关联线程之间的间隔的技术。可以通过分派以下线程来增大分派间隔:关联线程、随后是没有任何依赖性的线程、随后是依赖于先前分派的关联线程的线程。因此,可以增大依赖线程与其关联线程之间的间隔,从而增大并行性。
背景技术
现代图形处理器包括核(core)阵列,称为对指令进行处理的执行单元(executionunit,EU)。指令集包括内核(kernel)。采用多线程的形式将内核分派到GPU。GPU使用EU来处理内核的线程(例如,执行与内核对应的指令)。通常GPU一次使用多个EU并行地处理线程。
许多内核(特别是对应于经编码的显示数据的内核)包含有在内核中的多个线程之间的依赖性(dependency)。换言之,内核中线程中的一些线程的执行在可启动它们自身的执行之前必须等待执行它们所依赖的那些线程被执行。因此,仅内核中全部数量线程的子集可由GPU并行地执行。
常规意义上而言,GPU通过首先分派那些没有任何依赖性的线程并最后分派那些有依赖性的线程来执行内核。这有时被称为波前分派(wavefront dispatching)。然而,正如将理解的那样,具有大量空间线程依赖性的内核在根据波前分派方法被分派时将经常经历降低的并行性。鉴于以上内容,提供了本公开内容。
附图说明
图1展示了线程分派系统的实施例。
图2展示了可以在图1的系统中实现的图形处理器的实施例。
图3-4展示了用于分派线程的逻辑流程的示例。
图5示出了根据实施例的存储介质。
图6-7展示了根据实施例的图形内核的示例。
图8A-8D展示了描绘图6-7的图形内核之间的依赖关系的表。
图9A-9D展示了描绘图6-7的图形内核之间的依赖关系的表。
图10展示了描绘图6-7的图形内核的示例分派顺序的表。
图11展示了描绘图形内核的示例分派顺序的表。
图12展示了示出图形内核的超级块的表。
图13-14展示了用于分派线程的逻辑流程的示例。
图15-16展示出了示出图形内核的超级块的波内的线程的表。
图17示出了根据实施例的存储介质。
具体实施方式
各个实施例通常涉及用于分配图形内核的线程以供执行的技术。更具体地,本公开提供了分派图形内核的线程以增大依赖线程与关联线程(例如,执行所依赖的线程)之间的间隔。因此,本公开可以分派线程以降低由于在依赖线程使用关联线程的结果来启动执行之前等待关联线程结束执行而引起的计算损失(例如,并行性降低等)。
在一些实现方式中,可以通过分派以下进程来增大分派间隔:关联线程(例如,其他线程执行所依赖的那些线程)、随后是没有任何依赖性的线程、随后是依赖于先前分派的关联线程。因此,可以增大依赖线程与其关联线程之间的间隔,从而增大并行性。
现在参考附图,其中,贯穿附图相同的参考号用来表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其彻底的理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其他情形下,以框图的形式示出了众所周知的结构和设备,以便促进对其的描述。本发明将涵盖落在权利要求书的范围内的所有修改、等同物和替代方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580061044.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种裸眼3D显示方法及装置
- 下一篇:一种发酵罐