Jaffery Watson Mendonsa & Hamilton LLP
Compute cluster preemption within a general-purpose graphics processing unit
Embodiments described herein provide techniques enable a compute unit to continue processing operations when all dispatched threads are blocked. One embodiment provides for a graphics processor comprising a compute unit to execute multiple concurrent threads and a memory coupled with and on a same package as the compute unit. The memory can store thread state for a suspended thread and the compute unit can detect that multiple concurrent threads of the compute unit are blocked from execution. Upon detection, the compute unit can select a victim thread from the multiple concurrent threads, suspend the victim thread, store thread state of the victim thread to the memory, and select an additional thread to be executed. The compute unit can then replace the victim thread with an additional thread to be executed. The additional thread to be executed can be based on a blocking event for the additional thread.
Intel Corporation
G G G G G G G Y G G G
G06F G06F G06F G06F G06T G06F G06F Y02D G06T G06F G06F
additional inventional inventional inventional additional inventional inventional additional inventional inventional inventional
Altug Zhi Subramaniam M. Joydeep Eric C. Murali Kun David J. Balaji Abhishek R.
Koker Wang Maiyuran Ray Samson Ramadoss Tian Cowperthwaite Vembu Appu