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 network processing units each network 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 one or more phases to each of said nodes to identify data dependencies; and
synchronizing the two or more network processing units having the steps of;
(a) identifying an epoch in each of said units;
(b) sending a READY message to all upstream network processing units;
(c) waiting for a READY message from all downstream network processing units;
(d) selecting an uncomputed node in said epoch;
(e) performing a compute operation on said selected node if said selected node is enabled;
(f) outputting a result of said compute operation;
(g) repeating steps (d) through (f) for each uncomputed node in said epoch;
(h) sending a DONE message to all downstream network processing units;
(i) waiting for a DONE message from all upstream network processing units; and
(j) repeating steps (a) through (i) for each 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.
52 Citations
2 Claims
-
1. A method for performing phase based scheduling in a network having two or more network processing units each network 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 one or more phases to each of said nodes to identify data dependencies; and synchronizing the two or more network processing units having the steps of; (a) identifying an epoch in each of said units; (b) sending a READY message to all upstream network processing units; (c) waiting for a READY message from all downstream network processing units; (d) selecting an uncomputed node in said epoch; (e) performing a compute operation on said selected node if said selected node is enabled; (f) outputting a result of said compute operation; (g) repeating steps (d) through (f) for each uncomputed node in said epoch; (h) sending a DONE message to all downstream network processing units; (i) waiting for a DONE message from all upstream network processing units; and (j) repeating steps (a) through (i) for each epoch.
-
-
2. A method for performing phase based scheduling in a network having two or more network processing units each network processing unit having at least one node, with each of the at least one node having two output buffers, the method comprising the steps of:
-
assigning one or more phases to each of said nodes to identify data dependencies; and synchronizing the two or more network processing units having the steps of; (a) identifying an epoch in each of said units; (b) sending a READY message to all upstream network processing units; (c) waiting for a READY message from all downstream network processing units; (d) selecting an uncomputed node in said epoch; (e) performing a compute operation on said selected node if said selected node is enabled; (f) outputting a result of said compute operation to one of said two output buffers; (g) automatically mirroring of said output to a downstream network processing unit which is one of the network processing units; (h) repeating steps (d) through (g) for each uncomputed node in said epoch; (i) sending a DONE message to all downstream network processing units; (j) waiting for a DONE message from all upstream network processing units; and (k) repeating steps (a) through (j) for each epoch.
-
Specification