US12093739B2ActiveUtilityPatentIndex 50
Method and apparatus for managing threads in manycore
Est. expiryFeb 21, 2043(~16.6 yrs left)· nominal 20-yr term from priority
G06F 2209/505G06F 2209/5018G06F 9/5072G06F 9/5038Y02D10/00
50
PatentIndex Score
0
Cited by
14
References
7
Claims
Abstract
A method for managing threads in a manycore system is launched by one or more processors, and includes receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor, generating threads for each of the one or more tasks based on the job descriptor, and allocating the generated threads to one or more cores of a cluster that includes a plurality of cores.
Claims
exact text as granted — not AI-modifiedThe invention claimed is:
1. A method for managing threads in a manycore system, the method being executed by one or more processors and comprising:
receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor;
generating threads for each of the one or more tasks based on the job descriptor;
allocating the generated threads to one or more cores of a cluster that includes a plurality of cores;
pushing, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores;
after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and
in response to the one or more cores receiving the operation information, removing the operation information from the thread operation queue,
wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information,
the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information,
the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue,
if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and
each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously.
2. The method according to claim 1 , wherein the allocating the generated threads to the one or more cores includes allocating the generated threads to the one or more cores based on thread state information associated with threads previously allocated to the one or more cores, and
the thread state information is updated based on a state register associated with the threads previously allocated to the one or more cores.
3. The method according to claim 1 , wherein the job descriptor pushed into the termination queue is transmitted to the host processor or to a cluster different from the cluster including the one or more cores.
4. The method according to claim 1 , wherein the operation information further includes thread synchronization information associated with a synchronization between the thread launched based on the thread launch information and a thread different from the launched thread,
the receiving the operation information from the thread operation queue further includes receiving, by the one or more cores, the thread synchronization information from the thread operation queue, in response to a request for synchronization between the launched thread and the thread different from the launched thread, and
the launched thread is switched to a sleep state based on the thread synchronization information.
5. The method according to claim 4 , further comprising receiving, by the one or more cores, thread synchronization completion information, in response to completion of the synchronization between the launched thread and the thread different from the launched thread,
wherein the thread switched to the sleep state is released from the sleep state based on the thread synchronization completion information.
6. A non-transitory computer-readable recording medium storing instructions that, when executed by one or more processors, cause performance of the method according to claim 1 .
7. A manycore system comprising:
a plurality of cores; and
a plurality of clusters each including a hardware processor for managing threads launched by one or more of the plurality of cores,
wherein the hardware processor of a respective cluster of the plurality of clusters is connected with the plurality of cores included in the respective cluster of the plurality of clusters, and is configured to:
receive, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor;
generate threads for each of the one or more tasks based on the job descriptor;
allocate the generated threads to one or more cores of one of the plurality of clusters;
push, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores;
after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and
in response to the one or more cores receiving the operation information, remove the operation information from the thread operation queue,
wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information,
the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information,
the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue,
if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and
each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.