发明名称 |
System, method, and computer program product for managing divergences and synchronization points during thread block execution by using a double sided queue for token storage |
摘要 |
A system, method, and computer program product for ensuring forward progress of threads that implement divergent operations in a single-instruction, multiple data (SIMD) architecture is disclosed. The method includes the steps of allocating a queue data structure to a thread block including a plurality of threads, determining that a current instruction specifies a yield operation, pushing a token onto the second side of the queue data structure, disabling any active threads in the thread block, popping a next pending token from the first side of the queue data structure, and activating one or more threads in the thread block according to a mask included in the next pending token. |
申请公布号 |
US9459876(B2) |
申请公布日期 |
2016.10.04 |
申请号 |
US201313945842 |
申请日期 |
2013.07.18 |
申请人 |
NVIDIA Corporation |
发明人 |
Giroux Olivier;Diamos Gregory Frederick |
分类号 |
G06F9/38;G06F9/52;G06F9/30 |
主分类号 |
G06F9/38 |
代理机构 |
Zilka-Kotab, PC |
代理人 |
Zilka-Kotab, PC |
主权项 |
1. A method comprising:
managing divergences and synchronization points for a thread block based on a set of tokens included in a data structure having a first side where tokens are added to and extracted from the data structure and a second side where tokens are added to the data structure, wherein the thread block includes a plurality of threads executing in parallel. |
地址 |
Santa Clara CA US |