Gpu发散栅栏的制作方法_6

文档序号:9816368阅读:来源:国知局
所述的方法,其中所述活动线程的所述线程数据包括所述活动线程 的寄存器数据,且 其中所述非活动线程的所述线程数据包括所述非活动线程的寄存器数据。5. 根据权利要求1所述的方法,其中将所述多个线程束排序包括使用插入排序将所述 多个线程束排序。6. 根据权利要求1所述的方法,其进一步包括: 为对于其所述表达式为真的所述多个线程束中的每一线程束确定多个发散栅栏中的 相关联发散栅栏; 基于每一线程束的相关联发散栅栏将所述多个线程束中的每一线程束分组到多个压 缩池中, 其中将所述多个线程束排序包括将属于所述多个压缩池中的同一者的所述多个线程 束排序, 其中所述第一线程束以及所述第二线程束包括属于所述多个压缩池中的所述同一者 的线程束,且 其中恢复执行对于其所述条件为真的所述多个线程束中的所述至少一者包括恢复执 行同一个压缩池的至少一个线程束。7. 根据权利要求6所述的方法,其进一步包括: 基于与所述多个线程束中的每一者相关联的所述发散栅栏将前缀指派到所述多个线 程束中的每一者, 其中将所述多个线程束分组到所述至少一个压缩池中包括基于所指派的所述前缀将 所述多个线程束分组到至少一个压缩池中。8. 根据权利要求1所述的方法,其中将活动线程的所述线程数据与非活动线程的所述 线程数据调换继续进行,直到非活动线程束不可形成为止。9. 根据权利要求1所述的方法,其进一步包括: 确定所述多个线程束包含具有全部活动线程的线程束;以及恢复执行具有全部活动线 程的所述线程束。10. 根据权利要求1所述的方法,其中将对于其所述表达式为真的所述多个线程束排序 包括: 将所述多个线程束存储在队列中; 基于活动线程的所述数目将对于其所述表达式为真的所述多个线程束排序;以及 将经排序的所述多个线程束存储在所述队列中。11. 根据权利要求1所述的方法,其进一步包括: 确定其中很可能发生发散的位置和执行于多个线程束上的核心内的将显著影响性能 的位置中的至少一者;以及 将发散栅栏指令插入到所述核心中的所述至少一个位置处, 其中所述布尔表达式与所述发散栅栏指令相关联。12. -种设备,其包括: 用于为多个线程束中的每一线程束确定布尔表达式对于每一线程束的对应线程是否 为真的装置; 用于暂停执行具有对于其所述表达式为真的对应线程的每一线程束的装置; 用于确定对于其所述表达式为真的所述多个线程束中的每一者的活动线程的数目的 装置; 用于基于所述多个线程束中的每一者中的活动线程的所述数目将对于其所述表达式 为真的所述多个线程束排序的装置; 用于将所述多个线程束中的第一线程束的活动线程的线程数据与所述多个线程束中 的第二线程束的非活动线程的线程数据调换的装置;以及 用于恢复执行对于其所述表达式为真的所述多个线程束中的所述至少一者的装置。13. 根据权利要求12所述的设备,所述设备进一步包括: 用于在恢复执行所述多个线程束中的所述至少一者之前,调换对于其所述表达式为真 的所述多个线程的每线程上下文数据的装置。14. 根据权利要求12所述的设备,其中所述设备包括图形处理单元GPU。15. 根据权利要求12所述的设备,其中所述活动线程的所述线程数据包括所述活动线 程的寄存器数据,且 其中所述非活动线程的所述线程数据包括所述非活动线程的寄存器数据。16. 根据权利要求12所述的设备,其中用于将所述多个线程束排序的所述装置包括用 于使用插入排序将所述多个线程束排序的装置。17. 根据权利要求12所述的设备,其进一步包括: 用于为对于其所述表达式为真的所述多个线程束中的每一线程束确定多个发散栅栏 中的相关联发散栅栏的装置; 用于基于每一线程束的相关联发散栅栏将所述多个线程束中的每一线程束分组到多 个压缩池中的装置, 其中用于将所述多个线程束排序的所述装置包括用于将属于所述多个压缩池中的同 一者的所述多个线程束排序的装置, 其中所述第一线程束以及所述第二线程束包括属于所述多个压缩池中的所述同一者 的线程束,且 其中用于恢复执行对于其所述条件为真的所述多个线程束中的所述至少一者的所述 装置包括用于恢复执行所述同一个压缩池的至少一个线程束的装置。18. 根据权利要求17所述的设备,其进一步包括: 用于基于与所述多个线程束中的每一者相关联的所述发散栅栏将前缀指派到所述多 个线程束中的每一者的装置, 其中用于将所述多个线程束分组到所述至少一个压缩池中的所述装置包括用于基于 所指派之所述前缀将所述多个线程束分组到至少一个压缩池中的装置。19. 根据权利要求12所述的设备,其中用于将活动线程的所述线程数据与非活动线程 的所述线程数据调换继续进行,直到非活动线程束不可形成为止的所述装置。20. 根据权利要求12所述的设备,其进一步包括: 用于确定所述多个线程束包含具有全部活动线程的线程束的装置;以及 用于恢复执行具有全部活动线程的所述线程束的装置。21. 根据权利要求12所述的设备,其中用于将对于其所述表达式为真的所述多个线程 束排序的所述装置包括: 用于将所述多个线程束存储在队列中的装置; 用于基于活动线程的所述数目将对于其所述表达式为真的所述多个线程束排序的装 置;以及 用于将经排序的所述多个线程束存储在所述队列中的装置。22. 根据权利要求12所述的设备,其进一步包括: 用于确定其中很可能发生发散的位置和执行于多个线程束上的核心内的将显著影响 性能的位置中的至少一者的装置;以及 用于将发散栅栏指令插入到所述核心中的所述至少一个位置处的装置, 其中所述布尔表达式与所述发散栅栏指令相关联。23. -种非暂时性电脑可读储存媒体,其包含指令,当所述指令执行时,使至少一个可 编程处理器进行以下操作: 为多个线程束中的每一线程束确定布尔表达式对于每一线程束的对应线程是否为真; 暂停执行具有对于其所述表达式为真的对应线程的每一线程束; 确定对于其所述表达式为真的所述多个线程束中的每一者的活动线程的数目; 基于所述多个线程束中的每一者中的活动线程的所述数目将对于其所述表达式为真 的所述多个线程束排序; 将所述多个线程束中的第一线程束的活动线程的线程数据与所述多个线程束中的第 二线程束的非活动线程的线程数据调换;以及 恢复执行对于其所述表达式为真的所述多个线程束中的所述至少一者。24. -种设备,其包括: 存储器;以及 至少一个可编程处理器,其经配置以进行以下操作: 为多个线程束中的每一线程束确定布尔表达式对于每一线程束的对应线程是否为真; 暂停执行具有对于其所述表达式为真的对应线程的每一线程束; 确定对于其所述表达式为真的所述多个线程束中的每一者的活动线程的数目; 基于所述多个线程束中的每一者中的活动线程的所述数目将对于其所述表达式为真 的所述多个线程束排序; 将所述多个线程束中的第一线程束的活动线程的线程数据与所述多个线程束中的第 二线程束的非活动线程的线程数据调换;以及 恢复执行对于其所述表达式为真的所述多个线程束中的所述至少一者。25. 根据权利要求24所述的设备,其中所述至少一个可编程处理器进一步继续进行以 下操作: 在恢复执行所述多个线程束中的所述至少一者之前,调换对于其所述表达式为真的所 述多个线程的每线程上下文数据。26. 根据权利要求24所述的设备,其中所述设备包括图形处理单元GPU。27. 根据权利要求24所述的设备,其中所述活动线程的所述线程数据包括所述活动线 程的寄存器数据,且 其中所述非活动线程的所述线程数据包括所述非活动线程的寄存器数据。28. 根据权利要求24所述的设备,其中所述至少一个可编程处理器经进一步配置以进 行以下操作: 为对于其所述表达式为真的所述多个线程束中的每一线程束确定多个发散栅栏中的 相关联发散栅栏; 基于每一线程束的相关联发散栅栏将所述多个线程束中的每一线程束分组到多个压 缩池中, 其中为将所述多个线程束排序,所述至少一个可编程处理器经进一步配置以排序所述 多个线程束包括将属于所述多个压缩池中的同一者的所述多个线程束排序, 其中所述第一线程束以及所述第二线程束包括属于所述多个压缩池中的所述同一者 的线程束,且 其中为恢复执行对于其所述条件为真的所述多个线程束中的所述至少一者,所述至少 一个可编程处理器经配置以恢复执行所述同一个压缩池的至少一个线程束。29. 根据权利要求28所述的设备,其中所述至少一个可编程处理器经进一步配置以进 行以下操作: 基于与所述多个线程束中的每一者相关联的所述发散栅栏将前缀指派到所述多个线 程束中的每一者, 其中使所述至少一个可编程处理器将所述多个线程束分组到所述至少一个压缩池中 的所述指令包括基于所指派的所述前缀使所述至少一个可编程处理器将所述多个线程束 分组到至少一个压缩池中的指令。30. 根据权利要求24所述的设备,其中为将对于其所述表达式为真的所述多个线程束 排序,所述至少一个可编程处理器经配置以进行以下操作: 将所述多个线程束存储在队列中; 基于活动线程的所述数目将对于其所述表达式为真的所述多个线程束排序;以及 将经排序的所述多个线程束存储在所述队列中。
【专利摘要】一种装置包含存储器和至少一个可编程处理器,所述至少一个可编程处理器经配置以为多个线程束中的每一线程束确定对于每一线程束的对应线程布尔表达式是否为真;暂停执行对于其所述表达式为真的具有对应线程的每一线程束;确定对于其所述表达式为真的所述多个线程束中的每一者的活动线程的数目;基于所述多个线程束中的每一者的活动线程的所述数目将对于其所述表达式为真的所述多个线程束排序;将所述多个线程束的第一线程束的活动线程的线程数据与所述多个线程束的第二线程束的非活动线程的线程数据调换;以及恢复执行对于其所述表达式为真的所述多个线程束中的所述至少一者。
【IPC分类】G06F9/52
【公开号】CN105579967
【申请号】CN201480052983
【发明人】梅春惠, 阿列克谢·弗拉狄米罗维奇·布尔德, 陈林
【申请人】高通股份有限公司
【公开日】2016年5月11日
【申请日】2014年9月10日
【公告号】US20150095914, WO2015050681A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1