Patent ID: 11907718
Assignee: MICRON TECHNOLOGY, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 8:
9. A reconfigurable compute fabric, comprising:
a first synchronous flow comprising a first flow controller and at least one compute element, the first flow controller programmed to initiate a first thread at the first synchronous flow to execute a first portion of a first iteration of a loop, the loop having a number of iterations and to, after initiating the first thread at the first synchronous flow, initiate at least one thread to execute at least a portion of a second iteration of the loop; and
a second synchronous flow comprising a second flow controller and at least one compute element, the second flow controller programmed to perform operations comprising:
receiving a first asynchronous message instructing the second flow controller to initiate a first thread at the second synchronous flow to execute a second portion of the first iteration, the second portion of the first iteration executed after the first portion of the first iteration; and
determining that the first iteration of the loop is a last iteration of the loop to be executed;
responsive to determining that the first iteration of the loop is the last iteration of the loop to be executed, initiating the first thread at the second synchronous flow, the initiating comprising providing a first synchronous message to a first compute element of the second synchronous flow, the first synchronous message comprising a last iteration flag indicating that the first iteration is the last iteration of the loop to be executed; and
executing the first thread at the second synchronous flow, the executing comprising:
determining that the first synchronous message comprises the last iteration flag; and
responsive to determining that the first synchronous message comprises the last iteration flag, executing a first conditional operation, the first conditional operation being based at least in part on an output generated by the first iteration of the loop and at least in part on an output generated by the second iteration of the loop.