US 11,669,725 B1
Systems and methods of buffering and accessing input data for convolution computations
Ananda Sarangaram Tharma Ranga Raja, Maharashtra (IN); Prasad Nikam, Maharashtra (IN); N D Divyakumar, Karnataka (IN); Himanshu Singhal, Madhya Pradesh (IN); Vijay Pawar, Maharashtra (IN); and Sachin P. Ghanekar, Maharashtra (IN)
Assigned to Cadence Design Systems, Inc., San Jose, CA (US)
Filed by Cadence Design Systems, Inc., San Jose, CA (US)
Filed on Jun. 6, 2019, as Appl. No. 16/433,533.
Int. Cl. G06F 17/16 (2006.01); G06N 3/08 (2023.01)
CPC G06N 3/08 (2013.01) [G06F 17/16 (2013.01)] 19 Claims
OG exemplary drawing
 
11. A method comprising:
traversing, by a processor, through an array of inputs of a plurality of input planes utilizing a read pointer to read a first set of inputs based on a second dimension of filters of a convolutional neural network (CNN), wherein the array of inputs is stored in a circular buffer in a non-transitory storage medium, and wherein a number of input planes is based on a first dimension of the filters of the CNN;
traversing, by the processor, through the array of inputs utilizing the read pointer to read a second set of inputs based on the second dimension of the filters of the CNN, the second set of inputs partially overlapping with the first set of inputs;
generating, by the processor, a portion of an output plane based on applying a first filter of the filters of the CNN to the first set of inputs and applying a second filter of the CNN to the second set of inputs; and
in response the processor determining that a new input plane is added to the circular buffer, incrementing, by the processor, an initial read address of the read pointer by a third dimension of the filters of the CNN.