Scheduling system and method in a hierarchical temporal memory based system
First Claim
1. A method for performing phase based scheduling in a network having two or more node processing units each node processing unit having at least one node, with each of the at least one node having a single output buffer, the method comprising the steps of:
- assigning, prior to performing a compute operation on said two or more node processing units, one or more phase values to each of said nodes, wherein said phase values define a first order such that if said nodes are computed in the first order that data dependency requirements are satisfied within the two or more node processing units and wherein two or more nodes can have an identical phase value; and
synchronizing the two or more node processing units, having the steps of;
(a) selecting a phase epoch in each of said node processing units wherein a phase epoch is a period in which all nodes having a particular phase value are computed;
(b) selecting an uncomputed node in said epoch;
(c) performing the compute operation on said selected node if said selected node is enabled;
(d) outputting a result of said compute operation;
(e) repeating steps (b) through (d) for each uncomputed node in said epoch; and
(f) repeating steps (a) through (e) for phase epoch.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one aspect of one or more embodiments of the present invention, a system comprises: an HTM network executable at least in part on multiple node processing units (NPUs). In one embodiment the NPUs include one or more nodes, each of which can be executed by its NPU. In one embodiment, the present invention includes a technique for coordinating and scheduling HTM computation across one or more CPUs which (1) enables concurrent computation (2) does not require a central point of control (e.g. a controller entity that “orchestrates” the computation), (3) does not require global synchronization, (4) in some embodiments ensures that the same results are achieved whether the nodes are executed in parallel or serially.
79 Citations
5 Claims
-
1. A method for performing phase based scheduling in a network having two or more node processing units each node processing unit having at least one node, with each of the at least one node having a single output buffer, the method comprising the steps of:
-
assigning, prior to performing a compute operation on said two or more node processing units, one or more phase values to each of said nodes, wherein said phase values define a first order such that if said nodes are computed in the first order that data dependency requirements are satisfied within the two or more node processing units and wherein two or more nodes can have an identical phase value; and synchronizing the two or more node processing units, having the steps of; (a) selecting a phase epoch in each of said node processing units wherein a phase epoch is a period in which all nodes having a particular phase value are computed; (b) selecting an uncomputed node in said epoch; (c) performing the compute operation on said selected node if said selected node is enabled; (d) outputting a result of said compute operation; (e) repeating steps (b) through (d) for each uncomputed node in said epoch; and (f) repeating steps (a) through (e) for phase epoch. - View Dependent Claims (2, 3, 4, 5)
-
Specification