-
公开(公告)号:US08732711B2
公开(公告)日:2014-05-20
申请号:US13151094
申请日:2011-06-01
申请人: William James Dally , Stephen William Keckler , David Tarjan , John Erik Lindholm , Mark Alan Gebhart , Daniel Robert Johnson
发明人: William James Dally , Stephen William Keckler , David Tarjan , John Erik Lindholm , Mark Alan Gebhart , Daniel Robert Johnson
IPC分类号: G06F9/46
CPC分类号: G06F9/4881 , G06F9/3851 , G06F9/3887
摘要: One embodiment of the present invention sets forth a technique for scheduling thread execution in a multi-threaded processing environment. A two-level scheduler maintains a small set of active threads called strands to hide function unit pipeline latency and local memory access latency. The strands are a sub-set of a larger set of pending threads that is also maintained by the two-leveler scheduler. Pending threads are promoted to strands and strands are demoted to pending threads based on latency characteristics. The two-level scheduler selects strands for execution based on strand state. The longer latency of the pending threads is hidden by selecting strands for execution. When the latency for a pending thread is expired, the pending thread may be promoted to a strand and begin (or resume) execution. When a strand encounters a latency event, the strand may be demoted to a pending thread while the latency is incurred.
摘要翻译: 本发明的一个实施例提出了一种用于在多线程处理环境中调度线程执行的技术。 一个两级调度程序维护一组称为线索的活动线程,以隐藏功能单元流水线延迟和本地存储器访问延迟。 这些链是一组更大的待处理线程的子集,其也由二级调度器维护。 等待线程被提升为线索,并且基于延迟特性将线降级到等待线程。 两级调度器基于线状态来选择用于执行的线。 通过选择要执行的链来隐藏待处理线程的延迟更长。 当待处理线程的等待时间到期时,挂起的线程可以被提升为一个线并开始(或恢复)执行。 当一条线遇到一个延迟事件时,该链可以被降级到等待线程,同时发生延迟。
-
公开(公告)号:US20120079503A1
公开(公告)日:2012-03-29
申请号:US13151094
申请日:2011-06-01
申请人: William James DALLY , Stephen William Keckler , David Tarjan , John Erik Lindholm , Mark Alan Gebhart , Daniel Robert Johnson
发明人: William James DALLY , Stephen William Keckler , David Tarjan , John Erik Lindholm , Mark Alan Gebhart , Daniel Robert Johnson
IPC分类号: G06F9/48
CPC分类号: G06F9/4881 , G06F9/3851 , G06F9/3887
摘要: One embodiment of the present invention sets forth a technique for scheduling thread execution in a multi-threaded processing environment. A two-level scheduler maintains a small set of active threads called strands to hide function unit pipeline latency and local memory access latency. The strands are a sub-set of a larger set of pending threads that is also maintained by the two-leveler scheduler. Pending threads are promoted to strands and strands are demoted to pending threads based on latency characteristics. The two-level scheduler selects strands for execution based on strand state. The longer latency of the pending threads is hidden by selecting strands for execution. When the latency for a pending thread is expired, the pending thread may be promoted to a strand and begin (or resume) execution. When a strand encounters a latency event, the strand may be demoted to a pending thread while the latency is incurred.
摘要翻译: 本发明的一个实施例提出了一种用于在多线程处理环境中调度线程执行的技术。 一个两级调度程序维护一组称为线索的活动线程,以隐藏功能单元流水线延迟和本地存储器访问延迟。 这些链是一组更大的待处理线程的子集,其也由二级调度器维护。 等待线程被提升为线索,并且基于延迟特性将线降级到等待线程。 两级调度器基于线状态来选择用于执行的线。 通过选择要执行的链来隐藏待处理线程的延迟更长。 当待处理线程的等待时间到期时,挂起的线程可以被提升为一个线并开始(或恢复)执行。 当一条线遇到一个延迟事件时,该链可以被降级到等待线程,同时发生延迟。
-