【技术实现步骤摘要】
【国外来华专利技术】使用动态宽度计算的壁垒同步
本专利技术涉及计算指令的执行,且更确切地说,涉及并行执行的计算指令的同步。
技术介绍
传统上,计算机程序已经被编写成连续程序,其中计算机程序的代码在单一常规处理器上连续执行。然而,因为包含多个处理核心的专用处理器(例如图形处理单元(GPU))的性能不断快速增加,计算机程序越来越被编写成利用此类专用处理器。例如,计算机程序被编写成包含数据平行代码,使得相同代码可跨越处理器的多个处理核心而执行以对一组数据并行地操作。因为此数据平行代码被并行执行而不是连续执行,所以可能不存在关于代码将完成处理所述组数据的次序的保证。因此,可能需要使并行执行同步以确保多个处理核心已结束所述组数据上的操作,之后将数据的值用于任何进一步操作中。
技术实现思路
一般来说,本专利技术描述用于使用动态壁垒宽度计算使并行处理的计算指令同步的技术。线程块可各自对一组数据执行相同组指令,且壁垒操作可用于在线程对所述组数据执行相应的写入操作之后且在线程对所述组数据执行相应的读取操作之前使所述线程块同步,以防止读取操作读取不正确或无效的数据。默认地,壁垒操作可使线程块中的所有线程同步,使得没有线程可在壁垒操作之后执行读取操作,除非所述块中的每一及每个线程已执行相应的壁垒操作。相比而言,本文中揭示的技术可包含用于动态地计算壁垒操作的宽度的技术,使得块的线程的子集可在执行相应的壁垒操作之后进行到执行读取操作,即使所述块中的其它线程尚未执行它们的壁垒操作也如此。在一个实例中,一种用于使线程同步的方法包含在主机上执行的包含将由可操作地耦合到主机的处理单元执行的数据并行代码的应用的运行 ...
【技术保护点】
一种用于使线程同步的方法,所述方法包括:在主机上执行的包含将由可操作地耦合到所述主机的处理单元执行的数据并行代码的应用的运行时间确定各自在所述处理单元的一或多个计算单元上执行所述数据并行代码的群组线程的壁垒操作的壁垒宽度,其中所述壁垒宽度小于所述线程群组中的线程的总数;及响应于所述线程群组的子群组中的每一线程已执行相应的壁垒操作,所述子群组包含与所述所确定的壁垒宽度相同数目的线程,使得所述线程群组的所述子群组能够在所述相应的壁垒操作之后在所述一或多个计算单元上执行相应的操作而无需等待所述线程群组中的其它线程执行壁垒操作,其中所述线程群组的所述子群组小于所述线程群组中的线程的所述总数。
【技术特征摘要】
【国外来华专利技术】2013.08.13 US 13/965,8181.一种用于使线程同步的方法,所述方法包括:在主机上执行的包含将由可操作地耦合到所述主机的处理单元执行的数据并行代码的应用的运行时间确定各自在所述处理单元的一或多个计算单元上执行所述数据并行代码的群组线程的壁垒操作的壁垒宽度,其中所述壁垒宽度小于所述线程群组中的线程的总数,且其中所述壁垒操作包含在循环中;动态地重新确定所述循环的每一迭代的所述壁垒操作的所述壁垒宽度,其中所述所确定的壁垒宽度在所述循环的至少两个迭代中是不同的;响应于所述线程群组的子群组中的每一线程已执行相应的壁垒操作,所述子群组包含与所述所确定的壁垒宽度相同数目的线程,使得所述线程群组的所述子群组能够在所述相应的壁垒操作之后在所述一或多个计算单元上执行所述循环的相应迭代中的相应的操作而无需等待所述线程群组中的其它线程执行壁垒操作,其中所述线程群组的所述子群组小于所述线程群组中的线程的所述总数;及在所述壁垒操作的所述壁垒宽度小于所述一或多个计算单元的波前的向量宽度的情况下确定不执行所述壁垒操作。2.根据权利要求1所述的方法,其中所述确定包括:至少部分基于所述数据并行代码而确定所述壁垒操作的所述壁垒宽度。3.根据权利要求1所述的方法,其进一步包括:在所述壁垒操作大于所述一或多个计算单元的波前的向量宽度的情况下确定执行所述壁垒操作。4.根据权利要求1所述的方法,其中所述壁垒操作包含在条件语句中,且其中所述条件语句不贯穿所述线程群组进行一致地评估。5.根据权利要求1所述的方法,其中所述线程群组的所述子群组中的线程是所述线程群组中的连续线程。6.一种用于使线程同步的计算系统,其包括:主机;处理单元,其可操作地耦合到所述主机;其中所述处理单元包括多个处理器中的至少一者;定序器模块,其经配置以:在所述主机上执行的包含将由所述处理单元执行的数据并行代码的应用的运行时间确定各自在所述处理单元的一或多个计算单元上执行所述数据并行代码的群组线程的壁垒操作的壁垒宽度,其中所述壁垒宽度小于所述线程群组中的线程的总数,且其中所述壁垒操作包含在循环中,动态地重新确定所述循环的每一迭代的所述壁垒操作的所述壁垒宽度,其中所述所确定的壁垒宽度在所述循环的至少两个迭代中是不同的;响应于所述线程群组的子群组中的每一线程已执行相应的壁垒操作,所述子群组包含与所述所确定的壁垒宽度相同数目的线程,使得所述线程群组的所述子群组能够在所述相应的壁垒操作之后在所述一或多个计算单元上执行所述循环的相应迭代中的相应的操...
【专利技术属性】
技术研发人员:贝内迪克特·鲁宾·加斯特,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。