Legal claims defining the scope of protection, as filed with the USPTO.
1. An electronic device that processes instances of input data through a neural network, the electronic device comprising: a neural network processor; and a presorter, the presorter configured to: determine a sorted order to be used by the neural network processor for processing a set of instances of input data through the neural network, the determining comprising rearranging an initial order of some or all of the instances of input data so that instances of input data having specified similarities among the some or all of the instances of input data are located nearer to one another in the sorted order; and provide, to the neural network processor, the sorted order to be used for controlling an order in which instances of input data from among the set of instances of input data are processed through the neural network by the neural network processor.
2. The electronic device of claim 1 , wherein determining the sorted order comprises: generating or acquiring an index having a plurality of entries in the initial order, each entry holding a value associated with a corresponding instance of input data from among the set of instances of input data; sorting at least some of the entries in the index into an order, the sorting comprising relocating, in accordance with a sorting algorithm, entries in the index based on a difference between the values therein and the values in one or more other entries; and using, as the sorted order, the order of the entries in the index.
3. The electronic device of claim 2 , wherein the value associated with the corresponding instance of input data in each entry of the index is a value that represents, in a reduced form, a full value for the corresponding instance of input data.
4. The electronic device of claim 2 , further comprising: a controller, the controller configured to: record an efficiency of the presorter while the presorter determines the sorted order for processing the set of instances of input data through the neural network; record an efficiency of the neural network processor while the neural network processor processes, in the sorted order, instances of input data from the set of instances of input data through the neural network; and based at least in part on a difference between the efficiency of the presorter and the efficiency of the neural network processor, adjust one or more parameters that control how the presorter determines subsequent sorted orders for processing subsequent sets of instances of input data through the neural network.
5. The electronic device of claim 4 , wherein: sorting the at least some of the entries in the index into the order comprises skipping relocating entries in the index when the difference between the values therein and the values in one or more other entries is less than a difference value threshold; and adjusting the one or more parameters comprises adjusting the difference value threshold.
6. The electronic device of claim 4 , wherein: sorting the at least some of the entries in the index into the order comprises limiting a number of sorting passes through the index to a specified number of sorting passes that is less than a full number of sorting passes in accordance with the sorting algorithm; and adjusting the one or more parameters comprises adjusting the specified number of passes.
7. The electronic device of claim 4 , further comprising: a presort buffer having a set of locations, each instance of input data from among the set of instances of input data or a representation thereof being stored in a corresponding location in the presort buffer while the presorter determines the sorted order; wherein adjusting the one or more parameters comprises increasing or decreasing a number of the locations that are permitted to be used for storing the instances of input data or representations thereof, thereby increasing or decreasing a number of instances of input data in subsequent sets of instances of input data.
8. The electronic device of claim 4 , wherein adjusting the one or more parameters comprises disabling the presorter so that the presorter does not determine a sorted order for processing at least some subsequent instances of input data through the neural network, wherein the presorter is subsequently re-enabled when a condition is met.
9. The electronic device of claim 4 , wherein the controller is further configured to compute each efficiency based on one or more of an electrical energy consumption and a performance.
10. The electronic device of claim 1 , wherein the neural network processor is configured to, while processing the instances of input data through the neural network in the sorted order, reuse results from processing instances of input data through the neural network by: when processing a given instance of input data, store results generated by nodes in layers of the neural network; and when processing an other instance of input data: determine differences, if any, between inputs to nodes in layers and stored inputs to the nodes in the layers, wherein the inputs to the nodes in the layers are results that are presently generated by nodes in preceding layers when processing the other instance of input data, and wherein the stored inputs to the nodes in the layers are results that were generated by nodes in preceding layers when processing the given instance of the input data; and compute the results generated by the nodes in the layers as a corresponding stored result with adjustments based on the differences, if any, between inputs to that node and stored inputs to that node.
11. A method for processing instances of input data through a neural network in an electronic device that includes a neural network processor and a presorter, the method comprising: determining, by the presorter, a sorted order to be used by the neural network processor for processing a set of instances of input data through the neural network, the determining comprising rearranging an initial order of some or all of the instances of input data so that instances of input data having specified similarities among the some or all of the instances of input data are located nearer to one another in the sorted order; and providing, by the presorter, to the neural network processor, the sorted order to be used for controlling an order in which instances of input data from among the set of instances of input data are processed through the neural network by the neural network processor.
12. The method of claim 11 , wherein determining the sorted order comprises: generating or acquiring an index having a plurality of entries in the initial order, each entry holding a value associated with a corresponding instance of input data from among the set of instances of input data; sorting at least some of the entries in the index into an order, the sorting comprising relocating, in accordance with a sorting algorithm, entries in the index based on a difference between the values therein and the values in one or more other entries; and using, as the sorted order, the order of the entries in the index.
13. The method of claim 12 , wherein the value associated with the corresponding instance of input data in each entry of the index is a value that represents, in a reduced form, a full value for the corresponding instance of input data.
14. The method of claim 12 , wherein: the electronic device includes a controller; and the method further comprises: recording, by the controller, an efficiency of the presorter while the presorter determines the sorted order for processing the set of instances of input data through the neural network; recording, by the controller, an efficiency of the neural network processor while the neural network processor processes, in the sorted order, instances of input data from the set of instances of input data through the neural network; and based at least in part on a difference between the efficiency of the presorter and the efficiency of the neural network processor, adjusting, by the controller, one or more parameters that control how the presorter determines subsequent sorted orders for processing subsequent sets of instances of input data through the neural network.
15. The method of claim 14 , wherein: sorting the at least some of the entries in the index into the order comprises skipping relocating entries in the index when the difference between the values therein and the values in one or more other entries is less than a difference value threshold; and adjusting the one or more parameters comprises adjusting the difference value threshold.
16. The method of claim 14 , wherein: sorting the at least some of the entries in the index into the order comprises limiting a number of sorting passes through the index to a specified number of sorting passes that is less than a full number of sorting passes in accordance with the sorting algorithm; and adjusting the one or more parameters comprises adjusting the specified number of passes.
17. The method of claim 14 , wherein: the electronic device further comprises a presort buffer having a set of locations, each instance of input data from among the set of instances of input data or a representation thereof being stored in a corresponding location in the presort buffer while the presorter determines the sorted order; and adjusting the one or more parameters comprises increasing or decreasing a number of the locations that are permitted to be used for storing the instances of input data or representations thereof, thereby increasing or decreasing a number of instances of input data in subsequent sets of instances of input data.
18. The method of claim 14 , wherein adjusting the one or more parameters comprises disabling the presorter so that the presorter does not determine a sorted order for processing at least some subsequent instances of input data through the neural network, wherein the presorter is subsequently re-enabled when a condition is met.
19. The method of claim 14 , further comprising: computing each efficiency based on one or more of an electrical energy consumption and a performance.
20. The method of claim 11 , further comprising: while processing, by the neural network processor, the instances of input data through the neural network in the sorted order, reusing results from processing instances of input data through the neural network by: when processing a given instance of input data, storing results generated by nodes in layers of the neural network; and when processing an other instance of input data: determining differences, if any, between inputs to nodes in layers and stored inputs to the nodes in the layers, wherein the inputs to the nodes in the layers are results that are presently generated by nodes in preceding layers when processing the other instance of input data, and wherein the stored inputs to the nodes in the layers are results that were generated by nodes in preceding layers when processing the given instance of the input data; and computing the results generated by the nodes in the layers as a corresponding stored result with adjustments based on the differences, if any, between inputs to that node and stored inputs to that node.
Unknown
March 15, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.