US 11,722,147 B2
Dynamic sequencing of data partitions for optimizing memory utilization and performance of neural networks
Kent D. Cedola, Bellevue, WA (US); Larry Marvin Wall, Seattle, WA (US); Boris Bobrov, Kirkland, WA (US); George Petre, Redmond, WA (US); Chad Balling McBride, North Bend, WA (US); and Amol Ashok Ambardekar, Redmond, WA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jan. 25, 2022, as Appl. No. 17/583,499.
Application 17/583,499 is a continuation of application No. 15/719,351, filed on Sep. 28, 2017, granted, now 11,256,976.
Claims priority of provisional application 62/486,432, filed on Apr. 17, 2017.
Prior Publication US 2022/0147833 A1, May 12, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H03M 7/30 (2006.01); G06N 3/04 (2023.01); G06N 3/063 (2023.01); G06F 12/0862 (2016.01); G06F 9/46 (2006.01); G06F 1/324 (2019.01); G06F 3/06 (2006.01); G06F 9/38 (2018.01); G06F 12/08 (2016.01); G06F 12/10 (2016.01); G06F 15/80 (2006.01); G06F 17/15 (2006.01); G06N 3/049 (2023.01); G06N 3/06 (2006.01); G06N 3/08 (2023.01); G06N 3/10 (2006.01); H04L 45/02 (2022.01); H04L 67/02 (2022.01); G06F 9/30 (2018.01); H04L 67/1001 (2022.01); G06F 9/48 (2006.01); G06F 12/02 (2006.01); G06N 3/045 (2023.01); G06N 3/065 (2023.01); G06F 13/16 (2006.01); G06F 1/3234 (2019.01); G06F 13/28 (2006.01); H03M 7/46 (2006.01); H04L 45/50 (2022.01)
CPC H03M 7/3059 (2013.01) [G06F 1/324 (2013.01); G06F 1/3275 (2013.01); G06F 3/0604 (2013.01); G06F 3/067 (2013.01); G06F 3/0631 (2013.01); G06F 9/30087 (2013.01); G06F 9/3836 (2013.01); G06F 9/3887 (2013.01); G06F 9/46 (2013.01); G06F 9/4881 (2013.01); G06F 12/0207 (2013.01); G06F 12/0238 (2013.01); G06F 12/08 (2013.01); G06F 12/0862 (2013.01); G06F 12/10 (2013.01); G06F 13/1673 (2013.01); G06F 13/1689 (2013.01); G06F 13/28 (2013.01); G06F 15/8007 (2013.01); G06F 17/15 (2013.01); G06N 3/04 (2013.01); G06N 3/045 (2023.01); G06N 3/049 (2013.01); G06N 3/06 (2013.01); G06N 3/063 (2013.01); G06N 3/065 (2023.01); G06N 3/08 (2013.01); G06N 3/10 (2013.01); H03M 7/6005 (2013.01); H03M 7/6011 (2013.01); H03M 7/70 (2013.01); H04L 45/04 (2013.01); H04L 67/02 (2013.01); H04L 67/1001 (2022.05); G06F 2209/484 (2013.01); G06F 2209/485 (2013.01); G06F 2212/657 (2013.01); H03M 7/46 (2013.01); H04L 45/50 (2013.01); Y02D 10/00 (2018.01)] 20 Claims
OG exemplary drawing
 
1. A system for enhanced data processing in a neural network environment, the system comprising:
at least one processor;
at least one first memory component; and
at least one second memory component in communication with the at least one processor, the at least one first or second memory component having computer-readable instructions stored thereupon that, when executed by the at least one processor, cause the system to:
receive one or more initialization parameters from a controller component of the neural network environment, the initialization parameters comprising dimensions of data to be processed by the neural network environment;
calculate an apportionment sequence for the data, the apportionment sequence apportioning the data across available processing elements of the neural network environment and scheduled tasks to be performed on the data and associated layer weights, the apportionment sequence comprising a processing sequence that causes processing of layer partitions through an interleaving operation that switches between a breadth only processing sequence and a depth first processing sequence;
load the data from the first or second memory component of the neural network environment;
process a selected portion of the data by one or more processing units to generate output data for storage on the at least one first memory component or the at least one second memory component; and
store the generated output data on the at least one first memory component or the at least one second memory component.