【技术实现步骤摘要】
以单独的线程粒度使用单级同步的前向进展保证
[0001]本文档总体上关于数据处理,并且更具体地关于经由通用图形处理单元进行的数据处理。
技术介绍
[0002]当前的并行图形数据处理包括被开发成对图形数据执行特定操作的系统和方法,这些特定操作诸如例如,线性插值、曲面细分、栅格化、纹理映射、深度测试等。传统意义上而言,图形处理器使用固定功能计算单元来处理图形数据。然而,更最近地,已使图形处理器的多个部分可编程,使得此类处理器能够支持更广泛种类的操作以处理顶点数据和片段数据。
[0003]为了进一步提升性能,图形处理器典型地实现诸如管线化的处理技术,这些处理技术尝试贯穿图形管线的不同部分并行地处理尽可能多的图形数据。具有单指令多线程(single instruction,multiple thread,SIMT)体系结构的并行图形处理器被设计成使图形管线中的并行处理的量最大化。在SIMT体系结构中,成组的并行线程尝试尽可能频繁地一起同步地执行程序指令以提高处理效率。可在Shane Cook的“CUDA编程(CUDA Pro ...
【技术保护点】
【技术特征摘要】
1.一种处理器,包括:屏障同步硬件电路,用于:将全局命名屏障标识符ID的集合指派给所述处理器的核心中的多个执行线程中的单独的执行线程;以及经由所述全局命名屏障ID的集合在单个级别上同步所述单独的执行线程的执行;以及多个处理资源,用于执行所述多个执行线程并包括分散屏障调度硬件电路,所述分散屏障调度硬件电路用于促进从由所述多个执行线程中的第一线程执行的第一分散分支到由所述多个执行线程中的第二线程执行的第二分散分支的执行流切换,所述执行流切换响应于执行所述第一分散分支的所述第一线程停止以在具有所述全局命名屏障ID的集合的命名屏障上等待而被执行,所述第一线程经由所述屏障同步硬件电路在所述命名屏障上被登记。2.如权利要求1所述的处理器,其中,所述第一线程用于用信号向所述屏障同步硬件电路通知屏障信令事件,以指示所述第一线程正在所述命名屏障上等待被释放。3.如权利要求1所述的处理器,其中,所述第一分散分支和所述第二分散分支包括if/else分支、嵌套分支或循环中的至少一个。4.如权利要求1所述的处理器,其中,所述第二线程不处于停止状态。5.如权利要求1所述的处理器,其中,所述屏障同步硬件电路被包括在所述处理器的每个子核心的网关硬件电路中。6.如权利要求1所述的处理器,其中,所述屏障同步硬件电路用于:确定所述多个执行线程中的、被登记到所述命名屏障的一个或多个线程的指定的线程状态;以及响应于所述一个或多个线程中的每个线程指示针对所述命名屏障的等待状态,用信号向所述一个或多个线程通知释放所述命名屏障。7.如权利要求1所述的处理器,其中,所述分散屏障调度硬件电路通信地耦合至分散数据结构,并且其中,所述分散数据结构用于在所述处理器的处理资源的执行流期间,针对所述处理资源的每个线程维护活跃掩码、指令指针IP和就绪状态的当前状态。8.如权利要求7所述的处理器,其中,所述分散屏障调度硬件电路进一步用于:响应于所述第一线程停止来访问所述分散数据结构;以及基于所述分散数据结构中的所述处理资源的每个线程的活跃掩码、IP和就绪状态的当前状态,将所述第二线程标识为可用于所述执行流切换。9.如权利要求8所述的处理器,其中,所述分散数据结构包括分散表。10.如权利要求1所述的处理器,其中,所述处理器包括图形处理单元GPU。11.如权利要求1所述的处理器,其中,所述处理器是单指令多数据SIMD机器或单指令多线程SIMT机器中的至少一个。12.一种方法,包括:由处理器的屏障同步硬件电路将全局命名屏障标识符ID的集合指派给所述处理器的核心中的多个执行线程中的单独的执行线程;由所述屏障同步硬件电路经由所述全局命名屏障ID的集合在单个级别上同步所述单独的执行线程的执行;由所述处理器的处理资源的分散屏障调度硬件电路确定所述多个执行线程中的第一线程已达到停止状态以在具有所述全局命名屏障ID的集合的命名屏障上等待,其中,所述
第一线程正在执行所述处理资源的执行流中的第一分散分支;以及响应于所述第一线程达到所述停止状态,由所述分散屏障调度硬件电路促进从由所述第一线程执行的所述第一分散分支到由所述多个执行线程中的第二线程执行的第二分散分支的执行流切换,其中,所述第二线程被指...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。