发明名称 | 使用动态宽度计算的壁垒同步 | ||
摘要 | 处理单元的定序器在运行时间确定群组线程的壁垒操作的壁垒宽度,其中所述壁垒宽度小于所述线程群组中的线程的总数,且其中所述线程群组中的线程在一或多个计算单元上执行数据并行代码。响应于所述线程群组的子群组中的每一线程已执行所述壁垒操作,所述子群组包含与所述壁垒宽度相同数目的线程,所述定序器可使得所述线程群组的所述子群组能够在所述壁垒操作之后在一或多个处理器上执行,而无需等待所述线程群组中的其它线程执行所述壁垒操作,其中所述线程群组的所述子群组小于所述线程群组中的线程的所述总数。 | ||
申请公布号 | CN105453045B | 申请公布日期 | 2017.04.12 |
申请号 | CN201480043435.2 | 申请日期 | 2014.08.07 |
申请人 | 高通股份有限公司 | 发明人 | 贝内迪克特·鲁宾·加斯特 |
分类号 | G06F9/52(2006.01)I | 主分类号 | G06F9/52(2006.01)I |
代理机构 | 北京律盟知识产权代理有限责任公司 11287 | 代理人 | 宋献涛 |
主权项 | 一种用于使线程同步的方法,所述方法包括:在主机上执行的包含将由可操作地耦合到所述主机的处理单元执行的数据并行代码的应用的运行时间确定各自在所述处理单元的一或多个计算单元上执行所述数据并行代码的群组线程的壁垒操作的壁垒宽度,其中所述壁垒宽度小于所述线程群组中的线程的总数,且其中所述壁垒操作包含在循环中;动态地重新确定所述循环的每一迭代的所述壁垒操作的所述壁垒宽度,其中所述所确定的壁垒宽度在所述循环的至少两个迭代中是不同的;响应于所述线程群组的子群组中的每一线程已执行相应的壁垒操作,所述子群组包含与所述所确定的壁垒宽度相同数目的线程,使得所述线程群组的所述子群组能够在所述相应的壁垒操作之后在所述一或多个计算单元上执行所述循环的相应迭代中的相应的操作而无需等待所述线程群组中的其它线程执行壁垒操作,其中所述线程群组的所述子群组小于所述线程群组中的线程的所述总数;及在所述壁垒操作的所述壁垒宽度小于所述一或多个计算单元的波前的向量宽度的情况下确定不执行所述壁垒操作。 | ||
地址 | 美国加利福尼亚州 |