US 11,748,599 B2
Super-tiling in neural network processing to enable analytics at lower memory speed
Kumar Desappan, Bengaluru (IN); Mihir Narendra Mody, Bengaluru (IN); Pramod Kumar Swami, Bengaluru (IN); Anshu Jain, Bengaluru (IN); and Rishabh Garg, Patiala (IN)
Assigned to Texas Instruments Incorporated, Dallas, TX (US)
Filed by TEXAS INSTRUMENTS INCORPORATED, Dallas, TX (US)
Filed on Feb. 21, 2020, as Appl. No. 16/797,871.
Claims priority of application No. 201941006834 (IN), filed on Feb. 21, 2019.
Prior Publication US 2020/0272892 A1, Aug. 27, 2020
Int. Cl. G06F 12/00 (2006.01); G06N 3/063 (2023.01); G06T 1/60 (2006.01); G06F 12/0804 (2016.01); G06N 3/08 (2023.01)
CPC G06N 3/063 (2013.01) [G06F 12/0804 (2013.01); G06N 3/08 (2013.01); G06T 1/60 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving a first set of values for processing by a machine learning network having multiple layers;
storing a first portion of the first set of values in an on-chip memory, wherein the first portion is less than all values of the first set of values, the first set of values including multiple portions;
processing the first portion of the first set of values in a first layer of the machine learning network to generate a portion of a second set of values;
overwriting the stored first portion of the first set of values with the generated first portion of the second set of values, including storing a first part of the first portion of the second set of values;
processing the first portion of the second set of values in a second layer of the machine learning network to generate a first portion of a third set of values;
storing the first portion of the third set of values to a memory;
repeating the steps of storing, processing, overwriting, processing, and storing for a next of the multiple portions of the first set of values until all of the multiple portions of the first set of values have been processed to generate all of multiple portions of the third set of values, wherein, in processing a second portion of the first set of values to generate a second portion of the second set of values, a first part of the second portion of the second set of values is not generated, the first part of the second portion of the second set of values being restored from the stored first part of the first portion of the second set of values; and
outputting the third set of values.